これに対する具体的な答えが見つかりませんでした。私はアスタリスクとAMIの初心者です。アスタリスクを使用して呼び出しを自動生成し、パラメーターをAGIプログラムに渡す必要があります。呼び出しファイルを使用すると、不要な呼び出しが最初に生成されるようです。では、アスタリスクAMI API(PHP)を使用して、すべてのパラメーターを渡すことにより、AGIを含むダイヤルプランを実行するにはどうすればよいですか?したがって、AGIが引き継ぎ、電話をかけます。
2 に答える
あなたの場合、呼び出しファイルを使用する方が実際には簡単だと思います。理由は次のとおりです。
- AMI では、ネットワーク化されたコードを作成する必要がありますが、これは (初心者の場合) シンプルなテキスト ファイル (Call Files) を作成するのが非常に難しくなります。
- コール ファイルを使用すると、ダイヤルプラン コードで使用できる変数をアスタリスクに渡すことができます。
- 呼び出しファイルは非常に単純です。
以下は、呼び出しファイルを使用してそれを行う簡単な方法の完全な例です。関連するコメントで説明するために最善を尽くしました。
まず、変数を使用し、AGI スクリプトを呼び出すダイヤルプラン コードがあると仮定します (これは、質問に基づいて実行していると想定しています)。つまり、extensions.conf
ファイルに次のようなコードが含まれることになります。
[test_stuff]
exten => s,1,NoOp(starting test!)
exten => s,n,NoOp(my variable's value is: ${somevar})
exten => s,n,NoOp(my other variable's value is: ${some_other_var})
exten => s,n,AGI(/path/to/my/script.sh,${somevar})
exten => s,n,NoOp(i just ran an AGI script and passed it a command line argument!)
exten => s,n,Hangup()
以下は、次のような呼び出しファイルです。
- 一時ディレクトリ (おそらく ) に作成する必要があります
/tmp/
。 - 保存したら、
/var/spool/asterisk/outgoing/
(例:mv /tmp/blah.call /var/spool/asterisk/outgoing/
) に移動して実行できます。 - 通話ファイルは、電話番号 818-222-3333 への発信をすぐにダイヤルします。
818-222-3333 の担当者が通話に応答すると、Asterisk はすぐに [test_stuff] ダイヤルプラン コードの実行を開始し、通話ファイルに設定された変数を使用できるようにします。
チャネル: SIP/trunkname/18182223333
コンテキスト: test_stuff
拡張子:s
優先度: 1
セット: somevar=hithere
セット: some_other_var=woot
それが役立つことを願っています!
あなたの問題は、例えばローカルチャンネルの助けを借りて解決することができます
次のダイヤルプランを使用している間、通話ファイルLocal/1812222222@test_stuff
でチャネルとして使用
[test_stuff]
exten => _X.,1,NoOp(starting test!)
exten => _X.,n,Set(phone=${EXTEN})
exten => _X.,n,AGI(/path/to/my/billing,${phone},${other_variables_account_etc..})
exten => _X.,n,Dial(SIP/trunkName/${phone})
この方法は、インターフェイス AMI または .call ファイルの両方で使用できます。