DTMF在VOIP中的解決方案


雙音多頻DTMF(Dual Tone Multi-Frequency)信令,因其提供更高的撥號速率,迅速取代了傳統轉盤式電話機使用的撥號脈沖信令。DTMF也應用在交互式控制中,諸如語言菜單、語言郵件、電話銀行和ATM終端等。由於DTMF在傳統通信領域中的廣泛使用,所以在VOIP中,DTMF仍是發揮着重要的作用。

一個DTMF信號由兩個頻率的音頻信號疊加構成。每一對這樣的音頻信號唯一表示一個數字或符號。產生DTMF信號,就是利用兩個不同頻率的正弦波疊加以后形成的波形,解碼時則采用改進的Goertzel算法,從頻域搜索兩個正弦波的存在。有16種DTMF信號,0-9、*#ABCD。

DTMF在VOIP中的解決方案:

由於在IP網中的通信傳輸是采用包交換(packet switch)而不是傳統領域中的線路交換(circuit switch)以及IP網的不穩定的特性,DTMF在VOIP中應用的解決方案和傳統有所不同,並且暫時還未統一,有多種解決方案。

1.用SIP信令的INFO方法攜帶DTMF信號。

該方法是用SIP信令的INFO方法來明文定義來代表DTMF信號。該種方法還在研究討論當中,有專家認為其並不適用,主要缺陷是因為SIP控制信令和媒體傳輸(RTP)是分開傳輸,很容易造成DTMF信號和媒體包不同步。

簡單舉個例子,在 Voice Mail應用中,用戶根據提示音輸入一個DTMF信號,隨后開始留言。Server是在接受到該DTMF信號后開始保存用戶的留言。然而由於DTMF信號是通過SIP信令來傳輸的,而媒體流是通過RTP來傳輸的,有可能用戶留言的RTP包先到,而該DTMF信號的INFO消息延遲,導致Server不保存用戶的語音留言直至接受到INFO消息。

2.在RTP媒體傳輸中攜帶DTMF信號。

該方法是將DTMF信號和媒體流一樣,用RTP包來傳輸,因而沒有DTMF信號和媒體流不同步的問題,使用H323信令的VOIP就是采用該種方法,相對來說比較成熟。

而其中又分In band和Out of band(RFC2833)兩種。

In Band DTMF:In Band DTMF是指直接將DTMF的音頻數字信號不經任何處理直接打成RTP包在IP網中傳輸。其中可能和用戶的語音媒體流混合(mix)在一起傳輸。程序要獲知哪個包有DTMF信號,是什么DTMF信號,必須實時檢查每個RTP包里面的媒體流數據,分析它的頻域。

Out of Band DTMF(RFC 2833):Out of Band DTMF是DTMF信號用專門的RTP包進行標識,在RTP包的頭域中就可得知該包是DTMF包,並且知道是什么DTMF信號。RFC2833專門對此有定義。

3.動態生成DTMF音頻信號

當程序需要產生一個DTMF音頻數字信號時,當然可以讀取已經錄制好的文件。

4.根據RTP包中的音頻信號檢測DTMF信號

在輸入信號中檢測DTMF信號,並將其轉換為實際的數字,這一解碼過程本質是連續的過程,需要在輸入的數據信號流中連續地搜索DTMF信號頻譜的存在。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM