2010-06-16 71 views
1

我已經讀過關於freeswitch中用於檢測帶內dtmf的start_dtmf應用。 我測試過了,但沒有檢測到任何DTMF。Freeswitch:start_dtmf沒有檢測到DTMF

<extension name="dtmf_test"> 
<condition field="destination_number" expression="^6000$"> 
<action application="answer"/> 
<action application="start_dtmf"/> 
<action application="bridge" data="user/6888"/> 

請幫幫我。

回答

0

你怎麼知道它不工作?

1)確保電話路徑正在使用帶內DTMF 此測試呼叫涉及哪種SIP用戶代理或電話?軟電話通常可以選擇更改DTMF設置。

2)務必將您的控制檯日誌設置爲DEBUG以查看DTMF是否得到識別。 通常您可以在FreeSWITCH控制檯上按F8鍵將其設置爲DEBUG。

Ciao!

+0

在Mac書中什麼是F8鍵? – YumYumYum 2015-03-04 07:55:53

+1

@YumYumYum在FreeSwitch控制檯中輸入'console loglevel DEBUG'來設置日誌級別爲debug。 F8只是該命令的Windows快捷方式 – tdragon 2017-01-05 10:49:48

2

老問題,但值得在答案的另一個鏡頭。

假設

我做一個假設,即用戶/ 6888是雙音多頻數字的鼻祖。

問題

與任何基於調用的應用程序需要記住的重要一點是,它在呼叫線路/通道,被叫,主叫或者腿,B-腿交易。

上面列出的start_dtmf行啓動:執行是腿部特定(即只用一條腿啓用),像「start_dtmf」,看到,指出documentation特別是基於行的撥號方案應用程序時,這是非常重要的start_dtmf應用程序通道允許進行DTMF檢測。

在您的示例中,start_dtmf應用程序正在偵聽呼叫6000的用戶,而不是橋接的分機用戶/ 6888。 freeswitch示例工作,因爲它撥入IVR,並且來電者按下dtmf數字。

解決方案

要設置在另一條腿上的start_dtmf應用程序,你想看看exec_after_bridge application

<action application="set" data="exec_after_bridge_app=start_dtmf"/> 
0

我覺得mod_spandsp的帶DTMF檢測比內置FreeSWITCH的檢測更加可靠。此外,我發現它不適用於Windows,只能在Linux上運行。