最も簡単な方法は何ですか?そして、それをどのように実装できますか?
私は次のようなことを考えました:
- Webサーバーにページをリクエストします
- PHPはアスタリスクにダイヤルする番号を送信します(phpとアスタリスクは同じマシンで実行されています)
- アスタリスクが電話をかける
また
- phpsipクライアントがリモートアスタリスクサーバーに登録します
- Php sipクライアントは、ダイヤルする番号をアスタリスクに送信します
- 電話が鳴る
何か聞こえても構わない、鳴るだけで十分
コールファイル
最も簡単な方法は、コールファイルを生成することです。アスタリスクには、スプールディレクトリを介してコールを開始する機能があります。
https://wiki.asterisk.org/wiki/display/AST/Asterisk+Call+Files
ヒントと注意:
別のディレクトリに呼び出しファイルを作成し、それをスプールディレクトリに移動する必要があります(アスタリスクはファイルをすぐに解析するため、コピーは使用しないでください。ただし、移動は安全です)。
呼び出しファイルは、ユーザーが所有している必要があります。アスタリスクは次のように実行されます。
アスタリスク(ファイルのutime())は、変更されたタイムスタンプをチェックし、変更されたタイムスタンプが将来のものである場合は、そのタイムスタンプの呼び出しをスケジュールします。
AMI-AsteriskManagerインターフェイス
スクリプト(AMI)を介して呼び出しを開始することもできます。manager.confでログイン(つまり、ユーザー名、パスワード)を設定する必要があります。ポート5038のアスタリスクサーバーIPでTelnetを使用してAMIをテストします。
Action: Login
Username: username
Secret: password
Action: Originate
Channel: SIP/123
Context: default
Exten: 012345678
Priority: 1
Callerid: AMICall
Action: Logoff
PHP-AMI( PHP-AGIに付属)を使用してダイヤルアウトすることもできます。
manager.confのセキュリティノート:
---------------------------- SECURITY NOTE -------------------------------
; Note that you should not enable the AMI on a public IP address. If needed,
; block this TCP port with iptables (or another FW software) and reach it
; with IPsec, SSH, or SSL vpn tunnel. You can also make the manager
; interface available over http/https if Asterisk's http server is enabled in
; http.conf and if both "enabled" and "webenabled" are set to yes in
; this file. Both default to no. httptimeout provides the maximum
; timeout in seconds before a web based session is discarded. The
; default is 60 seconds.
;
AJAM-非同期JavascriptAsteriskManager
AJAMは、httpを介してAsterisk Manager Interface(AMI)と通信するために有効にして使用できるWebサーバーです。