一种语音网关数图设计和匹配方法

文档序号:7703623阅读:1404来源:国知局
专利名称:一种语音网关数图设计和匹配方法
技术领域
本发明涉及网络通信领域中语音网关设备,具体说是一种语音网关数图设计和匹配方法。
背景技术
随着IP网络、软交换和IP多媒体子系统(IMS)的进一步发展,电信网光进铜退以及国家三网融合的部署,传统PSTN(公用电话交换网,Public Switch Telephone Network) 网络将逐步被IP光网络替换,传统的程控交换机也将被语音网关、软交换和IMS (IP多媒体系统,IP Multimedia Subsystem)替换。大规模替换和新部署的语音网关都需要通过网管配置或软交换下发数图,语音网关才能够按照给定的数图匹配用户拨号。为了保证语音网关用户能够快速拨打任何存在的电话、保证电话运营商运营维护的可行性和稳定性,必须给出一种如何设计适用于语音网关的全面、高效、精简和通用的数图及其匹配方法。关于数图设计及其匹配方法,RFC3525 (网关控制协议,Gateway Control Protocol)中7. 1. 17章节仅给出了数图的语法和语义,没有给出如何设计一个全面、高效、 精简和通用的数图的方法,也没有给出如何按照给定的数图高效匹配用户拨号的方法。目前,一般语音网关中的数图都存在如下缺陷1、数图不完备,不能拨打某些存在的号码。一般的数图设计只考虑了常规的号码, 很多号码都没有考虑进去,这些没有考虑进去的号码就不能拨打。而且随着社会的发展,经常会出现一些新的号码段、新的拨号规则,由于数图的不完备,用户不能拨打这些新的号码段和新的拨号规则的号码。2、数图效率不高,用户拨全被叫号码后需要等待一个定时器超时后才上报被叫号码。通常为了能够拨打任何普通电话,很多语音网关设计数图为通配数图X.。但是,这个 X.数图又引入了另外一个新的问题,就是用户拨全被叫号码后,需要等待一个短定时器超时后才将拨打的被叫号码送到核心网软交换去呼叫接续。这个短定时器的时间一般是4到 6秒,再加上呼叫接续路由时间,用户拨完号码后首次听到回铃音需要等待十几秒或更长时间,这是用户不能接受的。3、数图不精简,数图字符串沉长冗余,长度达到了几K字节甚至几十K字节。一方面,沉长冗余的数图长字符串通过软交换下发或通过网管配置给语音网关时,增大了网络处理负担;另外一方面,语音网关保存和匹配沉长冗余的数图长字符串也需要额外的系统资源,提高了语音网关生产成本,降低了经济效益。4、数图不通用。在一个省、市或地区使用的数图不能在其它省、市或地区正常使用,运营商或设备制造商务必针对各省、市或地区分别单独设计数图,增大了运营维护的难度。5、数图匹配算法复杂,算法效率低。对于多端口的语音网关,每个端口都独立匹配拨号字符串,匹配算法占用语音网关CPU、内存等系统资源与POTS (模拟电话业务)端口数成正比。因此,低效率的数图匹配算法将导致匹配算法占用语音网关额外大量的CPU、内存等系统资源,提高了语音网关生产成本,降低了经济效益。

发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种语音网关数图设计和匹配方法,目的就在于克服现有技术存在的缺点和不足,针对当前业界语音网关数图设计不完备、数图效率不高、数图字符串沉长冗余不精简、数图不通用,数图匹配算法复杂等缺点, 充分利用数图内在的规律性,分别构建各类别的数图子集,然后对各数图子集合并组合,构建完备、高效、精简和通用的数图;对数图的匹配采用将数图分解成若干个子数图,并将各子数图字符串字符转换成32位二进制比特位保存,同时将拨号字符串字符也转换成32位二进制比特位,然后将拨号字符串比特位依次与各子数图字符串比特位按位与操作,根据操作结果来确定匹配结果。为达到以上目的,本发明采取的技术方案是一种语音网关数图设计和匹配方法,包括语音网关数图设计和语音网关数图匹配,其特征在于,其中所述语音网关数图设计包括下列步骤步骤11,构建号码集将电话号码集按内在规律划分成特服号码集10、本地固定号码集20、移动号码集30、国内固话长途8位号码集40、国内固话长途7位号码集50、国际长途号码集60和其它号码集70七个号码子集并分别构建,各号码子集均包含且仅包含本子集的全部号码;步骤12,根据各号码子集号码特点分别构建特服号码数图11、本地固定号码数图 21、移动号码数图31、国内固话长途8位号码数图41和通配数图81,所述通配数图81包括 国内固话长途 位号码数图51、国际长途号码数图61和其它号码数图71 ;步骤13,将特服号码数图11、本地固定号码数图21、移动号码数图31、国内固话长途8位号码数图41、通配数图81通过字符‘ I ’串接起来合并组合成通用数图9。在上述技术方案的基础上,当分别对七个号码子集构建号码数图时,每个号码子集所构建的号码数图要同时满足如下条件①号码数图能够拨打与其对应的号码子集中的任何电话;②拨全被叫号码后,不需要等待任何定时器超时,能立即上报拨打的电话号码串;③号码数图字符串要尽量精简,字符串长度越小越好;④各号码数图之间不允许出现冲突或重叠。在上述技术方案的基础上,所述特服号码集10是指本地非普通市话号码,将本地非普通市话号码全部罗列出来,然后按照数图的语法规则通过字符‘ I ’进行串接合并重组, 得到如下的特服号码数图11 [EF]

