自動発信

提供: VoIP-Info.jp
移動先: 案内検索

Asteriskから自動発信させる方法です。この機能を使うことで自動的にAsteriskが『どこか』にダイアルして勝手に通話(!?)したりという動作を行えます。

コール用ファイル

以下のようなファイルを作ります。

#
Channel: SIP/201
MaxRetries: 3
RetryTime: 60
WaitTime: 30
Context: default
Extension: 300
Priority: 2

Channelは呼び出すチャネル名です。外線発信するならばextensions.confで記述するのと同様にZap/番号、などの指定を書きます。この例ではSIP/201を呼び出します。
MaxRetries等はその通り何回リトライするかなどの設定です。デフォルトは0回(最初の発信のみでリトライしない)。
Contextはこのチャネル接続をどのコンテキスト内で行うかを指定します。
Extensionは接続するチャネルの『相手』を指定します。ダイアルプランでかまいませんので、IVRメニュー等のextenでもかまいません。この例では[default]の300番を指定しています。

ファイルの投入

ファイルを作成したならば /var/spool/asterisk/outgoing/ ディレクトリへ移動します。コピーだとコピー途中のファイルを読んでしまうことがあるので、mvで移動が適切です。この際ファイルのパーミッションに注意してください。Asteriskをroot以外で実行している場合にはファイルのオーナやアクセス権を適切に設定しておく必要があります。
ファイルが投入されるとAsteriskはこれを見つけ、その内容に応じて勝手にダイアルします。上の例のファイルをサンプル設定ファイルで使うと、SIP/201 の電話機を呼び出し、MeetMeに接続します。201の電話を取るとMeetMeのメッセージが聞こえるはずです。

外部アプリケーション連携

つまり適切なファイルを作成し、outgoing/ ディレクトリにそのファイルを投入するとAsteriskが自動でダイアルし指定されたextenと接続しますので、外部のアプリケーションからAsteriskに発呼させることができます。例えばWebから何かをダイアルするということも簡単に行えるわけです。

補足

ファイルは直接、/var/spool/asterisk/outgoing/ディレクトリ上で作成してはいけません。中途半端なファイルであってもAsteriskは読み取ってしまいます。
ファイルは別なディレクトリ上で作成し、パーミッションを設定した後、mvコマンドでディレクトリに投入するようにします。 ファイルのユーザ、グループともにAsteriskの実行ユーザID、グループとあわせる必要があります。

呼が終了するまでファイルはoutgoingディレクトリに留まり、呼が終了すると削除または"Archive: yes"を指定してあるとoutgoing_doneに移ります。