2

次のことを達成するための指示、サンプル コード、またはオンライン リソースを教えてください。

要件: スクリプト (Bash または Python) を実行する単純な IVR メニュー オプションを作成したいと考えています。たとえば、Asterisk マシンに電話して、別の Linux ボックスでサービスを再起動するように要求します。「他の Linux ボックス」の詳細は、IVR メニュー オプションにハード コードされており、IVR インタラクションの一部として提供する必要はありません。ボックス Y でサービス X を再起動するだけです。パスワード (バージョンでハードコードされている場合でも)。

背景: 私はアスタリスク初心者で、AsteriskNow ディストリビューションからインストールしましたが、まだ製品について学んでいます。基本的な PBX 機能は動作しており、FreePBX を通じて管理されています。アスタリスクは開発作業の主な焦点ではなく、ツールボックス内のツールです。私たちは主に .NET の作業を行っていますが、Unix のスキルも持っています。

可能であれば、仕事を成し遂げるためにアスタリスクの統合の詳細を学ぶのに何日も費やしたくありません...

4

3 に答える 3

4

アスタリスクは常にユーザー入力を待っているわけではありません。Background、WaitExten、Read コマンドの間のみ。Playback() を使用している場合、アスタリスクはオーディオ ファイルの再生中に DTMF を無視します。

Playback を Read() に置き換えることができますが、読み取りタイムアウトを非常に低い値に設定する必要があります。そうしないと、Read() で再生するすべてのオーディオ ファイルの後に無音になります。Read() を使用する場合は、ユーザーが入力した値をチェックして、終了を確認する必要があります。次のような...

それ以外の

exten => x,n,Playback(yourfile) 
exten => x,n,somethingelse...

あなたが必要

exten => x,n,Read(Exit,yourfile,1)
exten => x,n,GotoIf($["${Exit}" = "0"]?0,1) 
exten => x,n,somethingelse...
于 2010-09-04T12:47:12.577 に答える
2

Asterisk AGIページには、多くのプログラミング言語のアプリケーションへのリンクがあります。.NET を主に使用する場合は、nasteriskまたは古いMONO-TONEが役立つかもしれません。

于 2008-12-15T09:04:26.173 に答える
2

このためだけにアスタリスクをセットアップしますか、それとも、PBX、IVR などの他の機能を実行しますか?

アスタリスクで他のことをしている場合は、接続後にダイヤルできる非表示の内線番号 (IVR メニューで宣伝されていない内線番号) を設定します。この拡張機能では、発信者 ID を確認して自分の番号と比較し、自分だけがスクリプトを実行できるようにすることができます (PIN 番号を要求することでセキュリティを強化できるため、見つからない場合でも安心できます)。あなたの電話)。

このようなもの:

exten => 9999,1,GotoIf($["${CALLERID(num)}" = "yournumber"]?4)
exten => 9999,2,Playback(sorry)
exten => 9999,3,Hangup
exten => 9999,4,Read(Pin,please-enter-pin,4)
exten => 9999,5,AGI(your-script)

あなたのスクリプトでは Pin 変数をチェックし、それが有効な場合は実行し、そうでない場合は何もせずに終了します。この方法では、他の誰かが見る可能性のあるダイヤルプラン内のピンをハードコーディングする必要はありません...信頼できるマシンであれば、ダイヤルプランでピンを検証できます。

exten => 9999,5,GotoIf($["Pin" != "1234"]?2)
exten => 9999,6,AGI(your-script)

于 2009-02-20T18:59:32.500 に答える