. F | EExx | EFxxF | FF | EFxxExxxxEx. F | FExxExxxxEx. F1100
χ 11008xSxx|10[38]|184111
111185112
112[13]Sx
|1236 χ. I [48]OOxxxxxxx|999|95xxx|96315|96169|96198 ;特服号码数图11中的E代表*,F代表# ;所述本地固定号码集20是指本地普通市话号码,将本地普通市话号码全部罗列出来,然后按照数图的语法规则通过字符‘ I,进行串接合并重组,得到如下的本地固定号码数图21 [23567] xxxxxxx|8[1-9]xxxxxx ;所述本地固定号码数图21需要根据当地固定号码长度是7位还是8位调整,如果是8位号码长度,上述本地固定号码数图21保持不变;如果是7位号码长度,上述本地固定号码数图21改为[23567] xxxxxx|8[1-9]xxxxx ;即字符‘ I,的前后均删除一个χ ;所述移动号码集30对应的移动号码数图31为1 [3458]xxxxxxxxx|01[3458]xxxxxxxxx ; 所述国内固话长途8位号码集40对应的号码比较多,先分别按照长途区号前3位数字规则以从小到大的顺序来分别构建号码数图,然后将他们用字符‘ I ’连接起来构成国内固话长途8位号码数图41 OlOxxxSxxSxxx|02xxxxSxxSxxx|031lxxxSxxSxxx|037[179]xxxSxxSxxx|04 [135]1xxxSxxSxxx|0432xxxSxxSxxx|051xxxxSxxSxxx 052 [37]xxxSxxSxxx 053 [12] xxxSxxSxxxI 057 [1345679]xxxSxxSxxx|059[15]xxxSxxSxxx|0731xxxSxxSxxx|075[457] xxxSxxSxxxI 076
xxxSxxSxxx|089
xxxSxxSxxx ;国内固话长途7位号码集50所对应的国内固话长途7位号码数图51用χ.来匹配;所述国际长途号码集60所对应的国际长途号码数图61用OOx.来匹配;所述其它号码集70所对应的其它号码数图71用χ.来匹配;国内固话长途7位号码数图51和其它号码数图71均为χ.,将二者合并为χ.,同时χ.已经包含了国际长途号码数图61的OOx.,因此将三者合并成为通配数图81,所述通配数图81用χ.来匹配;将上述特服号码数图11、本地固定号码数图21、移动号码数图31、国内固话长途8 位号码数图41、通配数图81分别通过字符‘ I,连接起来,即构成了 [EF]

