フリー・エンジニア
高橋隆雄 フリー・エンジニア
高橋隆雄

 前回は,SIP(session initation protocol)対応のIP電話機を2台使って通話できるシステムを設定した。最小限の構成であればそれほど難しくないことが分かっていただけたと思う。ひとたび動かしてしまえば,あとは追加や修正を施して,機能を加えたり変更したりできる。このあたりは多少とまどう点があるかもしれないので,本連載で順を追って解説していく。

 解説に入る前に,Asterisk関連の最新ニュースに触れておこう。以前,本連載で何度か取り上げているユーエフネットのG-LEXは(関連記事),Asteriskでの接続が可能なIP電話事業者だが,次世代G-LEXのβサイトが公開中である。

 さまざまな機能が追加されているが,Asteriskユーザーにとって,もっともうれしいのはAsteriskの独自プロトコルである「IAX2」(inter asterisk exchange 2)による接続がサポートされるようになったこと。これまではSIPだけしかサポートしていなかったため,NAT対応機器の背後にAsteriskを配置した場合には接続に問題が発生することもあった。だが,NAT越えが容易なIAX2がサポートされたことによって,これまで以上に多くの環境で050番号が使用可能になる。詳しくはhttp://join.g-lex.net/g2/cat_service/を参照してほしい。実際の接続方法については本連載でいずれ取り上げる予定だ。

 また7月は「Asteriskユーザ会」のイベントとして,「オープンソースカンファレンス2007 Kansai」で展示およびセミナーを実施した。やはりまだAsteriskに対する知名度は低く感じられた。展示ではコンパクトなx86系のアプライアンスを使用し,コンパクトフラッシュ起動のディスクレスシステムを用いてデモをしたが,皮肉にもハードウエアに注目が集まってしまった。詳しくはhttp://voip-info.jp/wiki2/index.php/Microclient_JRを参照していただきたい。

電話機を1台増やしたい

 さて,前回は2台の電話機を使った最小限の設定をしたが,さらにもう1台電話機を追加したい場合はどうすればいいのだろうか。これは社内などで使おうと思ったら誰しもが疑問に思う点だろう。一般的なPBXであれば,サポート担当者に来社してもらい工事してもらうことになるが,Asteriskは当然ながら自分で接続する電話機の台数を自由に増やせる。なお,ここでは前回の例と同様にSIPの電話機を追加するとして話をすすめる。

 前回の設定ファイル(sip.conf)をもう一度見てみよう。

[general]
maxexpirey=3600
defaultexpirey=3600
context=default
port=5060
bindaddr=0.0.0.0
srvlookup=yes
disallow=all
allow=ulaw
allow=gsm
language=jp
localnet=192.168.0.0/255.255.0.0

[201]
type=friend
username=201
secret=pass
canreinvite=no
host=dynamic
dtmfmode=auto
callgroup=1
pickupgroup=1

[202] <-- +
type=friend   |
username=202   |
secret=pass   | この個所
canreinvite=no   |
host=dynamic   |
dtmfmode=auto   |
callgroup=1   |
pickupgroup=1 <--+

リスト中の []から次の[]までが一つの電話機,つまりSIPのユーザーを定義するセクションだと説明した。すなわち電話機を増やすことは,このセクションを増やすことである。つまり内線番号203用に以下のようなセクションを追加すればよい。

[203]
type=friend
username=203
secret=pass
canreinvite=no
host=dynamic
dtmfmode=auto
callgroup=1
pickupgroup=1

 早い話が,他の電話機の定義部分からコピー&ペーストして,ユーザー名やパスワードだけを書き換えればよいのである。電話機の増設は,この方法で実に楽にできる。

 なおsip.confを書き換えたので,修正した後はCLI(コマンド・ライン・インタフェース)から“sip reload”コマンドを実行して再読み込みを行う必要がある。

 さて,この状態で3台の電話機で発信や着信を試してみると,面白い現象に気が付くはずだ。新しく追加した内線番号203の電話機から,201や202にはダイヤルできるが,逆に内線番号に201や202を割り当てた電話機から,203あてにはダイヤルできない。これは「SIPの203」を呼び出すルールが定義されていないからである。これを記述するのがダイヤルプランの中身となるextensions.confである。

 extensions.confも前回作成したものを見てみよう。

[general]
writeprotect=no

[default]
exten => 201,1,Dial(SIP/201,,tT)
exten => 201,n,Hangup

exten => 202,1,Dial(SIP/202,,tT)
exten => 202,n,Hangup

 こちらも一目瞭然である。201と202の設定がこのようになっているのだから,203の設定は次のように書けばよい。

exten => 203,1,Dial(SIP/203,,tT)
exten => 203,n,Hangup

 書き換えた後はCLIから“dialplan reload”コマンドを実行する。

 さて,この方法では内線を増設するたびにsip.confとextensions.confの両方を書き換えねばならないが,「パターンマッチング」を使うことで簡素化することができる。

exten => _20Z,1,Dial(SIP/20Z,,tT)
exten => _20Z,n,Hangup

 この2行をextensions.confに記述すると,内線番号201から209をこれだけで表すことができる。そのためsip.confを書き換えるだけで内線用電話機の追加ができる。