私は非常に奇妙な問題があり、どこから見始めるべきか分かりません。アスタリスクのDTMFが無視されることがあります(ただし、一部の人のみ)
私たちはAGIとJavaライブラリを使用してIVRを提示していますが、ユーザーからのキー押下が無視されているという苦情を受けています。 一般セクションの下で、私はこのように定義されたDTMFを持っている私のsip.confで
、(「リラックス」の行はコメントアウトされている):私はプロバイダに確認してきました
dtmfmode = rfc2833
;relaxdtmf=yes
rfc2833である必要があります。
私は私のメッセージファイルに私のlogger.confに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
事実を:私は今、これらのような行を参照してください
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つを犠牲にしています。特に誰にも起こらないからです。どこで私はこのようなものを探して/デバッグするでしょうか?
ありがとうございます!
クイックアップデート:「relaxdtmf」の行のコメントを外してyesに設定しました。ログファイルを見て、まだ入力が無視されているかどうかを確認します。 – aimzies
プロバイダが終了時に変更を加えたため、問題が解決していないようです。私はまだ原因(または解決策)を知らない。 – aimzies