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. inband
为带内检测方式,而且与普通的RTP语音包混在一起传送。在进行INBAND DTMF检测时唯一的办法就是提取RTP数据包进行频谱分析,经过频谱分析得到高频和低频的频率,然后查表得到对应的按键,进行频谱分析的算法一般为Goertzel,这种算法的实现也很简单,网上有很多可以下到,但建议采用定点算法,浮点算法效率很低。
从使用情况看,一般使用rfc283 即out band 方式,一般软交换服务器这几种方式都支持,我所知道的asterisk 支持 sip info , rfc 2833及inband 方式,但是rfc2833 兼容性最好, 由于Ims 里对dtfm 这块采用了rfc 47233 而取代了rfc2833, 所以在ims客户端与软交换对接时可能存在兼容性问题。
分享到:
相关推荐
这是一个可以识别DTMF信号的识别的程序。能够输出想要DTMF的输出强度
DTMF信号的检测程序,使用GOERTZEL算法实现,可以解码DTMF信号。
DTMF拨号音识别器,无需安装,解压即用 命令: dtmf2num <音频.wav> 可精确识别手机拨号音,无需人工识别,方便快捷
深入了解DTMF双音多频的原理及应用 pdf文件
DTMF 波形数据存储在 "1.wav" 文件中,在程序中打开,然后经过C实现其解调 借鉴了前辈的代码。
MSP430F dtmf 检测 源程序, DTMF Decoding Algorithm, Program for DTMF-Controlled Remote Switching Application
试验DTMF软解码,DTMF音频测试环境
dtmf解码 dtmf 双音频软件解码 vc++编程
DTMF双音多频
dtmf vc++ 程序。很好的vc dtmf解码程序
matlab下dtmf的实现代码,应该还是比较好用的
DTMF信号Matlab仿真,采用戈泽尔算法实现对DTMF信号的检测。
dtmf 包 一个Demo dtmf 解码的Demo包
基于MATLAB的DTMF模拟与仿真-基于MATLAB的DTMF技术计算机模拟.pdf 主要阐述了DTMF编码的原理以及通过MATLAB产生DTMF信号的方法,并对Goertzel算法和快速傅里叶变换FFT算法提取的频谱进行了分析比较,设计了两种...
中国DTMF制式来电显示国标 1. 主题内容与适用范围 主题内容与适用范围 主题内容与适用范围 主题内容与适用范围 1.1 本规程是参照瑞典95NUF Ahe No.8211 A-331 Ven和爱立信标准 ETX/LL/NA-94:279制 定的 1.2 本规程...
DTMF信号处理-DTMF.docx 可进行模拟拨号编码和对语音信号分析出所播号码
DTMF是一个简单的DSP 滤波应用,代码中有功率计算,检测有效性,适合学习.
DTMF软解码算法 + VC验证程序,详细描述DTMF软件解码算法。
使用matlab编写的DTMF编码代码,输入电话号码,生成‘voice.wav'文件