4

帯域内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"/>

私を助けてください。

4

4 に答える 4

3

古い質問ですが、答えをもう一度試す価値があります。

予測

私は、user/6888 が dtmf 数字の発信者であるという 1 つの仮定を立てています。

問題

呼び出しベースのアプリケーションで覚えておくべき重要なことは、呼び出しレッグ/チャネル、呼び出し先、呼び出し元、または a-leg、b-leg を処理することです。これは、「start_dtmf」など、レッグ固有の (つまり、1 つのレッグでのみ有効な) ダイヤルプラン ベースのアプリケーションを実行する場合に非常に重要です。ドキュメント、特に次の行を参照してください。

上記の start_dtmf 行は、このチャネルで start_dtmf アプリケーションを開始して、DTMF 検出を可能にします。

あなたの例では、start_dtmf アプリケーションは、ブリッジされた内線ユーザー/6888 ではなく、6000 を呼び出したユーザーをリッスンしています。freeswitch の例が機能するのは、IVR にダイヤルインしていて、着信発信者が dtmf 番号を押しているためです。

解決

もう一方のレッグで start_dtmf アプリケーションを設定するには、 exec_after_bridge アプリケーションを調べます

<action application="set" data="exec_after_bridge_app=start_dtmf"/>
于 2011-07-29T04:33:59.773 に答える
0

それが機能していないことをどのように知っていますか?

1) 電話パスがインバンド DTMF を使用していることを確認してください。このテスト コールには、どのような種類の SIP ユーザー エージェントまたは電話が含まれていますか? 通常、ソフトフォンには DTMF 設定を変更するオプションがあります。

2) コンソール ログを DEBUG に設定して、DTMF が認識されるかどうかを確認してください。通常、FreeSWITCH コンソールで F8 キーを押すと、DEBUG で設定できます。

チャオ!

于 2010-06-24T09:06:53.083 に答える