ユーザーが電話を使用してメールボックスにアクセスできるようにするアプリケーションを開発しています。ユーザーがメールを取得するために使用する IVR メニューを開発しました。具体的には、メールを取得するために perl で AGI を作成します。問題は、AGI の実行に非常に長い時間がかかることです。この目的のために、AGI の実行中にバックグラウンドで再生される音楽をユーザーに聞かせる必要があります。つまり、ダイヤルプラン内の「AGI」と「MusicOnHold」アプリケーションを同時に実行する必要があります。どうすればこれを達成できますか?
3 に答える
アプリケーションから発行し、計算を処理してSET MUSIC ON
から、を発行できます。AGI
SET MUSIC OFF
音楽を中断可能にしたい場合は、次のコマンドを発行します。
CONTROL STREAM FILE <filename> "0123456789*#" "0" "" "" ""
2番目のパラメーターは、音楽を中断できる数字のリストです。
コマンドを混在させたりダイヤルプランしたりしないことをおAGI
勧めします。
AGI
は、ダイヤルプランで可能なすべての機能を備えていますがAGI
、本格的なプログラミング言語で実装されているため、実行ロジックをより細かく制御できます。
これはあなたが期待した答えではないかもしれませんが、電話で何かを行うための適切なアプリケーションを作成する予定がある場合は、アスタリスク以外のソリューションを検討してください。yate と (私の知る限り、これを真剣に試したことはありません) freeswitch はどちらも、より非同期のインターフェイスを実装しており、制御を失うことなく、必要な音源に着信を接続できます。高度なアプリケーションには、より良い選択かもしれません。
アスタリスクは単純なロジックには適していますが、バックグラウンドで何らかの処理が必要な場合や、呼び出しを未定義の状態のままにしておくと、管理が非常に難しくなります。
完全な実行には長い時間がかかりますか、それともアプリを起動するだけですか?実行全体に時間がかかりすぎる場合は、Quassnoiの言うことを実行し、AGIプログラムが開始したらすぐに音楽を開始できます。
起動時間が問題になる場合は、FastAGIを使用して何かを実装する必要があります。これにより、アプリは常に実行され、ソケットを介した接続をリッスンします。AGI呼び出しが多い環境では、パフォーマンスが大幅に向上します。