2

私の目的:クライアント(SIP電話、私は3CX電話を使用)がアスタリスクサーバーにダイヤルし、アスタリスクが外部リレーショナルデータベース(アスタリスクサーバーと同じ場所にない)に接続し、データベースが何かを応答した場合、アスタリスクサーバーは音声ファイルを再生します(事前定義された .gsm ファイル) を応答クライアントに送信します。

私がすでに持っているもの:VirtualBoxにAsteriskNowをアスタリスクサーバーとしてインストールしました。クライアントはソフトフォンを使用して、SIPチャネルでアスタリスクサーバーに接続しています。クライアントがアスタリスク サーバーにダイヤルすると、サーバーはダイヤルプランを実行できます。

私の質問: アスタリスク サーバーが外部データベース (MySQL など) への接続を確立したい場合。要求データにアクセスするには、dialplan に AGI スクリプトを呼び出させる必要がありますか? もしそうなら、PHP で AGI スクリプトを作成する方がはるかに簡単ですか? そうでない場合、mysql に接続するにはどうすればよいですか? ODBC を使用していますか?

他のプログラミング言語を使用せずに、dialplan を使用してアスタリスク サーバーのデータを操作することは可能ですか? しかし、dialplan は他のプログラミング言語のように完全な構文をサポートしていないようです。

4

3 に答える 3

3

ODBCアスタリスクで使用できます。アスタリスクを に接続することもできますMicrosoft SQL Server。ログデータをアスタリスクに保存したい場合は、 または を使用してCELイベントCDRを受け取ることができますAMI。ただし、アスタリスクに特別なタスク (動的) を実行させたい場合は、 を使用することをお勧めしますAGI。お役に立てば幸いです。

于 2012-09-21T04:45:08.807 に答える
1

いいえ、AGIスクリプトは必要ありません。

最も簡単な方法は、ダイヤルプランでfunc_odbc(odbcを介してユーザー定義のSQL関数)を使用することです。

ところで、diallplanは他のプログラミング言語と同じように完全な言語です。ダイヤルプランを介してのみ何でもできます。しかし、すべてが効果的であるとは限らず、多くの経験が必要です。

于 2012-09-24T14:27:45.953 に答える
1

AsteriskはMySQLまたはその他のデータベースを使用して請求情報を保存できますが、タスクには、さまざまな副ファイルを再生するためにAGIを使用する必要があります。AGIは、さまざまな言語やライブラリを使用できるため、非常に柔軟性があります。私はAGIスクリプトにPythonを使用していますが、他のスクリプトはC、Perl、Javaを使用しています。これらの言語の例は、Asterisk wikiにあります:http ://www.voip-info.org/wiki/view/Asterisk+AGI

もちろん、AGIプログラムからデータベースに接続するか、HTTP / SOAP/RESTを使用して他のソフトウェアと統合することができます。

于 2012-09-21T06:40:08.860 に答える