. F | EExx | EFxxF | FF | EFxxExxxxEx. F | FExxExxxxEx. F|100
x|1008xSxx 10[38]|184|11
|11185|12
|12[13]Sx
|1 236x. I [48]OOxxxxxxx|999|95xxx|96315|96169|96198|1[3458]xxxxxxxxx|Ol [3458] xxxxxxxxxI[23567]xxxxxxx|8[1-9]xxxxxx|OlOxxxSxxSxxx|02xxxxSxxSxxx|031IxxxS xxSxxxI 037[179]xxxSxxSxxx|04[135]lxxxSxxSxxx|0432xxxSxxSxxx|051xxxxSxxSxx χ I 052 [37]xxxSxxSxxx|053[12]xxxSxxSxxx|057[1345679]xxxSxxSxxx|059[15]xxxSxxSxx χ I0731xxxSxxSxxx|075[457]xxxSxxSxxx|076
xxxSxxSxxx|089
xxxSxxSxxx|x.此即通用数图9。在上述技术方案的基础上,所述语音网关数图匹配包括下列步骤步骤21,子数图保存将通用数图9按照字符‘|’为分界,分解成若干个子数图 91、92、…、9η,其中η是子数图的数目,η等于通用数图9中字符‘ |,的字符个数加1,子数图91、92、…、9η自身不包含字符‘ I ’,各子数图字符串字符转换成32位二进制比特位,并和子数图匹配标志、子数图匹配比较位置索引一同保存,且设置各子数图匹配标志为匹配;
步骤22,拨号字符串逐个与单个子数图字符串匹配用户每输入一次拨号号码, 就将用户拨号字符串的最后一位号码字符作为拨号字符转换成32位二进制比特位,然后分别与各子数图91、92、…、9η中匹配标志为匹配的子数图相应位置字符对应的32位二进制比特位按逻辑与操作来比较匹配;所述子数图相应位置字符通过子数图匹配比较位置索引获得;如果逻辑与结果为假,则不匹配,设置相应的子数图的匹配标志为不匹配;如果逻辑与结果为真,则匹配;在匹配情况下,进一步判断匹配类型是完全匹配、 部分匹配还是惟一匹配,并统计各匹配类型匹配次数的累计和;步骤23,依次分别对各子数图进行匹配比较,并对匹配结果按惟一匹配、部分匹配、完全匹配分类进行匹配次数累加和统计,即当匹配结果为惟一匹配时,惟一匹配次数加 1,当匹配结果为部分匹配时,部分匹配次数加1,当匹配结果为完全匹配时,完全匹配次数加1 ;在子数图匹配过程中,当某一子数图的匹配结果为惟一匹配,且数图立即上报开关开启,则立即终止后续其它子数图的匹配比较过程,通用数图的最终匹配结果为惟一匹配;否则,全部子数图匹配完成后,转步骤M ;所述立即上报开关是一个全局变量,对全部子数图都有效,通常情况下,立即上报开关状态为开启;步骤对,根据各子数图匹配比较结果惟一匹配、部分匹配和完全匹配次数累加和来决定通用数图的最终匹配结果如果惟一匹配次数大于零,部分匹配和完全匹配次数均为零,则最终匹配结果为惟一匹配;如果惟一匹配次数大于零,部分匹配次数大于零或完全匹配次数大于零,则最终匹配结果为完全匹配;如果惟一匹配次数等于零,完全匹配次数大于零,则最终匹配结果为完全匹配;如果惟一匹配次数等于零,完全匹配次数等于零,部分匹配次数大于零,则最终匹配结果为部分匹配;否则,最终匹配结果为不匹配。在上述技术方案的基础上,步骤21所述的子数图保存包括以下具体步骤步骤211,按以下结构保存各子数图信息采用32位二进制比特位保存的子数图字符串+子数图匹配标志+子数图匹配比较位置索引;步骤212,子数图字符串的保存方式为分别保存子数图字符串中的字符,单个字符保存信息包含字符对应的整数值、点字符标志、与点后一个字符匹配比较标志、匹配类型;各类字符表示原则如下Al、非数字大小写字符统一按大写字符处理;Bi、字符‘0’- ‘F’分别用4字节整数1向左移0-15个比特位bit的整型来表示;Cl、‘X,和‘X’表示能匹配‘0’ - ‘9’的任何一个字符,用‘0’ - ‘9’十个整数值二进制比特位相或的结果0000 0000 0000 0000 00000011 1111 1111的整型来表示;
D1、□及[]里包含的所有字符算单个字符,以单个字符形式保存,以[]逻辑包含的所有字符的bit位相或来表示;从子数图字符串第一个字符开始自左向右扫描字符串,按如下规则保存当前字符 fn息A2、如果当前字符是‘0’ - ‘F’或‘X’或‘X’,保存该字符对应整数值,置点字符标志为假,置与点后一个字符匹配比较为假,同时扫描当前字符下一个字符,如果无下一个字符,置匹配类型为惟一匹配;如果下一个字符是‘0,- ‘F’、‘X’、‘X’或‘L,中的任何一个字符,则置匹配类型为部分匹配;如果下一个字符是‘S’,则置匹配类型为完全匹配;如果下一个字符是‘.’且‘.’是数图字符串最后一个字符,则置匹配类型为完全匹配;如果下一个字符是‘.’且‘.’不是最后一个字符,则置匹配类型为部分匹配,然后取当前字符下一个字符为当前字符,继续保存字符信息;如果当前字符为‘.’,置点字符标志为真,如果‘.,是最后一个字符,则置与点后一个字符匹配比较为假,置匹配类型为完全匹配;如果‘.,不是最后一个字符,则置与点后一个字符匹配比较标志为真,置匹配类型为部分匹配,然后取当前字符下一个字符为当前字符,继续保存字符信息;如果当前字符为‘L’或‘S’,取当前字符下一个字符为当前字符,继续保存字符信息;步骤213,初使化子数图匹配标志为匹配;步骤214,初使化子数图当前匹配位置索引。在上述技术方案的基础上,步骤22进行拨号字符与子数图中指定单个字符进行匹配比较时如果当前字符节点中点字符标志为假,将当前字符节点中整数值与拨号字符按位与操作匹配比较,如果匹配,则该子数图本次匹配比较结果为当前字符节点中的匹配类型, 并将子数图匹配比较位置索引加1 ;如果不匹配,判断与点后一个字符匹配比较标志,如果与点后一个字符匹配比较标志为假,则该子数图本次匹配比较结果为不匹配;如果与点后一个字符匹配比较标志为真,取当前字符的下一个字符的整数值与拨号字符按位与匹配比较;如果当前字符节点中点字符标志为真,判断点是否是最后一个字符,如果是最后一个字符,则取当前字符的前一个字符的整数值与拨号字符按位与操作匹配比较;如果点不是最后一个字符,置与点后一个字符匹配比较标志为真,然后取当前字符的前一个字符的整数值与拨号字符按位与操作匹配比较。本发明所述的语音网关数图设计和匹配方法,具有下列优点和积极效果1、数图设计充分利用了号码集内在的规律性,采用从整体到部分再回到整体的思想。分别构建特服号码数图11、本地固定号码数图21、移动号码数图31、国内固话长途8位号码数图41、国内固话长途7位号码数图51、国际长途号码数图61和其它号码数图71,然后将这些数图合并重组,得到一个全面、高效、精简和通用的数图,对电信运营商和设备制造商的运营维护具有积极的意义。2、匹配算法采用从整体到部分再到整体思想,将通用数图9分解成各子数图91、 子数图92,……,子数图9η,拨号串分别与各子数图匹配,根据各子数图的匹配结果综合确定最终匹配结果,算法思路清晰。3、将拨号串字符和子数图字符串字符分别转换成4字节的二进制比特位保存,并采用位与操作结果来确定拨号串与子数图匹配结果,算法简单、效率高。4、每次匹配用户拨号串时,仅对用户拨号串中新拨的号码与匹配标志为匹配的子数图匹配比较,降低了算法的复杂度。5、本发明适用于基于语音网关的数图设计和匹配,而且也适用于其它非语音网关的数图设计和匹配。


