VOIP DTMF 笔记

简介:

DTMF定义:由高频音和低频音的两个正弦波合成表示数字按键(0~9 * # A B C D)。

VOIP中 检测DTMF通常有三种方法,sip info, inband, out band(rfc2833), 此外,在3gpp ims规范中 对dtmf的要求已经采用最新的rfc 4733 取代rfc 2833.

 

1. sip info

 

     为带外检测方式,通过SIP信令通道传输DTMF数据。没有统一的实现标准,通过SIP INFO 方法 发送,包中的signal字段识别DTMF按键。注意当DTMF为“*”时不同的标准实现对应的signal=*或signal=10。SIP INFO的好处就是不影响RTP数据包的传输,但可能会造成不同步。

2.out band (rfc2833)

    为带内检测方式,通过RTP传输,由特殊的rtp PayloadType即TeleponeEvent来标示RFC2833数据包。同一个DTMF按键通常会对应多个RTP包,这些RTP数据包的时间戳均相同,此可以作为识别同一个按键的判断依据,最后一包RTP数据包的end标志置1表示DTMF数据结束。另外,很多SIP UA 包括IAD都提供TeleponeEvent的设置功能如3CX Phone,Billion-IAD,ZTE-IAD等默认的TeleponeEvent都为101,但可以人为修改,这时要求在进行RFC2833 DTMF检测之前需事先获取SDP协商的TeleponeEvent参数。

3. in band

 

 

 为带内检测方式,而且与普通的RTP语音包混在一起传送。在进行INBAND DTMF检测时唯一的办法就是提取RTP数据包进行频谱分析,经过频谱分析得到高频和低频的频率,然后查表得到对应的按键,进行频谱分析的算法一般为Goertzel,这种算法的实现也很简单,网上有很多可以下到,但建议采用定点算法,浮点算法效率很低。

从使用情况看,一般使用rfc283 即out band 方式,一般软交换服务器这几种方式都支持,我所知道的asterisk 支持 sip info , rfc 2833及inband 方式,但是rfc2833 兼容性最好, 由于Ims 里对dtfm 这块采用了rfc 47233 而取代了rfc2833, 所以在ims客户端与软交换对接时可能存在兼容性问题。



本文转自einyboy博客园博客,原文链接:http://www.cnblogs.com/einyboy/archive/2012/11/20/2779922.html,如需转载请自行联系原作者。


目录
相关文章
|
6月前
|
监控 安全 Linux
处理SIP的voip语音环境问题的方法
在VoIP的环境中,特别是基于SIP通信的环境中,我们经常会遇到一些非常常见的问题,例如,单通,30秒就断线,注册问题,回声等。这些问题事实上都有非常直接的排查方式和解决办法,用户可以按照一定的排查方式,工具非常高效地解决这些问题。但是,因为读者技术水平参差不齐,网络上的很多技术也不完整。笔者今天系统归纳了这些问题。根据一些用户的使用环境和用户经常遇到一些问题,我们列举了以下十个在SIP呼叫中经常遇到的问题,并且给出了相应的排查方式,用户可以按照这些方法来解决SIP通话中的这些问题,有关系统问题欢迎喂博主一起交流学习。这十个经典的问题包括: 不能注册或呼叫到SIP服务器端 30秒挂断呼叫的
|
11月前
|
数据安全/隐私保护 网络架构
VOIP技术连载之一VOIP简介
VOIP技术连载之一VOIP简介
SIP的voip语音环境咬线或摘机状态什么处理
SIP的voip语音环境咬线或摘机状态什么处理
|
网络架构
网络电话培训-voip基础知识
先了解 VoIP 定义 VoIP(Voice over Internet Protocol)是一种以IP电话为主,并推出相应的增值业务的技术。 例如,有了VOIP,接入业务提供商,包括互联网服务提供商(ISP)和传输服务者可以实现Points-of-Presence(POPs)和上下驿站网关服务。VOIP网关功能支持PC-to-Phone和Phone-to-PC业务,可通过基于IP的网络进行实时通信,造就新的商业机会。
|
监控 安全 Linux
10个方法处理基于SIP的voip语音环境问题
在VoIP的环境中,特别是基于SIP通信的环境中,我们经常会遇到一些非常常见的问题,例如,单通,30秒就断线,注册问题,回声等。
应用VoIP
或许把语音和Web在网络上结合起来的最佳途径就是利用VoIP,把语音打包后(不管用什么办法),在同一条物理链路上在为Web传递数据包的同时为用户传输语音包的最佳选择就是利用VoIP。
|
编解码 网络协议 数据库
语音业务VOIP开发之SIP协议篇
SIP是基于一个类似HTTP协议的请求应答的通讯模式。每一个通讯都包含对某个功能的请求,并且起码需要一个应答。在这个应答中,Alice的软电话发送一个含有Bbo的SIP URI抵制的INVITE通讯请求。INVITE是一个SIP请求的例子,表示请求方(Alice)希望服务方(Bob)应答。INVTE请求包含一系列的包头域(Header fields)。包头中包含很多属性并且包含了传输消息的附加信息。在INVITE中有如下的字段:呼叫的唯一标志,目的抵制,Alice的地址,Alice和Bob建立会话的类型。INVITE请求(图1中的F1)可能看起来像这样的:
|
Web App开发 Java 应用服务中间件
FreeSwitch+Sipml5实现SIP协议WebRTC视频聊天(没呼叫成功)
FreeSwitch+Sipml5实现SIP协议WebRTC视频聊天(没呼叫成功)
403 0
FreeSwitch+Sipml5实现SIP协议WebRTC视频聊天(没呼叫成功)