一种二次拨号接收的方法

文档序号:7795706阅读:1203来源:国知局
一种二次拨号接收的方法
【专利摘要】本发明公开一种二次拨号接收的方法,该方法包含以下步骤:定义RFC2833事件类型;在组建媒体传输报文时,添加RFC2833的包头结构;根据媒体传输报文携带的RFC2833数据结构判断对方为二次拨号;根据负载类型的值,判断本次拨号为RFC2833二次拨号事件;根据RFC2833的数据结构来判断一次拨号结束,以及下一次拨号的开始;最终二次拨号结束。本发明组建媒体传输报文时加上RFC2833的包头结构,根据包头结构获取每一次远端所拨号的号码,并进行保存统计来对比远端传输的号码是否相符合,在这里设定一个状态机制,来判断每次传输的号码的结束,以防收到重复的号码。
【专利说明】一种二次拨号接收的方法
【技术领域】
[0001]本发明涉及一种远程拨号接收方法,具体涉及一种用RFC2833传输方式实现二次拨号接收的方法。
【背景技术】
[0002]双音多频(Dual-toneMult1-frequency, DTMF), 一个 DTMF 信号由两个频率的音频信号叠加构成。这两个音频信号的频率来自两组预分配的频率组:行频组或列频组。每一对这样的音频信号唯一表示一个数字或符号(通常就是按键号码)。
[0003]例如,假如拨打了 10086,它会有相应的语音提示信息:拨O键,接入人工帮助....拨I键,然后进行相应的操作。那么10086是如何了解你到底拨了哪个键,这就需要一种方式将我们具体拨哪个号码通知给它,这就是DTMF的用途,DTMF之前使用特定的脉冲来代表相应的号码。
[0004]目前传送DTMF信号普遍有三种方式:
A.通过通信协议传输(会话发起协议(SIP, Session Initiation Protocol)信令):
用SIP信令的INFO方法携带DTMF信号。
[0005]该方法是用SIP信令的INFO方法来明文定义来代表DTMF信号。主要缺陷是因为SIP控制信令和媒体传输(RTP)是分开传输,很容易造成DTMF信号和媒体包不同步。
[0006]举个例子,在Voice Mail应用中,用户根据提示音输入一个DTMF信号,随后开始留言。Server是在接受到该DTMF信号后开始保存用户的留言。然而由于DTMF信号是通过SIP信令来传输的,而媒体流是通过RTP来传输的,有可能用户留言的RTP包先到,而该DTMF信号的INFO消息延迟,导致Server不保存用户的语音留言直至接受到INFO消息。
[0007]B.通过RTP的数据内容传输(Inband):1n Band是指直接将DTMF的音频数字信号不经任何处理直接打成RTP包在IP网中传输。其中可能和用户的语音媒体流混合在一起传输。程序要获知哪个包有DTMF信号,是什么DTMF信号,必须实时检查每个RTP包里面的媒体流数据,分析它的频域。主要缺陷是由于网络丢包的影响,有时会造成DTMF信号丢失,而且DTMF音混合在语音包中,容易产生偏差,造成信号失真。
[0008]C.通过rfc2833的规则和格式包传输:
RFC2833是DTMF信号按照一个的规则和格式组成一个数据包,有专门的RTP包进行标识,在RTP包的头域中就可得知该包是DTMF包,并且知道是什么DTMF信号。RFC2833专门对此有定义。该方法是将DTMF信号和媒体流一样,用RTP包来传输,因而没有DTMF信号和媒体流不同步的问题,接收端接收后进行解析,再还原成相应的DTMF信号,对丢包的容错性强以及识别差错率低,相对来说比较成熟。
[0009]目前,现有技术中很少有通过RFC2833来获取dtmf信号传输的,一般都是采用带内方式,以及SIP的INFO方式获取。
【发明内容】

