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

 前回の大館市の記事に対する意見として,「Asteriskをインストール/運用できるのは,ごく一部のスキルの高いユーザだけである」といった声をよく聞いた。はたしてAsteriskはそこまで難しいものであるのだろうか?

 実はAsteriskはそれほど難しくはない。ごく基本的なLinuxとネットワークの知識さえあれば,インストールして動作させることができる。もちろん,これは大規模なシステムでも,難なく動かせるという意味ではない。大規模システムの場合には,一般的なサーバーでもそうだが,別の観点からの知識やスキルが要求されるからだ。今回はAsteriskは“難しくない”という視点から,実際の設定例を交えて解説していこう。

どの程度のスキル・レベルが必要なのか?

 この質問はよくされるものだ。この問いに対して筆者は,本連載の中でも何度か述べているように「Apache(httpサーバー)がソースからインストールできて設定できれば十分」と答えている。もう一段,要求スキルを下げるなら,「Apacheをパッケージからインストールして設定できる」と言ってもかまわないかもしれない。最近では,RPM(Redhat Package Manager)形式のAsteriskのパッケージも配布されているからだ。

 ソースからのインストールを「難しい」と感じる人は少なくない。だが,これはやってみれば分かるが,ほとんどの場合,あっけなくインストールは終わる。もちろん,事前に要求されるパッケージ類が入っていない場合はトラブルになることも少なくないが,Asteriskが要求するパッケージ類はそれほど多くない。ほとんどのLinuxディストリビューションで“サーバー”スタイルのインストールをしていれば勝手に入っているレベルである。

設定ファイルの「分かりにくさ」

 Asteriskの設定ファイルは分かりにくい。このことは筆者も否定しない。これはAsteriskが多数の機能を備えており,それぞれの機能毎に設定ファイルを持っているのが一因である。しかしながらAsteriskの構造を理解してしまえば,それほど難しい話ではない。

 Asteriskをデフォルトでインストールすると,約74もの設定ファイルがインストールされる。これはデフォルトの設定では様々な機能をデモンストレーションするために,多くの設定ファイルが用意されているからだ。これに対して筆者が配布しているサンプル設定は,そのファイル数が25程度である。ある程度の機能に絞り込んでいるためだ。それでもまだファイル数が多いと感じる人がいるかもしれない。

 Asteriskの内部構造は図1のようになっている。あくまでも図1は概念を分かりやすく示したもので,正確な内部構造を表すわけではない点と,設定ファイルの名前(拡張子が.conf)は代表的なものを例示してあるだけである。必ずしもこれだけではないので注意してほしい。

図1●Asteriskの基本的な構造
図1●Asteriskの基本的な構造
PBXコアとチャネルドライバ,各種モジュールに分かれる。

 この図1のように,Asteriskは「PBXコア」と呼ばれる部分と,「チャネルドライバ」に加え各種のモジュールから構成されている。アプリケーション・モジュールは,ある種の機能単位を実装したもので,例えば音声会議やボイス・メールが該当する。

 ファンクションはアプリケーションよりも,もっと簡単な機能のことである。例えばちょっとした参照や変換を行うものはファンクションとして実装される。これに加えてAsteriskが使用する資源であるリソース・モジュールがある。ここでいう資源とは例えば保留音に使用する音源などのことなどを指す。

 チャネルドライバは回線接続の部分である。ここでいう回線とはアナログやISDNのような物理的回線でなく,SIP(session initaton protocol)やH.323といったIPベースのチャネルを含んでいる。

 この図の構成が分かってしまえば,Asteriskで何を設定すべきかはすぐに分かる。例えばSIPだけを使用して電話機や回線を接続し,単なるPBXとして交換用途にだけ使用するのであれば,SIPのチャネルドライバを設定し,PBXコアの部分を設定するだけでよい。そうであれば,「SIPの設定をするには何のファイルを設定すればいいのか?」を調べればよいのである。