电话拨号数图的匹配算法研究和高效实现
一种高效的正则表达式匹配方法
一种高效的正则表达式匹配方法
张树壮;吴志刚;罗浩
【期刊名称】《高技术通讯》
【年(卷),期】2014(024)006
【摘要】为实现网络安全检测中大规模正则表达式的匹配,分析了在从非确定型有限自动机(NFA)到确定型有限自动机(DFA)的子集构造过程中导致状态爆炸性增长的原因,并提出了一种高效的正则表达式匹配方法.这种方法通过将部分DFA状态转变成受限的NFA状态来消除状态数量的剧烈增长,并会形成一种DFA状态与受限的NFA状态交替出现的有限自动机,称为DNFA.DNFA将DFA与NFA结合在一起,实现匹配速度与内存空间占用的平衡,其多层结构也更加适合复杂正则表达式规则.实验结果表明,上述方法可以在大大减少内存需求的情况下,实现正则表达式的高效匹配.
【总页数】7页(P551-557)
【作者】张树壮;吴志刚;罗浩
【作者单位】北京邮电大学网络技术研究院北京100876;北京邮电大学网络技术研究院北京100876;北京邮电大学网络技术研究院北京100876
【正文语种】中文
【相关文献】
1.一种快速高效的本体匹配方法 [J], 罗俊丽;黄广君;孙建国
2.PMTree:一种高效的事件流模式匹配方法 [J], 程苏珺;王永剑;孟由;程振东;栾钟治;钱德沛
3.一种基于正则表达式匹配的协议分析异常检测方法 [J], 陆虎;宋余庆;薛万宇;徐景
4.一种针对DFA状态爆炸的正则表达式匹配方法 [J], 王翔;卢毓海;马伟;刘燕兵
5.一种空间高效的多核并行近似子串匹配方法 [J], 王佳英;王斌;杨晓春
因版权原因,仅展示原文概要,查看原文内容请购买。
电话拨号数图的匹配算法研究和高效实现
Ke y wo r d s : Vo l P ; d i g i t ma p ; o v e r ma t c h e d
网络技术与多媒 体技术的发展 , 促进了通信技术的综合 化 、 数字化 、 智能化 的发展 , 使得在单一 网络平台上实现语音 、 数据 、 图像 等多种业务成为可能 , 其 中I P 语音技术 ( V o l P ) 已经被广泛应用 于通信领域 , I P 话机 、 V o l P 网关 、 P B X设备等 , 也逐步地得到商业化 。
C o m p u t e r K n o w l e d g e a n d T e c h n o l o g y电 脑知 识 与技术
Vo 1 . 9 , No . 4, Fe b r u a r y 2 01 3 .
电话拨 号 数 图 的 匹配 算法 研 究 和 高效 实 现
则, 对数 图匹配算法 的两个 过程进行 了理论分 析 , 并给 出了实现的思路 。算法 的实现过程包括 对数 图规 则的预处理过程和号码收
集 的匹配过程。
1数 图规 则
数 图的设置需要遵循 规则 , 如表 1 所示 。
收稿 E l 期: 2 0 1 3 一 O 1 — 0 3
基 金 项 目: 院级 一 般 课 题 ( 编号 : J MYZ1 1 0 1 )
p r oc e s s i n g a nd d i g i t ma t c hi ng. Fu r t he r m or e , t hi s pa pe r d e s c r i be d i n d e t a i l s t he low f c h a r t o f i mpl e me nt a t i o n o f t h e a l g or it h m.
基于大数据算法的电话号码与客户编号对应关系的识别研究与实现
收稿日期:2018-09-18。刘鲲鹏,高工,主研领域:电力系统软件设计,营销客户服务和电力大数据技术研究等。盛妍,高工。 何薇,工程师。宫立华,高级经济师。
302
LiuKunpeng1 ShengYan1 HeWei2 GongLihua1
1(StateGridCorporationofChinaCustomerServiceCenter,Tianjin300309,China) 2(BeijingChinaPowerInformationTechnologyCo.,Ltd.,Beijing100085,China)
Abstract Onthebasisofhotline95598,weestablishedaunifiedidentificationmodelbyusingthemethodoflarge dataanalysisandmining.Itcouldeffectivelyidentifythecorrespondingrelationshipbetweencustomercallnumberand householdnumber.Bigdatatextminingtechnologycouldeffectivelyanalyzetheusersaddressinformation,nameand othercontent,andcalculatetheaddressandnamesimilarityscore.Andthesesimilarityscoreswereusedasakeyfactor indextoverifythecorrespondingrelationshipandidentifythematchingusernumber.Aimingatthecorresponding relationshipthatcanbeobtained,weconstructedtheweightpartitionmodeltocalculatethematchingscore.The reliabilityofthecorrespondingrelationshipwascheckedaccordingtothevalueofthescore.WhenthecallerIDcouldnot befound,theKNN modelwasconstructedbasedonthetextsimilarityscore,andthematchingdegreescoreofthe correspondingrelationshipwascalculated.Accordingtothescore,thematchingnumbercouldbeidentified.
Hash表技术用于电话号码识别
Hash表技术用于电话号码识别
黄宏
【期刊名称】《北方交通大学学报》
【年(卷),期】1991(015)004
【摘要】TC559计算机控制电话自动交换机具有多种服务功能.例如,无线有线,无线热线,无线市话,无线无线等等.考虑到不同的服务目的,对不同的移动台,交换机的服务项目是不一样的.这时需要识别移动台的号码以作不同的处理.识别移动台的号码在计算机软件中可归结为查表技术的应用.
【总页数】3页(P97-99)
【作者】黄宏
【作者单位】无
【正文语种】中文
【中图分类】TN916.42
【相关文献】
1.用Hash表技术实现快速流分类 [J], 李英毅;贾雨
2.基于大数据算法的电话号码与客户编号对应关系的识别研究与实现 [J], 刘鲲鹏;盛妍;何薇;宫立华
3.基于卷积神经网络的电话号码手写体识别系统开发 [J], 杨柳;罗玉梅
4.英文电话号码本识别系统 [J], 郑新春;柴佩琪
5.射频识别技术结合人脸识别技术用于试剂"细化""动态"管理 [J], 翁玉华;任艳平;潘蕊;许振玲;颜长明;欧阳小清;董志强;张春艳;阮婵姿;吕银云
因版权原因,仅展示原文概要,查看原文内容请购买。
嵌入式数字语音拨号系统的研究与实现
46
语音技术 Voice Technology
块之间的通信都是通过串口实现的, 所以需要对 TTL 电平串口通 过 MAX232 电 平 转 移 芯片 转 换 为 RS232 电平。 开发板所 带 的 音 频 编 解 码芯片 是 WM9714。它 数 字 信 号与模拟 信 号分 离, 有助于 支持 AC97 规范, 2 改善信 噪 比。 其 支持 I S / PCM / AC97 等音 频 接 口。 开发板上采用 AC97 接口。 系统中为了完成拨号功能使用了 GPRS 扩展板。 [ 3 ] 采用了 SIMCOM 公 司 的 SIM300 GPRS 模 块 , 并配 以相关电 路 而 构成。 SIM300 模 块 具 有 完整 的 MODEM 信号, 在 GPRS 网 络 通 信时可以 作 为一个 MODEM 而 存 在。 本 设 计 使 用 的 GPRS 扩 展 配 置 了 16C550 芯片作为 ARM 处 理 器 外 扩 的数 据 终 端 设 备 ( DTE) 。16C550 则通过局部总线和 ARM 连接, 这样 同时可以更加精确地得到 可以得到完整的 MODEM, UART 波特率。 试验中, 利用传声器采集语音信号, 利用 WM9714 的 A / D 模块对原始语音信号进行采样和量化, 利用 模 型 训练 和 识别, 最 语音 识别 算 法 实 现特 征 提 取、 终得到识别 结果, 调 用 拨 号模 块, 拨 出相 应 的 电 话 号码。 3. 1. 2 HMM 模型
语音识别中选用的模型是 HMM。HMM 是一个 一重用于描述非平稳信号的短时平稳 双重随机过程, 段的统计特性( 信号的瞬态特征, 可直接观察) ; 另一 重随机过程描述了每个短时平稳段如何转变到下一 个短时平稳段, 即短时统计特征的动态特性( 隐含在 观察序列 中) 。人 的 言 语 过 程 也 是这 样 一个 双 重 随 机过程, 因为语音信号本身是一个可观察的序列, 而 它又是由大 脑 里 的 ( 不 可 观 测的) 、 根 据 言 语 需 要和 句) 的 参 数 语法知识( 状态选择) 所发出的 音 素 ( 词、 流
一种用于H.263的快速块匹配算法
一种用于H.263的快速块匹配算法
吴晓蓉;张文俊;杨斌
【期刊名称】《上海大学学报(自然科学版)》
【年(卷),期】2000(006)001
【摘要】针对可视电话等低码率运动图像的特点,在H.263等低码率压缩图像编码的运动估计中,对传统的三步搜索法进行了修正,提出并实现了一种快速的块搜索算法.实验结果表明:在保持信噪比、压缩比基本不变的条件下,有效地提高了编解码速度,改善了实时性能.
【总页数】4页(P75-78)
【作者】吴晓蓉;张文俊;杨斌
【作者单位】上海大学,通信与信息工程学院,上海,200072;上海大学,通信与信息工程学院,上海,200072;上海大学,通信与信息工程学院,上海,200072
【正文语种】中文
【中图分类】TN919
【相关文献】
1.适用于H.263(+)的一种运动估计快速搜索算法 [J], 唐泽鹏;秦雷;朱秀昌;刘峰;
2.适用于H.263(+)的一种运动估计快速搜索算法 [J], 唐泽鹏;秦雷;朱秀昌;刘峰
3.一种适用于H.263建议的块匹配运动估计算法 [J], 张云;吴乐南
4.采用FBMA+EDAZ算法来实现H.263的一种快速算法 [J], 沙济彰;吴敏;曹宁
5.一种新的快速H.263算法的研究 [J], 陈晓;朱耀庭;朱光喜
因版权原因,仅展示原文概要,查看原文内容请购买。
号码生成算法的研究与应用
号码生成算法的研究与应用第一章前言随着信息技术的飞速发展,随着人口的日益增长,随着各种设备、应用的普及,数字数据已经成为人们生活、工作中不可缺少的一部分。
同时,随着数字数据的广泛应用,数字编号也变得越来越重要。
例如身份证号、订单号、电话号码等,这些数字编号带有极大的功能,如唯一标识、数据查找等。
如何生成高效、优质的数字编号也成为了信息技术人员研究的重要方向之一。
本文将对数字编号生成算法的研究与应用进行探讨。
第二章号码生成算法的常用方法号码生成算法主要有两类方法:随机数和哈希散列。
2.1 随机数随机数生成算法是最基础、最简单的编号生成方法。
该方法使用随机数函数生成数字编号。
随机数生成算法简单、易于实现,但是由于随机数值的随机性,生成的编号很难保证完全唯一,大量的依赖随机算法的编号往往会导致数据唯一性问题。
此外,随机数算法还容易重复生成相同的编号,增加数据出错的概率。
2.2 哈希散列哈希散列是一种将输入的任意长度数字序列映射为固定长度数字的算法。
同样长度的数字序列所对应的哈希值是唯一的,因此哈希散列算法可以生成唯一的数字编号。
常用的哈希函数有MD5、SHA-1等,这些哈希函数具有高效性和唯一性,但是为了防止被攻击,需要不断更新算法。
第三章号码生成算法的应用号码生成算法应用广泛,如身份证号、电话号码、订单号、商品编码等。
3.1 身份证号身份证号是国家统计局为每个公民发放的唯一标识号码。
相关部门使用梅花码算法将公民的基本信息转化为数字序列,并进行哈希散列,最终得到唯一的身份证号。
梅花码算法具有天然的高效性和唯一性,非常适合用于身份证号码的生成。
3.2 电话号码电话号码被广泛应用于各种设备和应用中,如手机、固定电话、短信等。
电话号码的生成主要依靠随机数算法和哈希散列算法,部分运营商会使用特殊算法保护自己的业务。
3.3 订单号订单号是电子商务中不可缺少的编号,用于唯一标识每一份订单。
随机数算法和哈希散列算法都可以用于订单号的生成。
一种拨号规则匹配方法和装置[发明专利]
专利名称:一种拨号规则匹配方法和装置专利类型:发明专利
发明人:邓乐,刘友盛,彭建,韦干翼,钦升申请号:CN201310057138.0
申请日:20130222
公开号:CN103150471A
公开日:
20130612
专利内容由知识产权出版社提供
摘要:本发明实施例公开了一种拨号规则匹配方法和装置,应用于通信技术领域。
一种拨号匹配方法,包括:接收拨号规则;将所述拨号规则解析为规则结构数组;根据规则结构数组生成树结构以及节点结构;接收用户按键,匹配按键指示的节点对应的节点结构,执行对应的节点属性,若未完成匹配,将剩余规则解析为规则结构数组,根据则结构数组生成树结构以及节点结构,继续接受用户按键。
本发明实施例匹配效率高。
申请人:深圳市共进电子股份有限公司
地址:518000 广东省深圳市南山区南海大道1019号南山医疗器械产业园B116、B118;A211-A213、B201-B213;A311-313;B411-413
国籍:CN
代理机构:深圳市深佳知识产权代理事务所(普通合伙)
代理人:唐华明
更多信息请下载全文后查看。
基于Android系统的联系人最大匹配检索算法设计与实现
基于Android系统的联系人最大匹配检索算法设计与实现王超【期刊名称】《自动化与信息工程》【年(卷),期】2013(000)006【摘要】基于 Android 平台联系人检索方法的分析,介绍一种新的联系人检索算法,可以处理拼音分词,进行拼音检索、英文名检索、联系人电话号码检索、混合模糊匹配以及多音字检索。
算法首先对检索内容进行拼音分词,其次按照字母索引表快速定位首字母,最后按照最大匹配方式检索其余内容。
此算法采用StringBuilder节省了内存空间,同时每次检索都会重复使用上一次检索结果,减少重复检索。
本算法不仅在效率上能满足Android要求,而且在内存开销上也能满足Android平台限制。
%This paper introduces a new contact searching algorithm, which can process Pinyin word segmentation, Pinyin retrieval, English name retrieval, contact phone number retrieval, hybrid fuzzy matching and polyphone retrieval. The algorithm will first segment Pinyin for retrieval content, position the first letters rapidly according to alphabetical index table, and then retrieve the rest contents by the maximum matching method. This algorithm used StringBuilder to save memory space, to reduce the repetition, each time retrieves it will reuse the last retrieval results. This algorithm not only can satisfy the requirement of android in terms of efficiency, but also meet the limitation of android platform in terms of memory overhead.【总页数】5页(P10-14)【作者】王超【作者单位】广州华商职业学院; 中山大学【正文语种】中文【相关文献】1.基于用户检索历史的个性化内容推荐算法的设计与实现 [J], 周成林;黄长江;田景凡;李超2.基于BDB的XML检索引擎算法设计与实现 [J], 杜鹏3.网络信息检索中堆栈-最大匹配自动分词算法研究 [J], 张海营4.一种基于最大匹配和向量空间模型的用户检索词规范化方法 [J], 何伟;常春5.基于用户检索历史的个性化内容推荐算法的设计与实现 [J], 周成林;黄长江;田景凡;李超因版权原因,仅展示原文概要,查看原文内容请购买。
一种语音网关数图设计和匹配方法[发明专利]
专利名称:一种语音网关数图设计和匹配方法专利类型:发明专利
发明人:朱木成,彭求明
申请号:CN201110171731.9
申请日:20110624
公开号:CN102355540A
公开日:
20120215
专利内容由知识产权出版社提供
摘要:本发明涉及一种语音网关数图设计和匹配方法,将特服号码数图、本地固定号码数图、移动号码数图、国内固话长途8位号码数图、国内固话长途7位号码数图、国际长途号码数图和其它号码数图合并组合成一个全面、高效、精简和通用的数图。
相应地,本发明还将通用数图分解成各个子数图,并将各子数图字符和拨号字符串字符通过左移、位或操作转换成二进制比特,按位与操作进行非回退匹配比较,并结合立即上报开关来确定最终匹配结果。
本发明所述的设计和匹配方法,采用从整体到部分再回到整体的思想,得到一个全面、高效、精简和通用的数图,对电信运营商和设备制造商的运营维护具有积极的意义;匹配算法思路清晰,算法简单、效率高。
申请人:烽火通信科技股份有限公司
地址:430074 湖北省武汉市东湖开发区关东科技园东信路5号
国籍:CN
代理机构:北京捷诚信通专利事务所(普通合伙)
更多信息请下载全文后查看。
详解android的号码匹配
详解android的号码匹配什么是号码匹配,个人理解,即判断两组号码是否属于同一个号码。
在实际使用过程中,接触到的号码会涉及到区号,国家编码以及IP号码等,这个时候就用到了号码匹配。
两个内容不一样的号码,如+86***和17951***,是不是同一个号码。
就需要软件判断是否同一个号码。
手机里面涉及号码匹配的场景很多,打电话发短信都要用到。
和前面的+86***和17951***两个号码所示,号码匹配是从后往前进行比较的,可以猜测一个标准号码的附加号码都是加在前面的。
根据匹配数据来源可以将号码匹配分为一下两种:1.同一个应用内的号码匹配:在一个应用内判断两个号码是否是同一个号码,根据结果将记录合并或者分开。
典型场景如:通话记录是否合并,新发送或者新接收的短信是新建会话还是存入已知会话。
2.同联系人应用进行号码匹配:一个应用去联系人数据库里面查询,获取号码的其他数据。
一般每个涉及号码的应用都会有一个自己的数据库的表,用来存储号码上的信息。
应用第一次收到号码都会查询联系人的数据库,获得这个号码的详细信息:如姓名等。
典型的场景有:发短信和打电话时候输入了号码自动匹配上了号码对应的联系人姓名,一段文字里面的号码是否在当前手机中有。
在android原生系统上,大致可以根据前面介绍,将其号码匹配的实现方案分为两种:1.在数据库增加PHONE_NUMBERS_EQUAL方法,进行SQL级别的匹配查询,这个方法有三个参数,两个是号码,还有一个是否是严格匹配。
查看2.3.5的android源码,这个严格匹配和泰国有关系……所以一般这个参数都是false,即不执行严格号码匹配。
2.在构建数据库的查询语句上,进行号码匹配。
一般这种情况都会进行号码的从后往前的截断,直接判断截断的数据是否相等。
号码匹配是后往前匹配的,如果后面连续N个数字相等的话,就认为是同一个号码。
这里的N,即是N位号码匹配。
google自带的两个号码匹配都是7位号码匹配。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电话拨号数图的匹配算法研究和高效实现摘要:该文首先对拨号数图匹配的规则语法进行了分类讲解,通过对规则语法的分析,给出了数图匹配的算法分析,并以伪代码的形式进行了算法实现。
整个算法过程包含规则预处理和拨号匹配两个过程,该文对算法实现的流程图进行了详细的描述。
关键词:voip;数图(digitmap);超越匹配(over matched)中图分类号:tp312 文献标识码:a 文章编号:1009-3044(2013)04-0807-04research & efficient implementation of digitmap matching algorithmwang xiao-lan(electromechanical department, suzhou institute of trade&commerce, suzhou 215009, china)abstract: the digitmap matching rules was classified and discussed in this paper. by analyzing the rules, the digitmap matching algorithm is illustrated and implemented in the form of pseudo-code. the whole process of algorithm holds two phases: rules preprocessing and digit matching. further more, this paper described in details the flow chart of implementation of the algorithm.key words: voip; digitmap; over matched网络技术与多媒体技术的发展,促进了通信技术的综合化、数字化、智能化的发展,使得在单一网络平台上实现语音、数据、图像等多种业务成为可能,其中ip语音技术(voip)已经被广泛应用于通信领域,ip话机、voip网关、pbx设备等,也逐步地得到商业化[1]。
在传统的公共交换电话网pstn中,电话拨号是通过电流传到局端设备进行匹配的,voip网关则同时充当了ip网络的终端设备和普通话机的局端设备。
如图1所示,voip网关1接收电话机1的拨号,收集号码,并于配置的数图(digitmap)规则进行匹配,匹配成功后,就会通过voip语音信令的方式上报呼叫请求,服务器通过对号码的分析,将呼叫请求转到被叫网关2,电话机2振铃,用户2摘机,ip电话接通。
所以voip网关需要实现号码收集过程中的数图匹配算法,该文首先对数图规则进行了描述,基于该数图规则,对数图匹配算法的两个过程进行了理论分析,并给出了实现的思路。
算法的实现过程包括对数图规则的预处理过程和号码收集的匹配过程。
1 数图规则数图的设置需要遵循规则,如表1所示[2]。
表1 数图规则语法描述[规则\&说明\&举例\&举例说明\&数字(digit)\&一个从0到9的数字\&95538\&只有收集到95538才能成功匹配\&双音频(dtmf)\&一个数字、计时器或符号a,b,c,d,#或*\&*95538a#\&只有收集到*95538a#才能成功匹配\&通配符(wildcard)\&符号x可以匹配任何数字(0到9)\&12xxxx\&可以匹配12开头的6位号码,如123987或124568等\&序列(range)\&一个或几个dtmf符号包含在方括号[ ]中,取其中一个\&12[389]\&可以匹配123,128或129\&区域(subrange)\&两个数字被连字符“-”隔开,表示可以取自该范围内的一个数字\&12[3-5]\&“-”需要跟”[ ]”结合使用,可以匹配123,124或125\&点(dot)\&“ . ”表示前面的数字等可以出现任意次数,包括“0”次\&123.\&可以匹配12,123,1234,12335等\&计时器(timer)\&符号t 匹配一个计时器的时长\&123t\&匹配到123后,会启动t定时器\&分隔符(seperator)\&“|”,用于分隔多个数图规则\&123|95538|021xxxxx#\&数图组包含123,95538和021xxxxx#三个数图规则\&]2 数图规则的预处理在收集号码,进行数图匹配之前,首先需要对设置的数图组进行预处理,从而能够在匹配时高效执行。
以下通过伪代码结合流程图的方式描述处理的过程。
定义需要的结构参数:struct dmap_rule{struct dmap_subrule{uint32 token;bool required;bool timer;}subrules[max_subrules];int subrules_num;bool valid;bool timer;}rules[max_rules];dmap_rule指单个规则,一个数图组可以配置多个规则,每个规则包含多个子规则dmap_subrule以及子规则数量、是否有效和是否开启定时器三个属性。
子规则dmap_subrule是对单个规则串进行分析后建立的,是关键所在,每个子规则包含以32位bit标示的标记,以及是否必须(subrules.required)和是否有定时器(subrules.timer)两个属性。
图2描述的就是对一个数图规则组进行预处理的流程,预处理的目的就是将数图规则组转换为rules结构,用于数图匹配。
以下对该预处理流程进行分步解析。
1)每个数图规则由‘|’分隔,对每个数图规则进行遍历;2)对当前数图规则中字符串(子规则)进行遍历;3)当前子规则如果为“+#*0123456789abcd”中某个字符,则设置rules[i].subrules[j].token对应bit为1,设置rules[i].subrules[j].required为1,设置rules[i].subrules[j].timer为0,跳到(2)继续匹配下一子规则;否则进入步骤(4);4)当前子规则如果为‘x’,则设置rules[i].subrules[j].token 为0x3ff,即0-9bit为1,说明可以匹配0-9内的数字,设置rules[i].subrules[j].required为1,设置rules[i].subrules[j].timer为0,跳到(2)继续匹配下一子规则;否则进入步骤(5);5)当前子规则如果为‘[’,则查找是否有‘]’对应,没有则说规则错误,直接退出;否则进入步骤(6);如果不是‘[’,则跳到步骤(10);6)遍历“[]”内每个字符(注意,“[]”内属于一个子规则),遍历结束则跳到(2)继续匹配;7)“[]”内当前字符如果为‘t’,则设置rules[i].subrules[j-1].timer为1(注意‘t’的属性会加在前一规则上),rules[i].timer为1,跳到(6);8)“[]”内当前字符如果为‘-’,则设置rules[i].subrules[j].token在‘-’区间内的bit为1,比如[3-5],则设置bit3、4、5为1,设置rules[i].subrules[j].required为1,设置rules[i].subrules[j].timer为0,跳到(6)继续遍历;否则进入步骤(9);9)其他情况则设置相应bit为1,设置rules[i].subrules[j].required为1,设置rules[i].subrules[j].timer为0,跳到(6)继续遍历;10)当前子规则如果为‘t’,则设置rules[i].subrules[j-1].timer为1(注意‘t’的属性会加在前一规则上),rules[i].timer为1,该规则处理结束,跳到(1)处理下一规则;否则跳到(11);11)当前子规则如果为‘.’,则是上一子规则的0次或多次的重复,则将rules[i].subrules[j].required设置为0,跳到(2);3 数图匹配在收集号码时,预处理生成的rules就被用于对所拨的号码串进行匹配,匹配的总体过程是对每个有效的数图规则进行匹配,rules[i].valid初始为1,匹配不成功则置rules[i].valid为0,说明该规则失效,下次拨号就不参加匹配。
图3描述的是拨号数图匹配的流程图,具体步骤如图3。
1)每收到一个拨号数字,则串在digits尾部;2)遍历rules中的每个规则,检查rules[i].valid如果为1(该规则有效),则跳到(3),否则跳回步骤(1),匹配下一规则;3)同时遍历digits和rules[i].subrules,遍历结束,如果当前digits长度已超出当前规则的子规则数,则为超越匹配,这种情况下该规则将置为无效;否则该规则有效,并跳回(1);4)检查rules[i].subrules[j].token相应bit位如果为1,则说明匹配上,跳到(5);否则该规则无效,并跳回(1);5)检查rules[i].subrules[j].required如果为0,则说明该规则后面跟的是‘.’,可以匹配0个或多个当前子规则,所以跳到(3),继续用下一个digits[k]匹配当前规则;否则跳到(6);6)检查rules[i].subrules[j].timer如果为1,则设置该规则有效,并开启定时器,跳回(1);否则跳回(3)继续匹配子规则,直到匹配结束。
4 结束语本文基于数图规则的语法,对数图匹配算法进行了研究,并采用伪代码结合流程图的形式给出了实现原理,整个过程包含规则预处理和拨号时匹配两个过程。
该匹配算法可用于带voip的网关、ippbx 和iptv机顶盒等设备上,具有很好的实用价值。
参考文献:[1]卜巍.voip的原理、标准和技术浅析[j].计算机与网络,2004(12).[2] 百度文库[eb/ol].http:///view/7981cc492e3f5727a5e962b8.html.。