2011-12-05 4 views
0

私は非常に奇妙な問題があり、どこから見始めるべきか分かりません。アスタリスクのDTMFが無視されることがあります(ただし、一部の人のみ)

私たちはAGIとJavaライブラリを使用してIVRを提示していますが、ユーザーからのキー押下が無視されているという苦情を受けています。 一般セクションの下で、私はこのように定義されたDTMFを持っている私のsip.conf

、(「リラックス」の行はコメントアウトされている):私はプロバイダに確認してきました

dtmfmode = rfc2833 
;relaxdtmf=yes 

rfc2833である必要があります。

私は私のメッセージファイルに私のlogger.confDTMFデバッグレベルをオンに:こと

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 

事実を:私は今、これらのような行を参照してください

messages => notice,warning,error,dtmf 

それは「無視された」と私が気にしていますが、これは望ましくない行動であることを示す情報やフォーラム投稿を読んだことはありません。

入力を受け取る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; 

私はこの1つを犠牲にしています。特に誰にも起こらないからです。どこで私はこのようなものを探して/デバッグするでしょうか?

ありがとうございます!

+0

クイックアップデート:「relaxdtmf」の行のコメントを外してyesに設定しました。ログファイルを見て、まだ入力が無視されているかどうかを確認します。 – aimzies

+0

プロバイダが終了時に変更を加えたため、問題が解決していないようです。私はまだ原因(または解決策)を知らない。 – aimzies

答えて

0

はい、信号がプロバイダから送受信されるため、一般的にはプロバイダー側​​から来ています。常に異なるdtmfモードを試してみてください。

関連する問題