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

Asteriskで電話番号などの設定を行うには二つの方法がある。ここでは広く使われている設定ファイルによる方法を紹介する。変数機能などをうまく使うことで、電話が増えたときの設定を省力化できる。

・Asterisk関連のニュース

 最近、本連載ではなるべくタイムリーな話題を取り入れるべくAsterisk関連のニュースをお届けしているが、IT Proのページを見ていただくとおわかりのように、本連載以外でもAsteriskが話題にのぼることが多くなってきた。Asteriskの知名度がいかに上がり、ビジネスとして浸透しはじめているかの現れであろう。

 さて残念ながらAsterisk 1.4のリリースは日本時間の11月2日現在では「まだ」の状態である。前回アナウンスがあった10月というのは、どうやら無理だったようだ。1.4系の現在のバージョンは10月19日(現地時間)の1.4.0-beta3で、今現在もまだβテスト段階にありRC(Release Candidate)のレベルには至っていないようだ。

 なお現時点の正式リリースであるAsterisk 1.2系も同日(10月19日)付けでAsterisk 1.2.13が、旧バージョンの1.0系も1.0.12がリリースされている。これはchan_skinny(Cisco SCCP対応チャネル)のセキュリティ・フィックスのためである。

・ダイヤル・プラン

 前回はSIP電話機をAsteriskに接続する方法について説明したので、今回はまずそのSIP電話機に対して、どうダイヤルするかを解説することにしよう。

 Asteriskにおけるダイヤル・プラン(番号計画)はAsteriskの設定ファイル、extensions.conf(/etc/asterisk/extensions.conf)で行われる。このファイルはまさにダイヤル・プランそのもので、このファイルの記述方法と挙動を理解することがAsteriskを理解することに繋がるといっても過言ではない。

 ただし、Asterisk 1.2系からはAsterisk Extensions Language(AEL)と呼ばれる記述方法を使うこともでき、ダイヤル・プランの書き方が2種類あることになった。しかしながら1.0系からの移行互換性の問題などから、いまだextensions.confを使うのが一般的であることとAELは新しい記述方法であること、AELが登場してからまだそれほど広範に使われていないことから、本連載ではextensions.confを使った記述を解説することにする。

 1.2系で採用されたAELと聞くと、何だか良さそうな新機能に思えるが、実は従来のextensions.confの書き方も拡張されており、今では使いやすいものとなっている。これら2種類の書き方が果たして統合されるのか、あるいはどちらか一方になるのかというのは現時点では全く見えていない。ただし前述のように、これらは書き方が2種類あるだけのことで並存させて使うこともできるし、結合して使うこともできる。実際には好きな方を使えば良い。筆者の好みでいうと、まだextensions.confの方が書きやすいというところだろうか。

 さて、実際の書き方はすでにインストール済みであるはずのサンプル設定ファイル見てもらうのが一番わかりやすい。現在、筆者が配布しているサンプル設定ファイルでは以下のような記述があるはずだ。

exten => _20Z,1,Dial(SIP/${EXTEN}&IAX2/${EXTEN},60,tT)

 これ以外にもいろいろな設定があるが、まずはこの部分に注目してほしい。ダイヤル・プランの基本的な書き方はこのようなものである。この設定をもっと簡単な例になおすと以下のようになる。

exten => 201,1,Dial(SIP/201)

 これはSIP電話機に対してダイヤルする場合のもっとも基本的な例。内線番号201はSIP電話機の「201」で、それに対してダイヤルするという意味である。exten => で書かれたものの意味は次のようになる。

exten => 内線番号,プライオリティ,コマンド(アプリケーション)

 内線番号は見ての通り、ダイヤルされた場合に呼び出される番号で、プライオリティはその処理順序を指定する。基本的にこの実行順序は1、2、3、…となるが、このプライオリティの記述方法もAsteriskの重要な点なので、また詳しく解説することにしよう。ここでは一つだけのプライオリティしかないので「1」と書いてある。その後に続くのが“何をやるか”というコマンドないしはアプリケーションである。