ダイヤルプラン基礎
ダイヤルプランとは、電話発信・着信時にAsteriskをどのように動作させるかを定めた計画のことです。
Asteriskでは基本的に「extensions.conf」に動作を記述していくことになります。
電話での通話を実現する前に、今回の記事では、ダイヤルプランの最も基礎的な部分を紹介していきます。
※本記事を参照いただく前に、「Asterisk設定入門(sip.conf)」に記載してあるとおりに「sip.conf」を編集してください。
Asteriskで”Hello World”
ダイヤルプランを記述していく行為は、プログラミングをしていることと変わりないと言えます。
そのため習得するまでに長い道のりが待っています。
プログラミング言語を学んだことがある方はおなじみかと思いますが、プログラムを組む上で、一番初めに作成するものが”Hello World”プログラムであり、それは慣習化されていると言っても過言ではありません。
当サイトでもその慣習にのっとり、一番初めに”Hello World”を例にして紹介していきます。
まずは「extensions.conf」に下記のように記述してください。
# vi /etc/asterisk/extensions.conf
[default] exten => 202,1,Answer() exten => 202,2,Playback(hello-world) exten => 202,3,Hangup()
保存してファイルを閉じたら、Asteriskを再起動させて今回編集した分を反映させます。
/etc/rc.d/init.d/asterisk restart
Asteriskを再起動させたら、X-LiteのSIPアカウントを「201」と設定し、Asteriskにレジストしてください。
詳細 → X-Lite4.0 アカウント設定
では、X-Liteから内線番号「202」に電話をかけてみます。
「Hello World」という声が聞こえましたでしょうか。
うまくいかなかった場合は、もう一度、設定ファイルを見なおしてみてください。
また、ファイアーウォールソフトが邪魔をしていないかどうかも確認しください。
アプリケーション
ダイヤルプランの構文については以前の記事で紹介していますので割愛しますが、今回はAsteriskが持っているアプリケーションについて詳しく見ていきます。
上記サンプルでは3つのアプリケーションを呼び出しています。
アプリケーション | 機能 |
---|---|
Answer() | 着信に応答する。 |
Playback() | サウンドファイルを再生する。 |
Hangup() | 通話を切断する。 |
通常、着信に対する応答は鳴動中の電話機の受話器を上げること(オフフック)で行いますが、Answer()アプリケーションを使用することでAsteriskが自動的に応答し、通話状態に移行させることができます。
Playback()アプリケーションは、用意されたサウンドファイルを再生するために使われます。
再生するサウンドファイルは、ファイル名(拡張子なし)を引数とすることで指定できます。
Asteriskには、多数のサンプルサウンドファイルが用意されており、今回再生させた「hello-world」もそのひとつです。
最後のHangup()アプリケーションは、名称どおり、通話を切断するときに使用します。
上記サンプルでは、「hello-world」の再生が終わったら通話が自動的に切断されます。
それはHangup()アプリケーションにより明示的に切断させているためです。
作成した音声を再生する
続いて、前回の記事で作成したサウンドファイルを再生させてみます。
まずは作成したサウンドファイルを下記のパスに保存してください。
(サウンドファイルが格納されたデフォルトのパスになります。ただし環境によっては異なる場合もあります。)
/var/lib/asterisk/sounds/en
では、「extensions.conf」に下3行を追加してください。
[default] exten => 202,1,Answer() exten => 202,2,Playback(hello-world) exten => 202,3,Hangup() exten => 203,1,Answer() exten => 203,2,Playback(test) exten => 203,3,Hangup()
保存が終わったら、先ほどと同じようにAsteriskを再起動させ、今度は「203」をダイヤルしてください。
作成した音声が再生されるはずです。