自動発信
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に移ります。