DTMF: Dual Tone Multi-Frequency,就是双音多频.
其实简单的说就是我们平常打通公司的总机,需要按那个分机输入的号码在电信网 or Internet网络上传输的方式.
在VoIP世界中共分三类:
一.RFC2833,将你输入的号码以RTP封包的方式传输,在每个RTP封包的包头表计DTMF=1or2or3....,服务器看到这个包头就知道这个Key是什么?这种方法也是目前在电信界大家普遍采用的方式,识别率很高,在我的接触中基本95%都是使用这种方式.
 
二.In-Band DTMF方式,这种方式有点像传输FAX时侦测的声音信号.这种方式也是使用RTP封包的方式封装,但这种方式不会在包头标记,服务器在接受到这样的RTP后,会对这个封包进行解包,然后识别这个声音的高低音来识别为1 or 2 or 3....,这种方式目前大家都不采用,主要问题是识别率比较低.
 
三.SIP Info方式,这种方式目前也很少有人采用,单单从技术角度讲,这种方式使用SIP信令来携带DTMF Key,问题就来了.如果网络延时很大,有可能客户的语音已经到达,但是SIP Info的DTMF还没有到达.例如:在 Voice Mail应用中,用户根据提示音输入一个DTMF信号,随后开始留言。Server是在接受到该DTMF信号后开始保存用户的留言。然而由于DTMF信号是通过SIP信令来传输的,而媒体流是通过RTP来传输的,有可能用户留言的RTP包先到,而该DTMF信号的INFO消息延迟,导致Server不保存用户的语音留言直至接受到INFO消息。