本发明有如下附图图1是本发明号码集构成图;图2是本发明数图逻辑构成和分解图;图3是本发明拨号串与单个子数图匹配比较逻辑图。其中10-特服号码集,20-本地固定号码集,30-移动号码集,40-国内固话长途8位号码集,50-国内固话长途7位号码集,60-国际长途号码集,70-其它号码集,11-特服号码数图,21-本地固定号码数图,31-移动号码数图,41-国内固话长途 8位号码数图,51-国内固话长途7位号码数图,61-国际长途号码数图,71-其它号码数图, 81-通配数图,9-通用数图,9η(η = 1,2,3,……)-子数图。
具体实施例方式以下结合附图对本发明作进一步详细说明。本发明所述的语音网关数图设计和匹配方法,充分利用数图内在的规律性,分别构建各类别的数图子集,然后对各数图子集合并组合,构建完备、高效、精简和通用的数图; 对数图的匹配采用将数图分解成若干个子数图,并将各子数图字符串字符转换成32位二进制比特位保存,同时将拨号字符串字符也转换成32位二进制比特位,然后将拨号字符串比特位依次与各子数图字符串比特位按位与操作,根据操作结果来确定匹配结果。本发明适用于基于语音网关数图设计和匹配方法,而且也适用于软交换服务器数图设计和匹配方法。本发明所述的语音网关数图设计和匹配方法,包括语音网关数图设计和语音网关数图匹配,其中所述语音网关数图设计包括下列步骤步骤11,构建号码集将电话号码集按内在规律划分成特服号码集10、本地固定号码集20、移动号码集30、国内固话长途8位号码集40、国内固话长途7位号码集50、国际长途号码集60和其它号码集70七个号码子集并分别构建,各号码子集均包含且仅包含本子集的全部号码;如图1所示;步骤12,根据各号码子集号码特点分别构建特服号码数图11、本地固定号码数图 21、移动号码数图31、国内固话长途8位号码数图41和通配数图81,所述通配数图81包括 国内固话长途 位号码数图51、国际长途号码数图61和其它号码数图71 ;如图2所示;步骤13,将特服号码数图11、本地固定号码数图21、移动号码数图31、国内固话长途8位号码数图41、通配数图81通过字符‘ I ’串接起来合并组合成通用数图9 ;由特服号码数图11、本地固定号码数图21、移动号码数图31、国内固话长途8位号码数图41、通配数图81通过字符‘ I ’串接合并而成的字符串就是一个全面、高效、精简和通用的数图。在上述技术方案的基础上,当分别对七个号码子集构建号码数图时,每个号码子集所构建的号码数图要同时满足如下条件①号码数图能够拨打与其对应的号码子集中的任何电话;②拨全被叫号码后,不需要等待任何定时器超时,能立即上报拨打的电话号码串;③号码数图字符串要尽量精简,字符串长度越小越好;④各号码数图之间不允许出现冲突或重叠。在上述技术方案的基础上,所述特服号码集10是指本地非普通市话号码,将本地非普通市话号码全部罗列出来,然后按照数图的语法规则通过字符‘ I ’进行串接合并重组, 得到如下的特服号码数图11 [EF]

·F|EExx|EFxxF|FF|EFxxExxxxEx. F|FExxExxxxEx. F|100
x|1008xSxx|10[38]|184|11
|11185|12
|12[13]Sx
|1236x. |[48]OOxx xxxxxI 999 I95xxx|96315|96169|96198 ;特服号码数图11中的E代表*,F代表# ;所述本地固定号码集20是指本地普通市话号码,将本地普通市话号码全部罗列出来,然后按照数图的语法规则通过字符‘ I,进行串接合并重组,得到如下的本地固定号码数图21 [23567]xxxxxxxI 8[1-9]XXXXXX ;所述本地固定号码数图21需要根据当地固定号码长度是7位还是8位调整,如果是8位号码长度,上述本地固定号码数图21保持不变;如果是7位号码长度,上述本地固定号码数图21改为[23567]xxxxxxI 8[1-9]xxxxx ;即字符‘ I,的前后均删除一个χ ;所述移动号码集30对应的移动号码数图31为1[3458] xxxxxxxxx|01[3458]xxxxxxxxx ;所述国内固话长途8位号码集40对应的号码比较多,先分别按照长途区号前3位数字规则以从小到大的顺序来分别构建号码数图,然后将他们用字符‘ I ’连接起来构成国内固话长途8位号码数图41 OlOxxxSxxSxxx|02xxxxSxxSxxx|031lxxxSxxSxxx|037 [179]xxxSxxSxxx|04 [135]1xxxSxxSxxx|0432xxxSxxSxxx|051xxxxSxxSxxx|052[37]xxxSxxSxxx|053[12]xxxSxxSxxxI 057[1345679]xxxSxxSxxx|059[15]xxxSxxSxxx|0731xxxSxxSxxx|075[457] xxxSxxSxxxI 076
xxxSxxSxxx|089
xxxSxxSxxx ;所述国内固话长途7位号码集50所对应的国内固话长途7位号码的地区不是太多,这些地区的电话装机容量和做长途被叫的通话量都相对比较少,且这些地区号码随时都可能升到8位,为了减少号码升位导致需要在第一时间升级全国所有省、市或地区数以万计的语音网关数图,因此将与国内固话长途7位号码集50所对应的国内固话长途7位号码数图51用χ.来匹配;所述国际长途号码集60所对应的国际长途号码数图61用OOx.来匹配;所述其它号码集70所对应的其它号码数图71用χ.来匹配;国内固话长途7位号码数图51和其它号码数图71均为χ.,将二者合并为χ.,同时χ.已经包含了国际长途号码数图61的OOx.,因此将三者合并成为通配数图81,所述通配数图81用χ.来匹配;将上述特服号码数图11、本地固定号码数图21、移动号码数图31、国内固话长途8 位号码数图41、通配数图81分别通过字符‘ I,连接起来,即构成了 [EF]

