2

ユーザーが電話を使用してメールボックスにアクセスできるようにするアプリケーションを開発しています。ユーザーがメールを取得するために使用する IVR メニューを開発しました。具体的には、メールを取得するために perl で AGI を作成します。問題は、AGI の実行に非常に長い時間がかかることです。この目的のために、AGI の実行中にバックグラウンドで再生される音楽をユーザーに聞かせる必要があります。つまり、ダイヤルプラン内の「AGI」と「MusicOnHold」アプリケーションを同時に実行する必要があります。どうすればこれを達成できますか?

4

3 に答える 3

1

アプリケーションから発行し、計算を処理してSET MUSIC ONから、を発行できます。AGISET MUSIC OFF

音楽を中断可能にしたい場合は、次のコマンドを発行します。

CONTROL STREAM FILE <filename> "0123456789*#" "0" "" "" ""

2番目のパラメーターは、音楽を中断できる数字のリストです。

コマンドを混在させたりダイヤルプランしたりしないことをおAGI勧めします。

AGIは、ダイヤルプランで可能なすべての機能を備えていますがAGI、本格的なプログラミング言語で実装されているため、実行ロジックをより細かく制御できます。

于 2009-05-30T19:02:34.843 に答える
1

これはあなたが期待した答えではないかもしれませんが、電話で何かを行うための適切なアプリケーションを作成する予定がある場合は、アスタリスク以外のソリューションを検討してください。yate と (私の知る限り、これを真剣に試したことはありません) freeswitch はどちらも、より非同期のインターフェイスを実装しており、制御を失うことなく、必要な音源に着信を接続できます。高度なアプリケーションには、より良い選択かもしれません。

アスタリスクは単純なロジックには適していますが、バックグラウンドで何らかの処理が必要な場合や、呼び出しを未定義の状態のままにしておくと、管理が非常に難しくなります。

于 2009-05-30T17:44:38.647 に答える
0

完全な実行には長い時間がかかりますか、それともアプリを起動するだけですか?実行全体に時間がかかりすぎる場合は、Quassnoiの言うことを実行し、AGIプログラムが開始したらすぐに音楽を開始できます。

起動時間が問題になる場合は、FastAGIを使用して何かを実装する必要があります。これにより、アプリは常に実行され、ソケットを介した接続をリッスンします。AGI呼び出しが多い環境では、パフォーマンスが大幅に向上します。

于 2009-06-05T17:45:08.277 に答える