0
我有一個很奇怪的問題,甚至不知道從哪裏開始看。星號DTMF有時會被忽略(但只限於某些人)
我們正在使用AGI和Java庫來呈現IVR,但已經從用戶那裏得到他們的按鍵被忽略的抱怨。
在我sip.conf,下一般部分,我有這樣的定義的DTMF(以下簡稱「放鬆」行被註釋掉):
dtmfmode = rfc2833
;relaxdtmf=yes
我已經與供應商確認它應該是rfc2833,因爲這是他們專門爲我們配置的。
我打開DTMF調試級別在我logger.conf我消息文件:
messages => notice,warning,error,dtmf
我現在看不出紋路像這樣:
DTMF[8744] channel.c: DTMF begin '1' received on SIP/veracity-00005052
DTMF[8744] channel.c: DTMF begin ignored '1' on SIP/veracity-00005052
DTMF[8744] channel.c: DTMF end '1' received on SIP/veracity-00005052, duration 270 ms
DTMF[8744] channel.c: DTMF end passthrough '1' on SIP/veracity-00005052
DTMF[8741] channel.c: DTMF begin '1' received on SIP/veracity-00005056
DTMF[8741] channel.c: DTMF begin ignored '1' on SIP/veracity-00005056
DTMF[8741] channel.c: DTMF end '1' received on SIP/veracity-00005056, duration 415 ms
DTMF[8741] channel.c: DTMF end passthrough '1' on SIP/veracity-00005056
事實上,它說,「忽略」關注我,但我沒有閱讀任何信息或論壇帖子,表明這是不受歡迎的行爲。
接收輸入的Java代碼如下所示。基本上它可以讓鍵返回數字,或者 - 如果它爲零 - 重播菜單。
char key = 0;
if (validOptions.contains("1"))
key = agiChan.streamFile(menu("menu1"), validOptions);
if (validOptions.contains("2") && key == 0)
key = agiChan.streamFile(menu("menu2"), validOptions);
if (validOptions.contains("3") && key == 0)
key = agiChan.streamFile(menu("menu3"), validOptions);
if (!validOptions.contains("1") && !validOptions.contains("2") && key == 0)
key = agiChan.streamFile(menu("menu4"), validOptions);
if (key == 0)
key = agiChan.waitForDigit(5000);
return key;
我對這件事感到迷茫,特別是因爲它不適合每個人。我甚至會在哪裏開始尋找/調試這樣的東西?
預先感謝您!
快速更新:我取消註釋了「relaxdtmf」並將其設置爲yes的行。我會看日誌文件,看看我是否仍然忽略輸入。 – aimzies
我們的供應商對他們的結局做出了改變,問題似乎消失了。我仍然不知道原因(甚至是解決方案)。 – aimzies