·F|EExx|EFxxF|FF|EFxxExxxxEx. F|FExxExxxxEx. F|100
x|1008xSxx|10[38]|184|11
|11185|12
|12[13]Sx
|1236χ· |[48]OOx χχχχχχI 999 I95χχχ|96315|96169|9619811[3458]xxxxxxxxx|01[3458]χχχχχχχχχ|[23567] χχχχχχχ 8[1~9]χχχχχχ|OlOxxxSxxSxxx|02xxxxSxxSxxx|031lxxxSxxSxxx 037 [179] xxxSxxSxxxI 04 [135]lxxxSxxSxxx|0432xxxSxxSxxx|05lxxxxSxxSxxx|052 [37] xxxSxxSxxxI 053[12]xxxSxxSxxx|057[1345679]xxxSxxSxxx|059[15]xxxSxxSxxx|0731xxx SxxSxxx|075[457]xxxSxxSxxx|076
xxxSxxSxxx|089
xxxSxxSxxx|x.此即通用数图9。在上述技术方案的基础上,所述语音网关数图匹配包括下列步骤步骤21,子数图保存将通用数图9按照字符‘|’为分界,分解成若干个子数图 91、92、…、9η,其中η是子数图的数目,η等于通用数图9中字符‘ |,的字符个数加1,子数图91、92、…、9η自身不包含字符‘ I ’,各子数图字符串字符转换成32位二进制比特位,并和子数图匹配标志、子数图匹配比较位置索引一同保存,且设置各子数图匹配标志为匹配;步骤22,拨号字符串逐个与单个子数图字符串匹配用户每输入一次拨号号码, 就将用户拨号字符串的最后一位号码字符作为拨号字符转换成32位二进制比特位,然后分别与各子数图91、92、…、9η中匹配标志为匹配的子数图相应位置字符对应的32位二进制比特位按逻辑与操作来比较匹配;所述子数图相应位置字符通过子数图匹配比较位置索引获得;参见图3;如果逻辑与结果为假,则不匹配,设置相应的子数图的匹配标志为不匹配;如果逻辑与结果为真,则匹配;在匹配情况下,进一步判断匹配类型是完全匹配、 部分匹配还是惟一匹配,并统计各匹配类型匹配次数的累计和;如上所述,每一次均只需判断“用户拨号字符串的最后一位号码字符”,因为最后一位号码之前的号码已经匹配,如果最后一位号码之前的号码不匹配,则在上一次的匹配比较过程中已经将该子数图设置匹配标志为不匹配;对于已经设置了匹配标志为不匹配的子数图,后续不再继续匹配比较,后续匹配比较只在匹配标志为匹配的子数图相应位置字符对应的二进制比特位按逻辑与操作来比较匹配,这样可以提高算法效率;步骤23,依次分别对各子数图进行匹配比较,并对匹配结果按惟一匹配、部分匹配、完全匹配分类进行匹配次数累加和统计,即当匹配结果为惟一匹配时,惟一匹配次数加 1,当匹配结果为部分匹配时,部分匹配次数加1,当匹配结果为完全匹配时,完全匹配次数加1 ;在子数图匹配过程中,当某一子数图的匹配结果为惟一匹配,且数图立即上报开关开启,则立即终止后续其它子数图的匹配比较过程,通用数图的最终匹配结果为惟一匹配;否则,全部子数图匹配完成后,转步骤M ;为了让用户拨全被叫号码后,尽量不需要等待任何定时器超时,而是立即上报号码,我们特额外增加一个立即上报开关,该立即上报开关是一个全局变量,对全部子数图都有效。通常情况下,立即上报开关状态为开启,该立即上报开关对前述通用数图的格式没有任何影响。步骤对,根据各子数图匹配比较结果惟一匹配、部分匹配和完全匹配次数累加和来决定通用数图的最终匹配结果如果惟一匹配次数大于零,部分匹配和完全匹配次数均为零,则最终匹配结果为惟一匹配;如果惟一匹配次数大于零,部分匹配次数大于零或完全匹配次数大于零,则最终匹配结果为完全匹配;如果惟一匹配次数等于零,完全匹配次数大于零,则最终匹配结果为完全匹配;如果惟一匹配次数等于零,完全匹配次数等于零,部分匹配次数大于零,则最终匹配结果为部分匹配;否则,最终匹配结果为不匹配。在上述技术方案的基础上,步骤21所述的子数图保存包括以下具体步骤步骤211,按以下结构保存各子数图信息采用32位二进制比特位保存的子数图字符串+子数图匹配标志+子数图匹配比较位置索引;步骤212,子数图字符串的保存方式为分别保存子数图字符串中的字符,单个字符保存信息包含字符对应的整数值、点字符标志、与点后一个字符匹配比较标志、匹配类型;各类字符表示原则如下Al、非数字大小写字符统一按大写字符处理;Bi、字符 ‘0,- ‘F,(字符 ‘0,- ‘F,分别代表字符 ‘0,、‘1,、‘2,、‘3,、‘4,、‘5,、 ‘6,、‘7,、‘8,、‘9,、‘A,、‘B,、‘C,、‘D,、 ,、‘F,)分别用 4 字节整数 1 向左移 0-15 个比特位bit的整型来表示;Cl、‘X,和‘X’表示能匹配‘0’ - ‘9’的任何一个字符,用‘0’ - ‘9’十个整数值二进制比特位相或的结果0000 0000 0000 0000 00000011 1111 1111的整型来表示;D1、□及[]里包含的所有字符算单个字符,以单个字符形式保存,以[]逻辑包含的所有字符的bit位相或来表示;从子数图字符串第一个字符开始自左向右扫描字符串,按如下规则保存当前字符fn息A2、如果当前字符是‘0’ - ‘F’或‘X’或‘X’,保存该字符对应整数值,置点字符标志为假,置与点后一个字符匹配比较为假,同时扫描当前字符下一个字符,如果无下一个字符,置匹配类型为惟一匹配;如果下一个字符是‘0’ - ‘F’、‘X’、‘X’或‘L,中的任何一个字符,则置匹配类型为部分匹配;如果下一个字符是‘S’,则置匹配类型为完全匹配;如果下一个字符是‘.’且‘.’是数图字符串最后一个字符,则置匹配类型为完全匹配;如果下一个字符是‘.’且‘.’不是最后一个字符,则置匹配类型为部分匹配,然后取当前字符下一个字符为当前字符,继续保存字符信息;如果当前字符为‘.’,置点字符标志为真,如果‘.,是最后一个字符,则置与点后一个字符匹配比较为假,置匹配类型为完全匹配;如果‘.,不是最后一个字符,则置与点后一个字符匹配比较标志为真,置匹配类型为部分匹配,然后取当前字符下一个字符为当前字符,继续保存字符信息;如果当前字符为‘L’或‘S’,取当前字符下一个字符为当前字符,继续保存字符信息;步骤213,初使化子数图匹配标志为匹配;后续号码串的匹配过程中会对该标志位进行判断和修改,有利于减小匹配算法的复杂度;步骤214,初使化子数图当前匹配位置索引。初使化当前匹配位置索引,是因为每次匹配后,当前匹配位置索引都需要后移一个字符位置,方便下次匹配时从何处开始匹配,不需要从拨号串的第一个字符、子数图的第一个字符开始匹配,直接将最后收到的一个拨号字符与子数图当前匹配位置索引对应的字符进行比较匹配,这样提高了算法的效率。在步骤22中相应位置就是指匹配位置索引。子数图匹配标志有两个状态匹配和不匹配,这个标志是表明拨号串和该子数图是否匹配的,当不匹配时,后续拨的号码就不在和这个子数图匹配比较了,这样可以提高匹配比较效率,避免冗余计算;例如有10个子数图,当用户拨第一个号码时,需要对这个10个子数图分别进行匹配比较,比较完成后,如果有3个子数图的比较结果是不匹配,则置这三个子数图的子数图匹配标志为不匹配(匹配标志发生了变化),当用户拨第二个号码时,只在剩下的7个子数图匹配标志为匹配的子数图中匹配比较;段落中的匹配类型有完全匹配、部分匹配、惟一匹配。这个匹配类型是拨号串匹配到子数图中该字符时,整个子数图的匹配类型。按逻辑分层来说,这个匹配类型应该是在匹配过程中描述,且这个描述需要对子数图字符串组成进行字符分析,同时考虑到存储子数图时也需要对子数图字符串组成进行字符分析,因此在存贮子数图时,对子数图字符串组成进行字符分析时,同时保存了匹配类型。在上述技术方案的基础上,步骤22进行拨号字符与子数图中指定单个字符进行匹配比较时如果当前字符节点中点字符标志为假,将当前字符节点中整数值与拨号字符按位与操作匹配比较,如果匹配,则该子数图本次匹配比较结果为当前字符节点中的匹配类型,并将子数图匹配比较位置索引加1 ;如果不匹配,判断与点后一个字符匹配比较标志,如果与点后一个字符匹配比较标志为假,则该子数图本次匹配比较结果为不匹配;如果与点后一个字符匹配比较标志为真,取当前字符的下一个字符的整数值与拨号字符按位与匹配比较;如果当前字符节点中点字符标志为真,判断点是否是最后一个字符,如果是最后一个字符,则取当前字符的前一个字符的整数值与拨号字符按位与操作匹配比较;如果点不是最后一个字符,置与点后一个字符匹配比较标志为真,然后取当前字符的前一个字符的整数值与拨号字符按位与操作匹配比较。本发明所述的语音网关数图设计和匹配方法,具有以下特点①特服号码数图11、本地固定号码数图21、移动号码数图31、国内固话长途8位号码数图41、通配数图81之间不存在冲突和重叠;②数图9能够拨打任何存在的电话,拨全被叫号码后一般不需要等待任何定时器超时,可以立即上报拨号字符串;拨全被叫号码后加拨#号也可以立即上报;数图字符串精简,字符串长度很小;③长途区号调整、城市电话号码长度升位或新增拨号规则后,不升级数图9,依旧可以正常使用;④将拨号字符串和子数图字符串字符通过移位操作、位或操作以二进制比特位的形式保存,采用位与操作比较匹配结果;⑤新的拨号字符串开始重新匹配比较时,直接从子数图字符串当前位置索引开始匹配比较;⑥采用立即上报开关来控制惟一匹配后是否立即上报匹配号码。当当前子数图匹配结构是惟一匹配且立即上报开关开启,则立即上报匹配号码;否则继续后续匹配过程。⑦分别统计与各子数图一次匹配结果中不匹配、部分匹配、完全匹配和惟一匹配的匹配次数,通过不同匹配类型的匹配次数的关系来决定最终的匹配结果。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
权利要求
1.一种语音网关数图设计和匹配方法,包括语音网关数图设计和语音网关数图匹配, 其特征在于,其中所述语音网关数图设计包括下列步骤步骤11,构建号码集将电话号码集按内在规律划分成特服号码集(10)、本地固定号码集(20)、移动号码集(30)、国内固话长途8位号码集00)、国内固话长途7位号码集 (50)、国际长途号码集(60)和其它号码集(70)七个号码子集并分别构建,各号码子集均包含且仅包含本子集的全部号码;步骤12,根据各号码子集号码特点分别构建特服号码数图(11)、本地固定号码数图 (21)、移动号码数图(31)、国内固话长途8位号码数图和通配数图(81),所述通配数图(81)包括国内固话长途7位号码数图(51)、国际长途号码数图(61)和其它号码数图 (71);步骤13,将特服号码数图(11)、本地固定号码数图(21)、移动号码数图(31)、国内固话长途8位号码数图(41)、通配数图(81)通过字符‘|’串接起来合并组合成通用数图(9)。
2.如权利要求1所述的语音网关数图设计和匹配方法,其特征在于当分别对七个号码子集构建号码数图时,每个号码子集所构建的号码数图要同时满足如下条件①号码数图能够拨打与其对应的号码子集中的任何电话;②拨全被叫号码后,不需要等待任何定时器超时,能立即上报拨打的电话号码串;③号码数图字符串要尽量精简,字符串长度越小越好;④各号码数图之间不允许出现冲突或重叠。
3.如权利要求1所述的语音网关数图设计和匹配方法,其特征在于所述特服号码集 (10)是指本地非普通市话号码,将本地非普通市话号码全部罗列出来,然后按照数图的语法规则通过字符‘I’进行串接合并重组,得到如下的特服号码数图(11)[EF]
. F|EExx|EFxxF|FF|EFxxExxxxEx. F|FExxExxxxEx. F1100
χ110 08xSxx|10[38]1184 111
111185|12
112[13]Sx
11236χ· |[48]00χχχχχχ χ I 999 I95χχχ|96315|96169|96198 ;特服号码数图(11)中的E代表*,F代表所述本地固定号码集00)是指本地普通市话号码,将本地普通市话号码全部罗列出来,然后按照数图的语法规则通过字符‘ I,进行串接合并重组,得到如下的本地固定号码数图 [23567]xxxxxxx|8[1-9]xxxxxx ;所述本地固定号码数图需要根据当地固定号码长度是7位还是8位调整,如果是 8位号码长度,上述本地固定号码数图保持不变;如果是7位号码长度,上述本地固定号码数图改为[23567]xxxxxx|8[1-9]xxxxx ;即字符‘I’的前后均删除一个χ;所述移动号码集(30)对应的移动号码数图(31)为1[3458]xxxxxxxxx|01[3458]xxxxxxxxx ;所述国内固话长途8位号码集00)对应的号码比较多,先分别按照长途区号前3位数字规则以从小到大的顺序来分别构建号码数图,然后将他们用字符‘I’连接起来构成国内固话长途8位号码数图010xxxSxxSxxx|02xxxxSxxSxxx|0311xxxSxxSxxx|037[179]xxxSxxSxxx|04[l 35]lxxxSxxSxxx|0432xxxSxxSxxx|051xxxxSxxSxxx|052[37]xxxSxxSxxx|053[12] xxxSxxSxxxI 057 [1345679]xxxSxxSxxx|059[15]xxxSxxSxxx|0731xxxSxxSxxx|075[457] xxxSxxSxxxI 076
xxxSxxSxxx|089
xxxSxxSxxx ;国内固话长途7位号码集(50)所对应的国内固话长途7位号码数图(51)用χ.来匹配;所述国际长途号码集(60)所对应的国际长途号码数图(61)用OOx.来匹配; 所述其它号码集(70)所对应的其它号码数图(71)用χ.来匹配; 国内固话长途7位号码数图(51)和其它号码数图(71)均为χ.,将二者合并为χ.,同时χ.已经包含了国际长途号码数图(61)的OOx.,因此将三者合并成为通配数图(81),所述通配数图(81)用χ.来匹配;将上述特服号码数图(11)、本地固定号码数图(21)、移动号码数图(31)、国内固话长途8位号码数图Gl)、通配数图(81)分别通过字符‘ I,连接起来,即构成了 [EF]

