CN101702749B - 双音多频事件帧处理方法、系统和媒体网关 - Google Patents
双音多频事件帧处理方法、系统和媒体网关 Download PDFInfo
- Publication number
- CN101702749B CN101702749B CN 200910237076 CN200910237076A CN101702749B CN 101702749 B CN101702749 B CN 101702749B CN 200910237076 CN200910237076 CN 200910237076 CN 200910237076 A CN200910237076 A CN 200910237076A CN 101702749 B CN101702749 B CN 101702749B
- Authority
- CN
- China
- Prior art keywords
- frame
- dtmf
- dtmf event
- event
- media gateway
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种DTMF事件帧处理方法、系统和媒体网关,所述DTMF事件帧处理方法包括以下步骤:媒体网关按照预设的DTMF事件帧的发送时间间隔,逐帧发送DTMF事件帧中的DTMF非结束帧和DTMF结束帧;所述媒体网关在发送DTMF事件帧期间,检测是否有语音帧产生,在检测到有语音帧产生时,丢弃所述语音帧。本发明能够使得接收DTMF事件帧的媒体网关的RTP缓存队列维持在较小的队列深度,从而减少了丢包,提高了业务成功率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种DTMF事件帧处理方法、系统和媒体网关。
背景技术
DTMF(Dual Tone Multi Frequency,双音多频)技术目前广泛应用于按键式电话机上,因其能够提供更高的拨号速率,迅速取代了传统转盘式电话机使用的拨号脉冲技术。近年来,DTMF技术也逐渐应用在交互式控制中,诸如语言菜单、语言邮件、电话银行和ATM终端等。
如图1所示为现有技术中的实现DTMF信号传输的组网结构图,该网络主要包括:固网101、媒体网关(MGW,Media Gateway)102、103、媒体网关控制器104、105以及收号设备106。其中,DTMF事件由固网101侧的电话终端或PBX(Private Branch Exchange,专用交换分机)按键产生,并发送给媒体网关102,媒体网关102检测到DTMF事件后,通过IP网络发送给接收方媒体网关104,由媒体网关104最终发送给特定收号设备,例如IVR(Interactive Voice Response,互动式语音应答)设备等,以用作特殊业务使用,例如手机充值或PIN(Personal Identity Number,个人识别码)码拦截等。
媒体网关之间采用IP网络传输语音信号和DTMF信号时,为了节省带宽,发送方需要对语音信号进行压缩编码传输,而DTMF信号经过压缩编码后,会产生损伤,接收方可能无法正确还原出DTMF信号,导致一些特殊业务失败。因此,现有的通信网络中,多采用RFC4733协议对DTMF信号进行带内传输,RFC4733协议将DTMF信号组成DTMF事件帧进行发送,如图2所示为现有技术中的DTMF事件帧净核结构示意图,DTMF事件帧净核包括:事件号(0~15)、事件结束帧标识、事件的能量值和事件持续时长(duration)。
DTMF事件帧和普通语音帧都在媒体流中进行传输,这就存在一个普通语音帧与DTMF事件帧的发送状态的切换过程,现有协议中并没有对DTMF事件帧和语音帧切换时的发送规则进行规定,各个设备厂商可能采用不同的处理方法。由于DTMF事件的特殊性,只要传输过程中丢掉一个DTMF事件帧,都会导致业务失败,因此,为了降低传输的失败率,接收方需要对各种发送规则做最大的兼容,这加大了接收方的处理复杂度。
下面举例对现有技术中的两种DTMF事件帧的处理方法进行详细说明。
以下的例子中,假设语音帧按照AMR(Adaptive Multi-Rate,自适应多速率编码)算法进行压缩编码,语音帧的发包间隔为20ms(毫秒)。
假设DTMF事件帧的事件号为9,时长为60ms,发包间隔为20ms。需要说明的是,DTMF事件帧中包括DTMF非结束帧和DTMF结束帧两种类型的帧,其中,DTMF非结束帧用于传输标识DTMF事件的数据,DTMF结束帧用于传输标识当前DTMF事件结束的数据,为了防止DTMF结束帧在传输过程中丢失,每个DTMF事件帧中需要包括3个DTMF结束帧。协议中规定,在发送DTMF非结束帧时按照设定的发送时间间隔逐帧发送,而,对于DTMF结束帧,协议中则没有规定具体的发送方式。
假设接收方媒体网关中用于接收报文的RTP(Real-time Transport Protocol,实时传输协议)缓存队列的最大队列深度为4,所述RTP缓存队列设定为连续有2个报文入队列后,则按照20ms的时间间隔定时对报文进行出队处理。
现有技术中的一种DTMF事件帧的处理方法是:将3帧DTMF结束帧在同一发送时间间隔内全部发送出去。
如图3a所示为现有技术中的DTMF事件帧的一发送流程示意图,从图3a中可以看出,3帧DTMF结束帧是在同一时刻(N+80ms)发送出去的,这种发送模式存在的缺点是:如果网络上某一瞬间产生丢包,3帧DTMF结束帧同时丢弃的概率变大。
如图3b所示为现有技术中的DTMF事件帧的一接收流程示意图,从图3b中可以看出,在Mms至M+60ms之间,接收方RTP缓存队列的队列深度一直维持在2个深度。而在M+80ms时刻,RTP缓存队列连续接收到3帧DTMF结束帧,其队列深度变成4,队列深度变深,会引起延时,另外,还可能会引起队列溢出,导致队列复位,产生丢号。
现有技术中的另一种DTMF事件帧的处理方法是:将3帧DTMF结束帧与语音帧混合发送,其中,3帧DTMF结束帧按照DTMF非结束帧的发送时间间隔逐帧发送。
如图4a所示为现有技术中的DTMF事件帧的另一发送流程示意图,从图4a中可以看出,3帧DTMF结束帧是按照DTMF非结束帧的发送时间间隔逐帧发送的,这种发送模式存在的优点是:如果网络上某一瞬间产生丢包,3帧DTMF结束帧同时丢弃的概率变小。
如图4b所示为现有技术中的DTMF事件帧的另一接收流程示意图,从图4b中可以看出,在Mms至M+100ms之间,接收方RTP缓存队列的队列深度一直维持在2个深度。而从M+100ms开始,同时接收到两帧数据,RTP缓存队列的队列深度变成3,在M+120ms时刻,接收方又同时接收到2帧数据,RTP缓存队列的队列深度变成4。该种发送模式存在的缺点是:由于队列深度变深,会引起延时,还可能会引起队列溢出,导致队列复位,产生丢号;另外,接收方需要不停的在DTMF事件帧接收状态和语音帧接收状态之间切换。
综上可以看出,由于现有技术中发送方媒体网关在发送DTMF结束帧时,可能会3帧同时发送,或者与语音帧混合发送,导致接收方媒体网关的RTP缓存队列深度变大,使得RTP缓存队列溢出或复位,从而产生丢号,导致业务失败。
发明内容
有鉴于此,本发明提供一种DTMF事件帧处理方法、系统和媒体网关,能够减少DTMF事件帧丢包,提高了业务成功率。
为解决上述问题,本发明提供一种DTMF事件帧处理方法,包括以下步骤:
媒体网关按照预设的DTMF事件帧的发送时间间隔,逐帧发送DTMF事件帧中的DTMF非结束帧和DTMF结束帧;
所述媒体网关在发送DTMF事件帧期间,检测是否有语音帧产生,在检测到有语音帧产生时,丢弃所述语音帧。
所述预设的DTMF事件帧的发送时间间隔与所述媒体网关的语音帧的发送时间间隔相同。
所述DTMF事件帧处理方法还包括:
所述媒体网关在接收到当前DTMF事件的第一个DTMF事件帧时,获取所述第一个DTMF事件帧的事件持续时长;
所述媒体网关将所述第一个DTMF事件帧的事件持续时长,作为所述媒体网关的实时传输协议RTP缓存队列的出队时间间隔,并按照所述出队时间间隔,对接收到的DTMF事件帧执行出队处理。
所述DTMF事件帧处理方法还包括:
所述媒体网关根据是否接收到所述DTMF事件帧中的DTMF结束帧,来判断是否结束当前DTMF事件的接收;或
所述媒体网关根据是否接收到语音帧,来判断是否结束当前DTMF事件的接收;或
所述媒体网关根据是否接收到新的DTMF事件的DTMF事件帧,来判断是否结束当前DTMF事件的接收。
本发明还提供一种媒体网关,包括:
发送模块,用于按照预设的DTMF事件帧的发送时间间隔,逐帧发送DTMF事件帧中的DTMF非结束帧和DTMF结束帧;
处理模块,用于在发送DTMF事件帧期间,检测是否有语音帧产生,在检测到有语音帧产生时,丢弃所述语音帧。
所述预设的DTMF事件帧的发送时间间隔与所述媒体网关的语音帧的发送时间间隔相同。
所述媒体网关还包括:
获取模块,用于在接收到当前DTMF事件的第一个DTMF事件帧时,获取所述第一个DTMF事件帧的事件持续时长;
出队处理模块,用于将所述第一个DTMF事件帧的事件持续时长,作为所述媒体网关的RTP缓存队列的出队时间间隔,并按照所述出队时间间隔,对接收到的DTMF事件帧执行出队处理。
所述媒体网关还包括:
第一判断模块,用于根据是否接收到所述DTMF事件帧中的DTMF结束帧,来判断是否结束当前DTMF事件的接收;和/或
第二判断模块,用于根据是否接收到语音帧,来判断是否结束当前DTMF事件的接收;和/或
第三判断模块,用于根据是否接收到新的DTMF事件的DTMF事件帧,来判断是否结束当前DTMF事件的接收。
本发明还提供一种DTMF事件帧处理系统,包括发送方媒体网关和接收方媒体网关,所述发送方媒体网关包括:
发送模块,用于按照预设的DTMF事件帧的发送时间间隔,逐帧发送DTMF事件帧中的DTMF非结束帧和DTMF结束帧;
处理模块,用于在发送DTMF事件帧期间,检测是否有语音帧产生,在检测到有语音帧产生时,丢弃所述语音帧。
所述预设的DTMF事件帧的发送时间间隔与所述媒体网关的语音帧的发送时间间隔相同。
所述接收方媒体网关包括:
获取模块,用于在接收到当前DTMF事件的第一个DTMF事件帧时,获取所述第一个DTMF事件帧的事件持续时长;
出队处理模块,用于将所述第一个DTMF事件帧的事件持续时长,作为所述媒体网关的RTP缓存队列的出队时间间隔,并按照所述出队时间间隔,对接收到的DTMF事件帧执行出队处理。
所述接收方媒体网关还包括:
第一判断模块,用于根据是否接收到所述DTMF事件帧中的DTMF结束帧,来判断是否结束当前DTMF事件的接收;和/或
第二判断模块,用于根据是否接收到语音帧,来判断是否结束当前DTMF事件的接收;和/或
第三判断模块,用于根据是否接收到新的DTMF事件的DTMF事件帧,来判断是否结束当前DTMF事件的接收。
本发明具有以下有益效果:
在发送方媒体网关,对于DTMF事件帧中的结束帧,按照DTMF非结束帧的发送时间间隔逐帧进行发送,且在发送DTMF事件帧期间,不发送语音帧,即将DTMF事件帧和语音帧的发送完全区分开来。在接收方媒体网关,将发送方发送DTMF事件帧的发送时间间隔作为出队时间间隔,对接收到DTMF事件帧进行出队处理。上述处理使得接收方媒体网关的RTP缓存队列维持在较小的队列深度,从而能够更可靠的接收DTMF事件帧,减少了丢包,提高了业务成功率。
附图说明
图1为现有技术中的实现DTMF信号传输的组网结构图;
图2为现有技术中的DTMF事件帧净核结构示意图;
图3a为现有技术中的DTMF事件帧的一发送流程示意图;
图3b为现有技术中的DTMF事件帧的一接收流程示意图;
图4a为现有技术中的DTMF事件帧的另一发送流程示意图;
图4b为现有技术中的DTMF事件帧的另一接收流程示意图;
图5为本发明实施例的DTMF事件帧处理方法的一流程示意图;
图6为本发明实施例的DTMF事件帧处理方法的另一流程示意图;
图7a和7b为本发明实施例的DTMF事件帧处理方法的一具体应用场景示意图;
图8为本发明实施例的媒体网关的结构示意图;
图9为本发明实施例的DTMF事件帧处理系统的结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
如图5所示为本发明实施例的DTMF事件帧处理方法的一流程示意图,所述DTMF事件帧处理方法包括以下步骤:
步骤501,媒体网关根据检测到的DTMF事件,生成DTMF事件帧。
在电话终端或PBX侧按键时,会产生相应的DTMF事件,并将该DTMF事件发送给媒体网关,媒体网关根据检测到的DTMF事件,生成相应的DTMF事件帧,所述DTMF事件帧中包括:DTMF非结束帧和DTMF结束帧,其中,DTMF非结束帧用于传输标识DTMF事件的数据;DTMF结束帧用于传输标识当前DTMF事件结束的数据,为了防止DTMF结束帧在传输过程中丢失,协议中规定每个DTMF事件帧中需要包括3个DTMF结束帧。
步骤502,所述媒体网关按照预设的DTMF事件帧的发送时间间隔,逐帧发送DTMF事件帧中的DTMF非结束帧和DTMF结束帧。
所述预设的DTMF事件帧的发送时间间隔可以由用户自主设定,为了使得DTMF事件帧在接收方的处理更接近于普通语音帧的处理,可以将DTMF事件帧的发送时间间隔设定为与媒体网关的普通语音帧的发送时间间隔相同。
在上述步骤中,可以设置一定时器,定时器的开始时间和结束时间之间的时长等于所述预设的DTMF事件帧的发送时间间隔,在发送第一帧DTMF事件帧时,定时器开始计时,在定时器计时结束时,再发送第二帧DTMF事件帧,依次类推,直至发送完DTMF事件帧中的最后一个DTMF结束帧。
步骤503,所述媒体网关在发送DTMF事件帧期间,检测是否有语音帧产生,在检测到有语音帧产生时,丢弃所述语音帧。
在发送第一帧DTMF事件帧时,所述媒体网关需要切换至DTMF事件帧发送状态,在媒体网关处于DTMF事件帧发送状态时,不发送语音帧。
在当前DTMF事件的最后一个DTMF结束帧发送完毕之后,表示当前DTMF事件结束,媒体网关可以检测是否有语音帧产生,如果检测到有语音帧产生,所述媒体网关则切换至语音帧发送状态,开始发送语音帧。
需要说明的是,本发明实施例中,DTMF事件不仅仅可以传输电话终端或PBX侧的按键信号,也可以传输传真信号、回铃音等。
上述实施例描述了媒体网关如何发送DTMF事件帧的方法,下面详细说明媒体网关接收到DTMF事件帧时的处理方法。
如图6所示为本发明实施例的DTMF事件帧处理方法的另一流程示意图,所述DTMF事件帧处理方法包括以下步骤:
步骤601,媒体网关在接收到当前DTMF事件的第一个DTMF事件帧时,获取所述第一个DTMF事件帧的事件持续时长。
由于每一DTMF事件帧的事件持续时长,均与发送方媒体网关发送DTMF事件帧的发送时间间隔相同,因此,为了保证与发送方的步调一致,即保证出队时间间隔与发送方媒体网关发送DTMF事件帧的发送时间间隔一致,媒体网关在接收到当前DTMF事件的第一个DTMF事件帧时,可以通过获取所述第一个DTMF事件帧的事件持续时长,来获知发送方媒体网关发送DTMF事件帧的发送时间间隔。
步骤602,所述媒体网关将所述第一个DTMF事件帧的事件持续时长,作为所述媒体网关的RTP缓存队列的出队时间间隔,并按照所述出队时间间隔,对接收到的DTMF事件帧执行出队处理。
在接收到当前DTMF事件的第一帧DTMF事件帧时,所述媒体网关需要切换至DTMF事件帧接收状态,当媒体网关再次接收到语音帧时,则从DTMF事件帧接收状态切换至语音帧接收状态,同时,在所述语音帧开始出队时,还需要用所述语音帧的序列号和时间戳更新RTP缓存队列的序列号和时间戳。
基于上述DTMF事件帧发送方法,所述媒体网关可以通过多种方式判断是否结束当前DTMF事件的接收,下面将一一说明。
如果DTMF事件帧在传输过程中未丢包,媒体网关则可以根据是否接收到DTMF事件帧中的DTMF结束帧,来判断是否结束当前DTMF事件的接收;如果DTMF事件帧在传输过程中丢了第一个DTMF结束帧,媒体网关还可以根据后面的DTMF结束帧,来判断是否结束当前DTMF事件的接收;
如果DTMF事件帧在传输过程中3个DTMF结束帧均丢失,所述媒体网关还可以根据是否接收到语音帧,来判断是否结束当前DTMF事件的接收;
如果当前DTMF事件与下一个DTMF事件之间没有语音包,且当前DTMF事件的3个DTMF结束帧均丢失,所述媒体网关可以根据是否接收到新的DTMF事件的DTMF事件帧,来判断是否结束当前DTMF事件的接收。由于每一DTMF事件的时间戳均不相同,因此,所述媒体网关可以根据DTMF事件的时间戳来判断当前接收到的DTMF事件是否是下一个DTMF事件。
即,接收方媒体网关只需根据序列号来决定是否需要入队,然后根据时间戳来决定是否正常出队,是否需要补偿DTMF事件,根据时间戳来判断是否是新的DTMF事件。
如图7a和7b所示为本发明实施例的DTMF事件帧处理方法的一具体应用场景示意图。
在本发明实施例中,发送方媒体网关检测到的DTMF事件的事件号为9,发送方媒体网关按照语音帧的发送时间间隔(20ms)发送DTMF事件帧,接收方媒体网关也按照语音帧的发送时间间隔,对接收到的DTMF事件帧进行出队处理,每20ms出一帧数据。
本发明实施例的DTMF事件帧处理方法包括以下步骤:
步骤一,如图7a所示,N ms时刻,发送方媒体网关发送“AMR语音报文1”,在N+20ms时刻,发送方媒体网关发送“AMR语音报文2”;
步骤二,在N+40ms时刻,发送方媒体网关发送DTMF事件的第一个DTMF事件帧(即DTMF非结束帧1);在N+60ms时刻,发送方媒体网关发送DTMF事件的第二个DTMF事件帧(即DTMF非结束帧2);
步骤三,在N+80ms时刻,发送方媒体网关发送DTMF事件的第三个DTMF事件帧(即DTMF结束帧1);
步骤四,在N+100ms时刻,发送方媒体网关发送DTMF事件的第四个DTMF事件帧(即DTMF结束帧2);
步骤五,在N+120ms时刻,发送方媒体网关发送DTMF事件的第五个DTMF事件帧(即DTMF结束帧3);
步骤六,在N+140ms时刻,发送方媒体网关发送“AMR语音报文3”,在N+160ms时刻发送“AMR语音报文4”,在N+180ms时刻发送“AMR语音报文5”。
上述步骤一至步骤六为本发明实施例的DTMF事件帧的发送流程,从图7a中可以看出每一时刻只发送一个报文,且DTMF事件帧和AMR语音报文完全区分开来发送。
下述步骤七至步骤十五为本发明实施例的DTMF事件帧的接收流程。下述实施例中,假设接收方媒体网关中用于接收报文的RTP缓存队列的最大队列深度为4,RTP缓存队列设定为连续有2个报文入队列后,则按照20ms的时间间隔定时对报文进行出队处理。
步骤七,如图7b所述,在M ms时刻,接收方媒体网关接收到了“AMR语音报文1”,在M+20ms时刻,接收方媒体网关接收到了“AMR语音报文2”;
步骤八,在M+40ms时刻,接收方媒体网关接收到了DTMF事件的第一个DTMF事件帧,同时,RTP缓存队列中的“AMR语音报文1”开始出队;此时,RTP缓存队列中还保存着“AMR语音报文2”和第一个DTMF事件帧,队列深度为2;
步骤九,在M+60ms时刻,接收方媒体网关接收到了DTMF事件的第二个DTMF事件帧,同时,RTP缓存队列中的“AMR语音报文2”开始出队;此时,RTP缓存队列中还保存着第一个DTMF事件帧和第二个DTMF事件帧,队列深度为2;
步骤十,在M+80ms时刻,接收方媒体网关接收到了DTMF事件的DTMF结束帧1,同时,RTP缓存队列中的第一个DTMF事件帧开始出队;此时,RTP缓存队列中还保存着第二个DTMF事件帧和DTMF结束帧1,队列深度为2;
步骤十一,在M+100ms时刻,接收方媒体网关接收到了DTMF事件的DTMF结束帧2,同时,RTP缓存队列中的第二个DTMF事件帧开始出队;此时,RTP缓存队列中保存着DTMF结束帧1和DTMF结束帧2,队列深度为2;
步骤十二,在M+120ms时刻,接收方媒体网关接收到了DTMF事件的DTMF结束帧3,同时,RTP缓存队列中的DTMF结束帧1开始出队;此时,RTP缓存队列中保存着DTMF结束帧2和DTMF结束帧3,队列深度为2;
步骤十三,在M+140ms时刻,接收方媒体网关接收到了“AMR语音报文3”,此时,RTP缓存队列中的DTMF结束帧2开始出队;此时,RTP缓存队列中保存着DTMF结束帧3和“AMR语音报文3”,队列深度为2;
步骤十四,在M+160ms时刻,接收方媒体网关接收到了“AMR语音报文4”,此时,RTP缓存队列中的DTMF结束帧3开始出队;此时,RTP缓存队列中保存着“AMR语音报文3”和“AMR语音报文4”,队列深度为2;
步骤十五,在M+180ms时刻,接收方媒体网关接收到了“AMR语音报文5”,此时,RTP缓存队列中的“AMR语音报文3”开始出队,接收方媒体网关用“AMR语音报文3”的序列号和时间戳来更新RTP缓存队列的序列号和时间戳;此时,RTP缓存队列中保存着“AMR语音报文4”和“AMR语音报文5”,队列深度仍为2。
从上述步骤七至步骤十五可以看出,在本发明实施例中,RTP缓存队列的队列深度维持在2个,因此,不会对后续的报文产生延时或者产生队列复位,使得接收方媒体网关能够可靠的接收DTMF事件帧,减少了丢包,提高了业务成功率。
通过上述实施例提供的DTMF事件帧处理方法,在发送方媒体网关,对于DTMF事件帧中的结束帧,按照DTMF非结束帧的发送时间间隔逐帧进行发送,且在发送DTMF事件帧期间,不发送语音帧,即将DTMF事件帧和语音帧的发送完全区分开来。在接收方媒体网关,将发送方发送DTMF事件帧的发送时间间隔作为出队时间间隔,对接收到DTMF事件帧进行出队处理。上述处理使得接收方媒体网关的RTP缓存队列维持在较小的队列深度,从而能够更可靠的接收DTMF事件帧,减少了丢包,提高了业务成功率。
如图8所示为本发明实施例的媒体网关的结构示意图,所述媒体网关可以采用上述实施例中的DTMF事件帧处理方法发送或接收DTMF事件帧,所述媒体网关包括:
生成模块801,用于根据检测到的DTMF事件,生成DTMF事件帧。
发送模块802,用于按照预设的DTMF事件帧的发送时间间隔,逐帧发送DTMF事件帧中的DTMF非结束帧和DTMF结束帧。所述预设的DTMF事件帧的发送时间间隔可以由用户自主设定,为了使得DTMF事件帧在接收方的处理更接近于普通语音帧的处理,可以将DTMF事件帧的发送时间间隔设定为与媒体网关的普通语音帧的发送时间间隔相同。
处理模块803,用于在发送DTMF事件帧期间,检测是否有语音帧产生,在检测到有语音帧产生时,丢弃所述语音帧。
在发送第一帧DTMF事件帧时,所述媒体网关需要切换至DTMF事件帧发送状态,在媒体网关处于DTMF事件帧发送状态时,不发送语音帧。
在当前DTMF事件的最后一个DTMF结束帧发送完毕之后,表示当前DTMF事件结束,媒体网关可以检测是否有语音帧产生,如果检测到有语音帧产生,所述媒体网关则切换至语音帧发送状态,开始发送语音帧。
上述实施例描述的是媒体网关如何发送DTMF事件帧的方法,下面详细说明媒体网关接收到DTMF事件帧时的处理方法。
如图8所示,所述媒体网关在作为DTMF事件帧的接收方时,还需要包括以下模块:
获取模块804,用于在接收到当前DTMF事件的第一个DTMF事件帧时,获取所述第一个DTMF事件帧的事件持续时长。
由于每一DTMF事件帧的事件持续时长,均与发送方媒体网关发送DTMF事件帧的发送时间间隔相同,因此,为了保证与发送方的步调一致,即保证出队时间间隔与发送方媒体网关发送DTMF事件帧的发送时间间隔一致,媒体网关在接收到当前DTMF事件的第一个DTMF事件帧时,可以通过获取所述第一个DTMF事件帧的事件持续时长,来获知发送方媒体网关发送DTMF事件帧的发送时间间隔。
出队处理模块805,用于将所述第一个DTMF事件帧的事件持续时长,作为所述媒体网关的实时传输协议RTP缓存队列的出队时间间隔,并按照所述出队时间间隔,对接收到的DTMF事件帧执行出队处理。
在接收到当前DTMF事件的第一帧DTMF事件帧时,所述媒体网关需要切换至DTMF事件帧接收状态,当媒体网关再次接收到语音帧时,则从DTMF事件帧接收状态切换至语音帧接收状态,同时,在所述语音帧开始出队时,还需要用所述语音帧的序列号和时间戳更新RTP缓存队列的序列号和时间戳。
基于上述DTMF事件帧发送方法,所述媒体网关可以通过多种方式判断是否结束当前DTMF事件的接收,下面将一一说明。
如果DTMF事件帧在传输过程中未丢包,媒体网关则可以根据是否接收到DTMF事件帧中的DTMF结束帧,来判断是否结束当前DTMF事件的接收;如果DTMF事件帧在传输过程中丢了第一个DTMF结束帧,媒体网关还可以根据后面的DTMF结束帧,来判断是否结束当前DTMF事件的接收;
此时,所述媒体网关还可以包括:第一判断模块,用于根据是否接收到所述DTMF事件帧中的DTMF结束帧,来判断是否结束当前DTMF事件的接收。
如果DTMF事件帧在传输过程中3个DTMF结束帧均丢失,所述媒体网关还可以根据是否接收到语音帧,来判断是否结束当前DTMF事件的接收;
此时,所述媒体网关还可以包括:第二判断模块,用于根据是否接收到语音帧,来判断是否结束当前DTMF事件的接收。
如果当前DTMF事件与下一个DTMF事件之间没有语音包,且当前DTMF事件的3个DTMF结束帧均丢失,所述媒体网关可以根据是否接收到新的DTMF事件的DTMF事件帧,来判断是否结束当前DTMF事件的接收。由于每一DTMF事件的时间戳均不相同,因此,所述媒体网关可以根据DTMF事件的时间戳来判断当前接收到的DTMF事件是否是新的DTMF事件。
此时,所述媒体网关还可以包括:第三判断模块,用于根据是否接收到新的DTMF事件的DTMF事件帧,来判断是否结束当前DTMF事件的接收。
通过上述实施例提供的媒体网关,媒体网关作为发送方时,对于DTMF事件帧中的结束帧,按照DTMF非结束帧的发送时间间隔逐帧进行发送,且在发送DTMF事件帧期间,不发送语音帧,即将DTMF事件帧和语音帧的发送完全区分开来。媒体网关作为接送方时,将发送方发送DTMF事件帧的发送时间间隔作为出队时间间隔,对接收到DTMF事件帧进行出队处理。上述处理使得接收方媒体网关的RTP缓存队列维持在较小的队列深度,从而能够更可靠的接收DTMF事件帧,减少了丢包,提高了业务成功率。
如图9所示为本发明实施例的DTMF事件帧处理系统的结构示意图,所述DTMF事件帧处理系统包括:发送方媒体网关900和接收方媒体网关1000,所述发送方媒体网关900包括:
生成模块901,用于根据检测到的DTMF事件,生成DTMF事件帧;
发送模块902,用于按照预设的DTMF事件帧的发送时间间隔,逐帧发送DTMF事件帧中的DTMF非结束帧和DTMF结束帧。
所述预设的DTMF事件帧的发送时间间隔可以由用户自主设定,为了使得DTMF事件帧在接收方媒体网关1000的处理更接近于普通语音帧的处理,可以将DTMF事件帧的发送时间间隔设定为与所述发送方媒体网关900的普通语音帧的发送时间间隔相同。
处理模块903,用于在发送DTMF事件帧期间,检测是否有语音帧产生,在检测到有语音帧产生时,丢弃所述语音帧。
在发送第一帧DTMF事件帧时,所述发送方媒体网关900需要切换至DTMF事件帧发送状态,在发送方媒体网关900处于DTMF事件帧发送状态时,不发送语音帧。
在当前DTMF事件的最后一个DTMF结束帧发送完毕之后,表示当前DTMF事件结束,发送方媒体网关900可以检测是否有语音帧产生,如果检测到有语音帧产生,所述发送方媒体网关900则切换至语音帧发送状态,开始发送语音帧。
所述接收方媒体网关1000包括:
获取模块1001,用于在接收到当前DTMF事件的第一个DTMF事件帧时,获取所述第一个DTMF事件帧的事件持续时长。
由于每一DTMF事件帧的事件持续时长,均与发送方媒体网关900发送DTMF事件帧的发送时间间隔相同,因此,为了保证与发送方媒体网关900的步调一致,即保证出队时间间隔与发送方媒体网关900发送DTMF事件帧的发送时间间隔一致,接收方媒体网关1000在接收到当前DTMF事件的第一个DTMF事件帧时,可以通过获取所述第一个DTMF事件帧的事件持续时长,来获知发送方媒体网关900发送DTMF事件帧的发送时间间隔。
出队处理模块1002,用于将所述第一个DTMF事件帧的事件持续时长,作为所述媒体网关的实时传输协议RTP缓存队列的出队时间间隔,并按照所述出队时间间隔,对接收到的DTMF事件帧执行出队处理。
在接收到当前DTMF事件的第一帧DTMF事件帧时,所述接收方媒体网关1000需要切换至DTMF事件帧接收状态,当接收方媒体网关1000再次接收到语音帧时,则从DTMF事件帧接收状态切换至语音帧接收状态,同时,在所述语音帧开始出队时,还需要用所述语音帧的序列号和时间戳更新RTP缓存队列的序列号和时间戳。
基于上述DTMF事件帧发送方法,所述接收方媒体网关1000可以通过多种方式判断是否结束当前DTMF事件的接收,下面将一一说明。
如果DTMF事件帧在传输过程中未丢包,接收方媒体网关1000则可以根据是否接收到DTMF事件帧中的DTMF结束帧,来判断是否结束当前DTMF事件的接收;如果DTMF事件帧在传输过程中丢了第一个DTMF结束帧,接收方媒体网关1000还可以根据后面的DTMF结束帧,来判断是否结束当前DTMF事件的接收;
此时,所述接收方媒体网关1000还可以包括:第一判断模块,用于根据是否接收到所述DTMF事件帧中的DTMF结束帧,来判断是否结束当前DTMF事件的接收。
如果DTMF事件帧在传输过程中3个DTMF结束帧均丢失,所述接收方媒体网关1000还可以根据是否接收到语音帧,来判断是否结束当前DTMF事件的接收;
此时,所述接收方媒体网关1000还可以包括:第二判断模块,用于根据是否接收到语音帧,来判断是否结束当前DTMF事件的接收。
如果当前DTMF事件与下一个DTMF事件之间没有语音包,且当前DTMF事件的3个DTMF结束帧均丢失,所述接收方媒体网关1000可以根据是否接收到新的DTMF事件的DTMF事件帧,来判断是否结束当前DTMF事件的接收。由于每一DTMF事件的时间戳均不相同,因此,所述接收方媒体网关1000可以根据DTMF事件时间戳来判断当前接收到的DTMF事件帧是否是下一个DTMF事件的DTMF事件帧。
此时,所述接收方媒体网关1000还可以包括:第三判断模块,用于根据是否接收到新的DTMF事件的DTMF事件帧,来判断是否结束当前DTMF事件的接收。
通过上述实施例提供的DTMF事件帧处理系统,在发送方媒体网关,对于DTMF事件帧中的结束帧,按照DTMF非结束帧的发送时间间隔逐帧进行发送,且在发送DTMF事件帧期间,不发送语音帧,即将DTMF事件帧和语音帧的发送完全区分开来。在接收方媒体网关,将发送方发送DTMF事件帧的发送时间间隔作为出队时间间隔,对接收到DTMF事件帧进行出队处理。上述处理使得接收方媒体网关的RTP缓存队列维持在较小的队列深度,从而能够更可靠的接收DTMF事件帧,减少了丢包,提高了业务成功率。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种双音多频DTMF事件帧处理方法,其特征在于,包括以下步骤:
媒体网关按照预设的DTMF事件帧的发送时间间隔,逐帧发送DTMF事件帧中的DTMF非结束帧和DTMF结束帧;
所述媒体网关在发送DTMF事件帧期间,检测是否有语音帧产生,在检测到有语音帧产生时,丢弃所述语音帧;
其中,接收方媒体网关将接收到的DTMF事件帧的发送时间间隔作为出队时间间隔,对接收到的DTMF事件帧进行出队处理。
2.根据权利要求1所述的DTMF事件帧处理方法,其特征在于,所述预设的DTMF事件帧的发送时间间隔与所述媒体网关的语音帧的发送时间间隔相同。
3.根据权利要求1或2所述的DTMF事件帧处理方法,其特征在于,还包括:
所述媒体网关在接收到当前DTMF事件的第一个DTMF事件帧时,获取所述第一个DTMF事件帧的事件持续时长;
所述媒体网关将所述第一个DTMF事件帧的事件持续时长,作为所述媒体网关的实时传输协议RTP缓存队列的出队时间间隔,并按照所述出队时间间隔,对接收到的DTMF事件帧执行出队处理。
4.根据权利要求3所述的DTMF事件帧处理方法,其特征在于,还包括:
所述媒体网关根据是否接收到所述DTMF事件帧中的DTMF结束帧,来判断是否结束当前DTMF事件的接收;或
所述媒体网关根据是否接收到语音帧,来判断是否结束当前DTMF事件的接收;或
所述媒体网关根据是否接收到新的DTMF事件的DTMF事件帧,来判断是否结束当前DTMF事件的接收。
5.一种媒体网关,其特征在于,包括:
发送模块,用于按照预设的DTMF事件帧的发送时间间隔,逐帧发送DTMF事件帧中的DTMF非结束帧和DTMF结束帧;
处理模块,用于在发送DTMF事件帧期间,检测是否有语音帧产生,在检测到有语音帧产生时,丢弃所述语音帧;
接收模块,用于将接收到的DTMF事件帧的发送时间间隔作为出队时间间隔,对接收到的DTMF事件帧进行出队处理。
6.根据权利要求5所述的媒体网关,其特征在于,所述预设的DTMF事件帧的发送时间间隔与所述媒体网关的语音帧的发送时间间隔相同。
7.根据权利要求5或6所述的媒体网关,其特征在于,还包括:
获取模块,用于在接收到当前DTMF事件的第一个DTMF事件帧时,获取所述第一个DTMF事件帧的事件持续时长;
出队处理模块,用于将所述第一个DTMF事件帧的事件持续时长,作为所述媒体网关的RTP缓存队列的出队时间间隔,并按照所述出队时间间隔,对接收到的DTMF事件帧执行出队处理。
8.根据权利要求7所述的媒体网关,其特征在于,还包括:
第一判断模块,用于根据是否接收到所述DTMF事件帧中的DTMF结束帧,来判断是否结束当前DTMF事件的接收;和/或
第二判断模块,用于根据是否接收到语音帧,来判断是否结束当前DTMF事件的接收;和/或
第三判断模块,用于根据是否接收到新的DTMF事件的DTMF事件帧,来判断是否结束当前DTMF事件的接收。
9.一种DTMF事件帧处理系统,包括发送方媒体网关和接收方媒体网关,其特征在于,所述发送方媒体网关包括:
发送模块,用于按照预设的DTMF事件帧的发送时间间隔,逐帧发送DTMF事件帧中的DTMF非结束帧和DTMF结束帧;
处理模块,用于在发送DTMF事件帧期间,检测是否有语音帧产生,在检测到有语音帧产生时,丢弃所述语音帧;
所述接收方媒体网关包括:
接收模块,用于将接收到的DTMF事件帧的发送时间间隔作为出队时间间隔,对接收到的DTMF事件帧进行出队处理。
10.根据权利要求9所述的DTMF事件帧处理系统,其特征在于,所述预设的DTMF事件帧的发送时间间隔与所述媒体网关的语音帧的发送时间间隔相同。
11.根据权利要求9或10所述的DTMF事件帧处理系统,其特征在于,所述接收方媒体网关包括:
获取模块,用于在接收到当前DTMF事件的第一个DTMF事件帧时,获取所述第一个DTMF事件帧的事件持续时长;
出队处理模块,用于将所述第一个DTMF事件帧的事件持续时长,作为所述媒体网关的RTP缓存队列的出队时间间隔,并按照所述出队时间间隔,对接收到的DTMF事件帧执行出队处理。
12.根据权利要求11所述的DTMF事件帧处理系统,其特征在于,所述接收方媒体网关还包括:
第一判断模块,用于根据是否接收到所述DTMF事件帧中的DTMF结束帧,来判断是否结束当前DTMF事件的接收;和/或
第二判断模块,用于根据是否接收到语音帧,来判断是否结束当前DTMF事件的接收;和/或
第三判断模块,用于根据是否接收到新的DTMF事件的DTMF事件帧,来判断是否结束当前DTMF事件的接收。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910237076 CN101702749B (zh) | 2009-11-03 | 2009-11-03 | 双音多频事件帧处理方法、系统和媒体网关 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910237076 CN101702749B (zh) | 2009-11-03 | 2009-11-03 | 双音多频事件帧处理方法、系统和媒体网关 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101702749A CN101702749A (zh) | 2010-05-05 |
CN101702749B true CN101702749B (zh) | 2013-01-16 |
Family
ID=42157642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910237076 Active CN101702749B (zh) | 2009-11-03 | 2009-11-03 | 双音多频事件帧处理方法、系统和媒体网关 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101702749B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102255793B (zh) * | 2011-03-21 | 2014-10-29 | 中兴通讯股份有限公司 | 一种处理双音多频的方法及其装置 |
CN102420915A (zh) * | 2011-10-20 | 2012-04-18 | 中兴通讯股份有限公司 | 一种发送双音多频信号的方法及装置 |
CN102420920B (zh) * | 2011-12-20 | 2013-05-08 | 南京邮电大学 | Voip网络中dtmf流的传输方法 |
CN103905444B (zh) * | 2014-03-31 | 2018-02-23 | 邦彦技术股份有限公司 | 一种综合业务通信指挥系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1409930A (zh) * | 1999-10-14 | 2003-04-09 | 科恩格森特系统股份有限公司 | Ip网上话音传输中双音多频信号的早期检测方法和装置 |
CN101159794A (zh) * | 2007-08-23 | 2008-04-09 | 宇龙计算机通信科技(深圳)有限公司 | 一种在通话中发送、接收数据信息的方法及终端设备 |
-
2009
- 2009-11-03 CN CN 200910237076 patent/CN101702749B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1409930A (zh) * | 1999-10-14 | 2003-04-09 | 科恩格森特系统股份有限公司 | Ip网上话音传输中双音多频信号的早期检测方法和装置 |
CN101159794A (zh) * | 2007-08-23 | 2008-04-09 | 宇龙计算机通信科技(深圳)有限公司 | 一种在通话中发送、接收数据信息的方法及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101702749A (zh) | 2010-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5883893A (en) | ATM voice transport protocol | |
US6272358B1 (en) | Vocoder by-pass for digital mobile-to-mobile calls | |
EP1053608B1 (en) | Device and method for communicating packet voice data in mobile communication system | |
JP4515979B2 (ja) | Ip電話機 | |
CN101702749B (zh) | 双音多频事件帧处理方法、系统和媒体网关 | |
US20070195825A1 (en) | Satellite Communication System and Method | |
US7710948B2 (en) | PCM-based data transmission system and voice/data communication switching method | |
AU755263B2 (en) | Method, system and apparatus for transmitting coded telecommunication signals | |
JP2003087335A (ja) | ネットワーク接続装置、通信システム、通信方法、通信プログラムおよび記録媒体 | |
WO1998021851A1 (en) | Methods and apparatus for vocoder synchronization in a mobile communication network | |
JPH11112523A (ja) | サーキットエミュレーション通信方法並びにその送信装置及び受信装置 | |
CN100459624C (zh) | 在无线接入设备主叫接续中发送被叫号码的方法 | |
US20060245568A1 (en) | Gateway device, private branch exchange system, and private branch exchange method | |
JP2007116283A (ja) | パケット送受信システム、パケット送受信装置および経過時間測定方法 | |
WO2014000516A1 (zh) | 一种传输信令的方法及装置 | |
KR100620490B1 (ko) | 음성데이터 통신시스템에서 데이터서비스장치 및 방법 | |
JP3781524B2 (ja) | 電話システム | |
JP3623669B2 (ja) | ネットワーク間接続システム、ゲートウェイ装置、ゲートウェイ間接続方法及び記録媒体 | |
CN100502439C (zh) | 一种在e&m链路上传输主叫号码的方法、设备及系统 | |
CN101409751B (zh) | 传递双音多频信号的方法、装置和系统 | |
CN102368731A (zh) | 一种实现从传真业务到语音业务变更的方法及系统 | |
US20050246532A1 (en) | Secure communication system and method | |
CN101374277B (zh) | 一种下一代网络系统实现随路信令的方法 | |
WO2010075734A1 (zh) | 信号传输的方法、装置及系统 | |
EP3197143B1 (en) | Method and device for switching from fax channel to voice channel |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |