PBX としての Asterisk の動作設定を行う。
前回同じく、ほとんどの手順は参考書「Asterisk でつくる IP 電話システム」に書かれている通りである。
Asterisk の設定ファイルは /etc/asterisk に格納されている。インストール時にサンプルファイルが作成されるので、必要なファイルのみ変更すれば良い。今回変更するのは sip.conf と extensions.conf の2ファイルのみ。sip.conf は SIP 対応のハード/ソフト電話を使う場合に設定するファイルで、今回は SIP ソフトフォンを試す予定なので設定が必要。extensions.conf は Asterisk の中核とも言える設定ファイルで、PBX のダイヤルプランを定めるため環境に合わせた設定が必要である。
まずは、念のためにサンプルファイルをバックアップしておく:
# cd /etc/asterisk # mv sip.conf sip.conf.bak # mv extensions.conf extensions.conf.bak
参考書に従って、sip.conf ファイルを以下の通り作成する。この設定では 2001 番と 2002 番の2つのSIP端末を定義している。
[general] context=default bindport=5060 bindaddr=0.0.0.0 srvlookup=yes disallow=all allow=ulaw allow=alaw allow=gsm allow=ilbc dtmfmode=inband [2001] type=friend username=2001 secret=12345 host=dynamic canreinvite=no dtmfmode=rfc2833 [2002] type=friend username=2002 secret=67980 host=dynamic canreinvite=no dtmfmode=inband
同じく参考書に従って、extensions.conf ファイルを以下の通り作成する:
[general] static=yes writeprotect=yes autofallthrough=yes [default] exten => 2001,1,Dial(SIP/2001,30) exten => 2001,2,Hangup exten => 2002,1,Dial(SIP/2002,30) exten => 2002,2,Hangup exten => 2003,1,Dial(Zap/1,30) exten => 2003,2,Hangup
asterisk を再起動して新しい設定を適用すれば準備完了。
# /etc/init.d/asterisk restart
これで Asterisk が IP-PBX として動作するようになったはずなので、次は実際に通話してみよう。
補足: 参考書では zapata.conf ファイルも設定しているが今回は必要ない。zapata.conf ファイルは、Zapata Telephony ドライバ経由でアナログ電話回線等を扱うための設定ファイルである。参考書では TDM400P+FXS でアナログ電話機を接続するケースを想定して以下のファイルを作成している。
[channels] signalling=fxo_ks echocancel=yes echotraining=400 callerid=2003 callwaiting=yes threewaycalling=yes transfer=yes group=1 context=default channel=>1 signalling=fxo_ks echocancel=yes echotraining=400 callerid=asreceived busydetect=yes busycount=4 group=2 context=incoming channel=>4
僕の環境ではアナログ電話機は接続しないのだが、当初は参考書通りに上記ファイルを作成した。設定ファイルがあっても実機が無ければ無視されるだけだろうと甘く考えていたのだけど、実際には Asterisk が起動に失敗するという大問題になり、結局設定ファイルをサンプルに戻すことで解決。
Asterisk ではシステムエラー等のログは /var/log/asterisk に吐き出される。内容を見てみると、実機無しで zapata.conf ファイルを設定すると「Unable to open channel 1」というエラーが発生する。ちなみに zapata.conf ファイルが存在しないと「Unable to load config zapata.conf」というエラーが発生して同じく Asterisk の起動に失敗する。Zapata Telephony ドライバを使う機器を用いない場合も設定ファイルは存在しなければならないようだ。