.F|EExx|EFxxF|FF|EFxxExxxxEx. F|FExxExxxxEx. F|100
χ 1008xSxx|10[38]|184|11
|11185|12
112[13]Sx
|1236χ· |[48]OOxxx χχχχI 999 I95χχχ|96315|96169|96198|1[3458]xxxxxxxxx 01[3458]χχχχχχχχχ|[23567] χχχχχχχ 8[1~9]χχχχχχ|OlOxxxSxxSxxx|02xxxxSxxSxxx|0311xxxSxxSxxx 037 [179] xxxSxxSxxxI 04 [135] lxxxSxxSxxx|0432xxxSxxSxxx|05lxxxxSxxSxxx|052 [37] xxxSxxSxxxI 053[12]xxxSxxSxxx|057[1345679]xxxSxxSxxx|059[15]xxxSxxSxxx|0731xxx SxxSxxx|075[457]xxxSxxSxxx|076
xxxSxxSxxx|089
xxxSxxSxxx|x. 此即通用数图(9)。
4.如权利要求1或2或3所述的语音网关数图设计和匹配方法,其特征在于,所述语音网关数图匹配包括下列步骤步骤21,子数图保存将通用数图(9)按照字符‘|’为分界,分解成若干个子数图 (91)、(92)、…、(9η),其中η是子数图的数目,η等于通用数图(9)中字符‘ | ’的字符个数加1,子数图(91)、(92)、…、(9η)自身不包含字符‘ | ’,各子数图字符串字符转换成32位二进制比特位,并和子数图匹配标志、子数图匹配比较位置索引一同保存,且设置各子数图匹配标志为匹配;步骤22,拨号字符串逐个与单个子数图字符串匹配用户每输入一次拨号号码,就将用户拨号字符串的最后一位号码字符作为拨号字符转换成32位二进制比特位,然后分别与各子数图(91)、(92)、…、(如)中匹配标志为匹配的子数图相应位置字符对应的32位二进制比特位按逻辑与操作来比较匹配;所述子数图相应位置字符通过子数图匹配比较位置索引获得;如果逻辑与结果为假,则不匹配,设置相应的子数图的匹配标志为不匹配; 如果逻辑与结果为真,则匹配;在匹配情况下,进一步判断匹配类型是完全匹配、部分匹配还是惟一匹配,并统计各匹配类型匹配次数的累计和;步骤23,依次分别对各子数图进行匹配比较,并对匹配结果按惟一匹配、部分匹配、完全匹配分类进行匹配次数累加和统计,即当匹配结果为惟一匹配时,惟一匹配次数加1,当匹配结果为部分匹配时,部分匹配次数加1,当匹配结果为完全匹配时,完全匹配次数加1 ; 在子数图匹配过程中,当某一子数图的匹配结果为惟一匹配,且数图立即上报开关开启,则立即终止后续其它子数图的匹配比较过程,通用数图的最终匹配结果为惟一匹配;否则,全部子数图匹配完成后,转步骤M ;所述立即上报开关是一个全局变量,对全部子数图都有效,通常情况下,立即上报开关状态为开启;步骤对,根据各子数图匹配比较结果惟一匹配、部分匹配和完全匹配次数累加和来决定通用数图的最终匹配结果如果惟一匹配次数大于零,部分匹配和完全匹配次数均为零,则最终匹配结果为惟一匹配;如果惟一匹配次数大于零,部分匹配次数大于零或完全匹配次数大于零,则最终匹配结果为完全匹配;如果惟一匹配次数等于零,完全匹配次数大于零,则最终匹配结果为完全匹配; 如果惟一匹配次数等于零,完全匹配次数等于零,部分匹配次数大于零,则最终匹配结果为部分匹配;否则,最终匹配结果为不匹配。
5.如权利要求4所述的语音网关数图设计和匹配方法,其特征在于,步骤21所述的子数图保存包括以下具体步骤步骤211,按以下结构保存各子数图信息采用32位二进制比特位保存的子数图字符串+子数图匹配标志+子数图匹配比较位置索引;步骤212,子数图字符串的保存方式为分别保存子数图字符串中的字符,单个字符保存信息包含字符对应的整数值、点字符标志、与点后一个字符匹配比较标志、匹配类型; 各类字符表示原则如下 Al、非数字大小写字符统一按大写字符处理;Bi、字符‘0’ - ‘F’分别用4字节整数1向左移0-15个比特位bit的整型来表示; Cl、‘X’和‘X’表示能匹配‘0’ - ‘9’的任何一个字符,用‘0’ - ‘9’十个整数值二进制比特位相或的结果0000 0000 0000 0000 00000011 1111 1111的整型来表示;D1、□及[]里包含的所有字符算单个字符,以单个字符形式保存,以[]逻辑包含的所有字符的bit位相或来表示;从子数图字符串第一个字符开始自左向右扫描字符串,按如下规则保存当前字符信息A2、如果当前字符是‘0’ - ‘F’或‘X’或‘X’,保存该字符对应整数值,置点字符标志为假,置与点后一个字符匹配比较为假,同时扫描当前字符下一个字符, 如果无下一个字符,置匹配类型为惟一匹配;如果下一个字符是‘0’ - ‘F’、‘X’、‘X’或‘L,中的任何一个字符,则置匹配类型为部分匹配;如果下一个字符是‘S’,则置匹配类型为完全匹配;如果下一个字符是‘.’且‘.’是数图字符串最后一个字符,则置匹配类型为完全匹配;如果下一个字符是‘.’且‘.’不是最后一个字符,则置匹配类型为部分匹配,然后取当前字符下一个字符为当前字符,继续保存字符信息;如果当前字符为‘.’,置点字符标志为真,如果‘.,是最后一个字符,则置与点后一个字符匹配比较为假,置匹配类型为完全匹配;如果‘.,不是最后一个字符,则置与点后一个字符匹配比较标志为真,置匹配类型为部分匹配,然后取当前字符下一个字符为当前字符, 继续保存字符信息;如果当前字符为‘L’或‘S’,取当前字符下一个字符为当前字符,继续保存字符信息; 步骤213,初使化子数图匹配标志为匹配; 步骤214,初使化子数图当前匹配位置索引。
6.如权利要求4所述的语音网关数图设计和匹配方法,其特征在于,步骤22进行拨号字符与子数图中指定单个字符进行匹配比较时如果当前字符节点中点字符标志为假,将当前字符节点中整数值与拨号字符按位与操作匹配比较,如果匹配,则该子数图本次匹配比较结果为当前字符节点中的匹配类型,并将子数图匹配比较位置索引加1 ;如果不匹配,判断与点后一个字符匹配比较标志,如果与点后一个字符匹配比较标志为假,则该子数图本次匹配比较结果为不匹配;如果与点后一个字符匹配比较标志为真,取当前字符的下一个字符的整数值与拨号字符按位与匹配比较;如果当前字符节点中点字符标志为真,判断点是否是最后一个字符,如果是最后一个字符,则取当前字符的前一个字符的整数值与拨号字符按位与操作匹配比较;如果点不是最后一个字符,置与点后一个字符匹配比较标志为真,然后取当前字符的前一个字符的整数值与拨号字符按位与操作匹配比较。
全文摘要
本发明涉及一种语音网关数图设计和匹配方法,将特服号码数图、本地固定号码数图、移动号码数图、国内固话长途8位号码数图、国内固话长途7位号码数图、国际长途号码数图和其它号码数图合并组合成一个全面、高效、精简和通用的数图。相应地,本发明还将通用数图分解成各个子数图,并将各子数图字符和拨号字符串字符通过左移、位或操作转换成二进制比特,按位与操作进行非回退匹配比较,并结合立即上报开关来确定最终匹配结果。本发明所述的设计和匹配方法,采用从整体到部分再回到整体的思想,得到一个全面、高效、精简和通用的数图,对电信运营商和设备制造商的运营维护具有积极的意义;匹配算法思路清晰,算法简单、效率高。
文档编号H04M7/00GK102355540SQ20111017173
公开日2012年2月15日 申请日期2011年6月24日 优先权日2011年6月24日
发明者彭求明, 朱木成 申请人:烽火通信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1