[0010]本发明提供一种二次拨号接收的方法,准确快速的获取远端拨号的号码,并存储起来,便于统计和确认对方的拨号号码。
[0011]为实现上述目的,本发明提供一种二次拨号接收的方法,其特点是,该方法包含以下步骤:
定义RFC2833事件类型;
在组建媒体传输报文时,添加RFC2833的包头结构;
根据媒体传输报文携带的RFC2833数据结构判断对方为二次拨号;
根据负载类型的值,判断本次拨号为RFC2833 二次拨号事件;
根据RFC2833的数据结构来判断一次拨号结束,以及下一次拨号的开始;
最终二次拨号结束。
[0012]上述定义RFC2833事件类型包含:定义RFC2833报文头,以及对应判断确认本次操作为RFC2833事件,并通过RFC2833传输方式继续二次拨号接收。
[0013]若本次操作不是RFC2833事件,则采用现有技术通用的方式进行二次拨号。
[0014]若根据媒体传输报文携带的RFC2833数据结构判断对方不是二次拨号,则按照正常的媒体传输报文传输,并去除RFC2833报文头。
[0015]若根据负载类型的值判断拨号不是RFC2833 二次拨号事件,则按照正常的RFC2833报文发出。
[0016]上述最终二次拨号结束后,将对应的所有的拨号结果存储,发送到远端的模拟电话业务口。
[0017]本发明用RFC2833传输方式实现二次拨号接收的方法和现有技术相比,其优点在于,本发明在组建媒体传输报文的时候,加上一个RFC2833的包头结构,并根据这个包头结构,来获取每一次远端所拨号的号码,并进行保存统计来对比远端传输的号码是否相符合,在这里设定一个状态机制,来判断每次传输的号码的结束,以防收到重复的号码。
【专利附图】

【附图说明】
[0018]图1为本发明一种二次拨号接收的方法的流程图。
【具体实施方式】
[0019]以下结合附图,进一步说明本发明的具体实施例。
[0020]如图1所示,本发明公开一种用RFC2833传输方式实现二次拨号接收的方法,该方法包含以下步骤:
步骤1、定义RFC2833事件类型。该定义操作包含:定义RFC2833报文头,以及对应判断本次操作是否是RFC2833事件,若是RFC2833事件则采用本发明的所公开的二次拨号接收方法,若否,则采用现有技术通用的方式进行二次拨号。
[0021]步骤2、在组建媒体传输(RTP)报文时,添加RFC2833的包头结构。
[0022]步骤3、根据媒体传输(RTP)报文携带的RFC2833数据结构,来判断对方是否是二次拨号,若是,则跳转到步骤4,若否,则按照正常的RTP报文传输,去除RFC2833报文头。
[0023]步骤4、如果是二次拨号,payload代表负载类型,通过payload的值来判断是否为RFC2833 二次拨号事件。判断RFC2833数据结构的payload值是否对应为101,若是,则跳转到步骤5 ;若否,则按照正常的RFC2833报文发出。通常中兴华为的mgc服务器payload都为101。
[0024]步骤5、根据RFC2833的数据结构来判断一次拨号结束,以及下一次拨号的开始。
[0025]具体实现可如下示例:判断endOfEvent是否等于I,如果不是I,为O的话,需要同时判断 RecvState 为 WAIT4NextEvStart ;如果是 I,将 RecvState 置为 WAIT4CurEvEnd,然后返回。
[0026]只有当endOfEvent等于I与state等于WAIT4CurEvEnd的时候才代表一个digitev的结束。
[0027]步骤6、最终二次拨号结束,将对应的所有的拨号结果存储,发送到远端的模拟电话业务(pots) P ο
[0028]尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
【权利要求】
1.一种二次拨号接收的方法,其特征在于,该方法包含以下步骤: 定义RFC2833事件类型; 在组建媒体传输报文时,添加RFC2833的包头结构; 根据媒体传输报文携带的RFC2833数据结构判断对方为二次拨号; 根据负载类型的值,判断本次拨号为RFC2833 二次拨号事件; 根据RFC2833的数据结构来判断一次拨号结束,以及下一次拨号的开始; 最终二次拨号结束。
2.如权利要求1所述的二次拨号接收的方法,其特征在于,所述定义RFC2833事件类型包含:定义RFC2833报文头,以及对应判断确认本次操作为RFC2833事件,并通过RFC2833传输方式继续二次拨号接收。
3.如权利要求2所述的二次拨号接收的方法,其特征在于,若本次操作不是RFC2833事件,则采用现有技术通用的方式进行二次拨号。
4.如权利要求1所述的二次拨号接收的方法,其特征在于,若根据媒体传输报文携带的RFC2833数据结构判断对方不是二次拨号,则按照正常的媒体传输报文传输,并去除RFC2833报文头。
5.如权利要求1所述的二次拨号接收的方法,其特征在于,若根据负载类型的值判断拨号不是RFC2833 二次拨号事件,则按照正常的RFC2833报文发出。
6.如权利要求1所述的二次拨号接收的方法,其特征在于,所述最终二次拨号结束后,将对应的所有的拨号结果存储,发送到远端的模拟电话业务口。
【文档编号】H04L29/06GK103747007SQ201410026588
【公开日】2014年4月23日 申请日期:2014年1月21日 优先权日:2014年1月21日
【发明者】赵勇 申请人:上海斐讯数据通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1