CN106657527B - 基于图的前缀可判断的任意长度电话号码存储和查询方法 - Google Patents

基于图的前缀可判断的任意长度电话号码存储和查询方法 Download PDF

Info

Publication number
CN106657527B
CN106657527B CN201611110073.1A CN201611110073A CN106657527B CN 106657527 B CN106657527 B CN 106657527B CN 201611110073 A CN201611110073 A CN 201611110073A CN 106657527 B CN106657527 B CN 106657527B
Authority
CN
China
Prior art keywords
node
prefix
telephone number
storage
attribute
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611110073.1A
Other languages
English (en)
Other versions
CN106657527A (zh
Inventor
韩福春
吴昊
苏泽友
朱春祥
宋荣权
熊焕宇
王骁勇
程磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PEOPLE'S LIBERATION ARMY DEFENSE INFORMATION SCHOOL
Tianjin 712 Communication and Broadcasting Co Ltd
Original Assignee
PEOPLE'S LIBERATION ARMY DEFENSE INFORMATION SCHOOL
Tianjin 712 Communication and Broadcasting Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by PEOPLE'S LIBERATION ARMY DEFENSE INFORMATION SCHOOL, Tianjin 712 Communication and Broadcasting Co Ltd filed Critical PEOPLE'S LIBERATION ARMY DEFENSE INFORMATION SCHOOL
Priority to CN201611110073.1A priority Critical patent/CN106657527B/zh
Publication of CN106657527A publication Critical patent/CN106657527A/zh
Application granted granted Critical
Publication of CN106657527B publication Critical patent/CN106657527B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/26Devices for calling a subscriber
    • H04M1/27Devices whereby a plurality of signals may be stored simultaneously
    • H04M1/274Devices whereby a plurality of signals may be stored simultaneously with provision for storing more than one subscriber number at a time, e.g. using toothed disc
    • H04M1/2745Devices whereby a plurality of signals may be stored simultaneously with provision for storing more than one subscriber number at a time, e.g. using toothed disc using static electronic memories, e.g. chips
    • H04M1/27467Methods of retrieving data
    • H04M1/27475Methods of retrieving data using interactive graphical means or pictorial representations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/26Devices for calling a subscriber
    • H04M1/27Devices whereby a plurality of signals may be stored simultaneously
    • H04M1/274Devices whereby a plurality of signals may be stored simultaneously with provision for storing more than one subscriber number at a time, e.g. using toothed disc
    • H04M1/2745Devices whereby a plurality of signals may be stored simultaneously with provision for storing more than one subscriber number at a time, e.g. using toothed disc using static electronic memories, e.g. chips
    • H04M1/27485Appending a prefix to or inserting a pause into a dialling sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种基于图的前缀可判断的任意长度电话号码存储和查询方法,所述方法利用语音网关或电话终端设备为平台,首先构造字典树,从根结点开始按位依次存储电话号码和前缀号码,然后添加前缀结点指向根结点的路径,将树变为有向图,通过遍历结点路径,实现判断前缀号码并查询电话号码相关信息的目的,本方法适用于电话号码存储和查询功能,相比现有方法,可有效降低存储和查询操作的空间复杂度及时间复杂度,提升执行效率。

Description

基于图的前缀可判断的任意长度电话号码存储和查询方法
技术领域
本发明涉及一种基于图的前缀可判断的任意长度电话号码存储和查询方法,本发明来源于在不同类型的电话系统构成的电话网络中,在各系统间互相拨打电话时,包含电话号码适配功能、语音服务器查询功能的语音网关设备,以及包含电话号码查询功能、归属地查询功能的电话终端设备。其中涉及使用图结构存储和查询任意长度电话号码的方法,特别涉及能够判断电话号码前缀的查询方法。
背景技术
在一个由多种不同类型的电话系统构成的电话网络中,需要语音网关进行电话系统间话音业务的转发。但是,各电话系统的拨号方式往往有所不同。如某些电话交换机系统拨打外线号码规则为添加前缀89,某些企业内部电话交换机需添加前缀9,某些基于IP电话的语音服务器可任意设置前缀规则或者不添加前缀号码。这些电话交换机或语音服务器可能会将前缀号码一并送给语音网关,语音网关需要对这些不同格式、不同前缀、不同规则的电话号码进行适配,判断此电话号码应该转发给哪个交换机或者语音服务器。某些语音网关系统或者电话终端设备还需要包含查询电话号码的归属地、联系人信息的功能。
一般地,系统使用电话号码表存储和查询电话号码。常用的电话号码表存储和查询方法有两种:哈希散列法和字典树法。这两种方法都是使用特定的数据结构构造电话号码表,达到电话号码存储和查询的目的。
在小型的语音网关系统或者电话终端设备中,常使用哈希散列表存储电话号码。该方法需要将所有已知号码逐条、完整的存储。该方法实现简单,但是需要消耗巨大的存储空间,因此只适合存储少量的电话号码。在大中型语音网关系统中,多使用字典树存储电话号码,这种方法将有公共头的电话号码合并存储在同一结点中,优化了存储空间。
上述两种电话号码存储和查询方法,在处理前缀号码问题时一般有两个解决方案。第一种方案,将带有不同前缀和不带前缀的电话号码分别当做独立的电话号码存储。例如,分别存储815002、89815002,无论查询815002还是89815002,都能匹配到正确的电话号码。但是,每增加一个新的前缀号码,电话号码表就要多消耗一倍的存储空间,造成了存储空间的巨大消耗。第二种方案,增加独立的前缀号码表,在查询电话号码前,先遍历前缀号码表,判断前缀号码。例如,前缀号码表中存储了号码89,查询电话号码前,先查询前缀号码表,若待查询电话号码以89开头,则先将89删除,再使用剩余位数去电话号码表中查询。由于需要增加前缀号码表,因此该方案需要增加额外的存储空间。由于无论待查询的电话号码是否包含前缀号码,每次查询电话号码时都要遍历前缀号码表,因此该方法也会增加额外的查询时间。
以上两种方法都不能较好的解决查询电话号码时,判断电话号码前缀的问题。要么大幅增加存储空间,要么增加查询步骤,增加查询时间。
发明内容
鉴于上述现有技术现状,本专利提供一种基于图的前缀可判断的任意长度电话号码存储和查询方法。本方法采用有向图数据结构,在一张图中同时存储电话号码和前缀号码,为图中的结点添加属性,添加前缀号码结点指向根结点的路径,实现在查询电话号码的同时判断前缀号码的目的。
本专利为实现上述目的,所采取的技术方案是:一种基于图的前缀可判断的任意长度电话号码存储和查询方法,利用语音网关或电话终端设备为平台,实现电话号码存储和查询功能,其特征在于,使用图结构存储电话号码,可查询任意长度的电话号码,可判断电话号码前缀,步骤如下:
步骤一、存储电话号码,规则为:构造一棵字典树,从根结点开始,依次使用待存储电话号码的每一位数字创建子结点,每个子结点的值等于该数字,从根结点至叶子结点的路径,不包含根结点,表示一个完整的电话号码,兄弟结点间的值不重复,具有相同前缀的电话号码拥有共同的父结点,按上述方法为每个不包含前缀的电话号码创建对应路径;
步骤二、按步骤一中的方法为所有已知的前缀号码在同一棵树中创建路径,前缀号码与步骤一中的电话号码可共同拥有相同的父结点;
步骤三、为每个结点标识结点属性,结点属性有以下四种:0x00表示此结点为中间结点,该结点不包含任何附加信息,0x01表示此结点为服务器结点,该结点包含语音服务器信息,0x02表示此结点为联系人结点,该结点包含此电话号码所属联系人信息,0x04表示此结点为前缀结点,从根结点至此结点的路径为前缀号码,一个结点最多可以包含两个属性:前缀结点属性和任意一个其他属性;
步骤四、为前缀结点添加指向根结点的路径,将树升级为有向图;
步骤五、查询电话号码,规则为:从步骤一中描述的根结点开始作为当前结点,依次读取待查询电话号码中的每一位数字,并与当前结点所指向的所有邻接结点的值进行比较,若相等,则匹配该邻接结点成功,继续以该邻接结点作为当前结点,遍历电话号码中的下一位数字,若当前结点所指向的所有邻接结点中没有与该数字相等的结点,或已读完待查询电话号码中的所有数字,则结束查询;
步骤六、遍历过程中,若当前结点包含服务器结点属性,则提取此结点存储的服务器信息,并继续遍历,若当前结点包含联系人结点属性,则提取此结点存储的联系人信息,并结束查询,若遍历至前缀结点,则根据该结点的指向返回起始结点继续遍历;
步骤七、为了防止死循环的发生,约定一个结点的前缀属性只能生效一次,第二次遍历至该结点则忽略其前缀属性继续遍历;
步骤八、结束查询时,若遍历过程中成功查询到服务器信息或联系人信息,则查询成功,否则查询失败。
本方法特点是:在存储空间方面,假设前缀号码的位数为“M”,不包含前缀号码的电话号码的位数为“N”。使用哈希散列法存储不包含前缀号码的电话号码消耗的存储空间最大为N×10N个存储单元。使用字典树法存储不包含前缀号码的电话号码消耗的存储空间最大为(10(N+1)-1)/9个存储单元。当使用哈希散列法存储电话号码表,且使用第一种前缀号码解决方案时,需要的存储空间最大为原电话号码表的M×10M倍。当使用字典树法存储电话号码表,且使用第二种前缀号码解决方案时,需要的存储空间最大为在原电话号码表的基础上,增加(10(M+1)-1)/9个存储单元。而本发明相比原电话号码表,当M≤N时,不增加任何存储空间;当M>N时,最大仅增加(10(M+1)-10(N+1))/9个存储单元。因此,本发明相比现有的两种技术方案,可大幅降低存储空间消耗。
在查询时间方面,本发明与第一种方案前缀号码解决方案耗时相当,本发明在查询没有前缀号码的电话号码时,不增加额外的查询时间,但第二种前缀号码解决方案无论待查询电话号码是否包含前缀号码,都需遍历前缀号码表,因此本发明在总体查询时间上优于第二种前缀号码解决方案。
综上所述,在判断电话号码前缀时,本方法将前缀号码与不包含前缀的电话号码合并存储在一张图中,既不大幅增加存储空间,又无需增加额外的查询时间。本方法比第一种前缀号码解决方案大幅减少存储空间消耗。本方法比第二种前缀号码解决方案大幅减少存储空间消耗和总体查询时间。相比现有技术方案,本方法使用更少的存储空间和更短的查询时间,大大提高了电话号码的存储和查询效率,可有效降低存储和查询操作的空间复杂度及时间复杂度,极大提升执行效率。因此,本方法是一种整体上优于现有技术方案的方法。
本方法适用于语音网关或电话终端设备的电话号码存储和查询功能。
附图说明
图1为本发明的有向图存储结构示意图。
具体实施方式
为了更清楚的理解本发明,结合附图和实例详细描述本发明:
某电话网络由三个电话系统组成。系统一是某型号IP电话系统,区号为“81”,内部包含一个号码为“5002”的电话(以下简称目标电话)。系统二是某型号ATM电话交换机系统,该系统呼叫外线号码的方法为“89+外线电话号码”,即系统二呼叫系统一中的目标电话需要拨打的电话号码为“89815002”,其中“89”是前缀号码。系统三是某型号模拟电话系统,该系统呼叫外线号码的方法为直拨外线电话号码,即系统三呼叫系统一中的目标电话需要拨打的电话号码为“815002”。三个电话系统呼叫外线号码时均将该号码送至语音网关进行转发。
存储时,语音网关将电话号码“815002”及前缀号码“89”按步骤一至步骤四所述的方法存储在磁盘中;
步骤一、存储不包含前缀的电话号码“815002”;首先构造一棵字典树。从此字典树的根结点开始,依次使用“8”、“1”、“5”、“0”、“0”、“2”共6个数字创建6个结点,每个结点的值等于该数字。从根结点开始,后一个结点作为前一个结点的子结点。从根结点到叶子结点“2”的路径表示完整的电话号码“815002”。
步骤二、存储前缀号码;按步骤一中的方法在上述字典树中创建路径“89”。路径“89”与路径“815002”拥有相同的父结点“8”。
步骤三、为每个结点标识结点属性;其中,将结点“1”标识为0x01服务器结点,添加号码“815002”所属的语音服务器地址:“IP=192.168.10.121”,将结点“2”标识为0x02联系人结点,添加号码“815002”所属的联系人姓名:“张三”。将结点“9”标识为0x04前缀结点,将其余结点标识为0x00中间结点。
步骤四、为前缀结点“9”添加指向根结点的路径,将树升级为有向图。
步骤四中描述的有向图存储结构如图1所示。
若系统三呼叫号码“815002”,则语音网关发起查询操作,查询过程为:从“根”结点开始使用第一位号码“8”与“根”结点指向的邻接结点“8”比较,相等,匹配成功。继续使用下一位号码“1”与结点“8”指向的邻接结点“9”、“1”分别比较,结果是与结点“1”匹配成功。依此类推,最终号码“2”与结点“2”匹配成功,结束查询,得到路径“815002”。遍历过程中成功查询到电话号码“815002”的语音服务器IP地址“192.168.10.121”和联系人姓名“张三”。
若系统二呼叫号码“89815002”,则语音网关发起查询操作,查询过程为:从根结点开始使用第一位号码“8”与根结点指向的邻接结点“8”比较,相等,匹配成功。继续使用下一位号码“9”与结点“8”指向的邻接结点“9”“1”分别比较,结果是与结点“9”匹配成功。结点“9”的属性是前缀结点,依据遍历规则,设置当前结点为“9”指向的邻接结点——“根”结点,继续遍历下一位号码“8”。依此类推,在遍历结束时获得路径“89815002”,并获得前缀号码“89”。遍历过程中成功查询到电话号码“89815002”的语音服务器IP地址“192.168.10.121”和联系人姓名“张三”。
若系统二呼叫号码“89845002”,则语音网关发起查询操作,查询过程与上述“89815002”过程类似,区别是遍历过程中以结点“8”为当前结点时,没有找到结点“8”指向的值为“4”的邻接结点,结束查询,且查询过程中没有遍历到服务器结点和联系人结点,查询失败。
根据上述说明,结合本领域技术可实现本发明的方案。

Claims (1)

1.一种基于图的前缀可判断的任意长度电话号码存储和查询方法,利用语音网关或电话终端设备为平台,实现电话号码存储和查询功能,其特征在于,使用图结构存储电话号码,能够查询任意长度的电话号码,能够判断电话号码前缀,步骤如下:
步骤一、存储电话号码,规则为:构造一棵字典树,从根结点开始,依次使用待存储电话号码的每一位数字创建子结点,每个子结点的值等于该数字,从根结点至叶子结点的路径,不包含根结点,表示一个完整的电话号码,兄弟结点间的值不重复,具有相同前缀的电话号码拥有共同的父结点,按上述方法为每个不包含前缀的电话号码创建对应路径;
步骤二、按步骤一中的方法为所有已知的前缀号码在同一棵树中创建路径,前缀号码与步骤一中的电话号码共同拥有相同的父结点;
步骤三、为每个结点标识结点属性,结点属性有以下四种:0x00表示此结点为中间结点,该结点不包含任何附加信息,0x01表示此结点为服务器结点,该结点包含语音服务器信息,0x02表示此结点为联系人结点,该结点包含此电话号码所属联系人信息,0x04表示此结点为前缀结点,从根结点至此结点的路径为前缀号码,一个结点最多包含两个属性:前缀结点属性和任意一个其他属性;
步骤四、为前缀结点添加指向根结点的路径,将树升级为有向图;
步骤五、查询电话号码,规则为:从步骤一中描述的根结点开始作为当前结点,依次读取待查询电话号码中的每一位数字,并与当前结点所指向的所有邻接结点的值进行比较,若相等,则匹配该邻接结点成功,继续以该邻接结点作为当前结点,遍历电话号码中的下一位数字,若当前结点所指向的所有邻接结点中没有与该数字相等的结点,或已读完待查询电话号码中的所有数字,则结束查询;
步骤六、遍历过程中,若当前结点包含服务器结点属性,则提取此结点存储的服务器信息,并继续遍历,若当前结点包含联系人结点属性,则提取此结点存储的联系人信息,并结束查询,若遍历至前缀结点,则根据该结点的指向返回起始结点继续遍历;
步骤七、为了防止死循环的发生,约定一个结点的前缀属性只能生效一次,第二次遍历至该结点则忽略其前缀属性继续遍历;
步骤八、结束查询时,若遍历过程中成功查询到服务器信息或联系人信息,则查询成功,否则查询失败。
CN201611110073.1A 2016-12-06 2016-12-06 基于图的前缀可判断的任意长度电话号码存储和查询方法 Active CN106657527B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611110073.1A CN106657527B (zh) 2016-12-06 2016-12-06 基于图的前缀可判断的任意长度电话号码存储和查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611110073.1A CN106657527B (zh) 2016-12-06 2016-12-06 基于图的前缀可判断的任意长度电话号码存储和查询方法

Publications (2)

Publication Number Publication Date
CN106657527A CN106657527A (zh) 2017-05-10
CN106657527B true CN106657527B (zh) 2019-04-12

Family

ID=58820011

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611110073.1A Active CN106657527B (zh) 2016-12-06 2016-12-06 基于图的前缀可判断的任意长度电话号码存储和查询方法

Country Status (1)

Country Link
CN (1) CN106657527B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108563685B (zh) * 2018-03-13 2022-03-22 创新先进技术有限公司 一种银行标识代码的查询方法、装置及设备
CN113329117B (zh) * 2021-08-02 2021-09-24 深圳市安达信通讯设备有限公司 针对电话本应用中的电话记录数据的处理方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101035307A (zh) * 2007-03-05 2007-09-12 北京佳讯飞鸿电气有限责任公司 一种交换机中模糊号码分析的实现方法
CN103209126A (zh) * 2012-01-11 2013-07-17 深圳市东进软件开发有限公司 一种具有模糊识别功能的号码分析方法和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101035307A (zh) * 2007-03-05 2007-09-12 北京佳讯飞鸿电气有限责任公司 一种交换机中模糊号码分析的实现方法
CN103209126A (zh) * 2012-01-11 2013-07-17 深圳市东进软件开发有限公司 一种具有模糊识别功能的号码分析方法和系统

Also Published As

Publication number Publication date
CN106657527A (zh) 2017-05-10

Similar Documents

Publication Publication Date Title
US8588377B2 (en) Method and system for grouping voice messages
US9270821B2 (en) Methods and apparatus to provide contact management with directory assistance
WO2003090015A2 (en) Methods and systems for implementing personal dialing plans
CN107659575B (zh) 一种宽带集群多媒体功能体及其会话方法
CN106657527B (zh) 基于图的前缀可判断的任意长度电话号码存储和查询方法
CN104079711A (zh) 一种基于语音识别的呼叫方法
CN101969400B (zh) 一种网络语音通信终端设备号码匹配的方法
US20090274141A1 (en) Ip telephone system and ip telephone method
CN101309326A (zh) 一种非即时语音信息通信的方法
CN104883428A (zh) 识别voip电话的方法及装置
CN106488055B (zh) 话单排重方法、数据节点设备及路由节点设备
US20100074429A1 (en) System and Method for Forwarding Selective Calls
CN110620849A (zh) 一种ims电话终端呼叫记录集中分拣方法及系统
US20110038471A1 (en) Dialing Plan Analysis and Cleanup
CN113114855B (zh) 一种基于ims呼叫信令的僵尸号码检索方法
CN1283117C (zh) 一种集群系统使用对用户设置的短号进行呼叫的方法
CN109246318B (zh) 一种分机电话回呼方法
EP3007417A1 (en) Method and residential gateway for realizing voice message function
CN102077551B (zh) 自动配置的互联网协议电话
US8831187B2 (en) Telephone system
CN101422003B (zh) VoIP客户信息
CN114466103B (zh) 语音数图生成的方法、装置、电子设备及存储介质
CN110752920A (zh) 一种分布式网络移动电话机用户管理方法及管理卡
JP5014728B2 (ja) 通話録音システム
JP2005094646A (ja) IP電話装置及びVoIP対応ルータ

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Han Fuchun

Inventor after: Wu Hao

Inventor after: Su Zeyou

Inventor after: Zhu Chunxiang

Inventor after: Song Rongquan

Inventor after: Xiong Huanyu

Inventor after: Wang Xiaoyong

Inventor after: Cheng Lei

Inventor before: Han Fuchun

Inventor before: Wu Hao

Inventor before: Su Zeyou

Inventor before: Zhu Chunxiang

Inventor before: Song Rongquan

Inventor before: Xiong Huanyu

Inventor before: Wang Xiaoyong

Inventor before: Cheng Lei

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant