wiki:AsteriskDebian

Version 8 (modified by sgk, 13 years ago) (diff)

--

DebianにAsteriskをインストールする。

Asterisk情報

どういうわけか、世の中、DebianにAsteriskをインストールする話が少ない。あまり見かけない。 DebianパッケージにもAsteriskがあるから、これをインストールするという手もある。 しかし、Debianってば非常に保守的で、パッケージ化されているのはいまだにAsterisk 1.0。 かといって、どっかの誰かが作ったパッケージを入れるのはちょっと不安。 なにより、日本語対応パッチなどを導入できないのはつらい。 そんなわけで、Asteriskに関してはDebian流に行かず、自分でソースから入れることにする。

Debian etch

Debianのバージョンはどうしよう。  もうすぐ次期バージョンが出るという時に、今さらsargeってのも不毛だ。 Debian etch(カーネル2.6.16-2-686)にインストールすることにする。

Zaptel 1.2.9

Zaptelのカーネルモジュールのビルドはめんどくさいので、Debianに付属の物を使用することとした。 当初は1.2.8だったのだが、いつのまにか1.2.9になってたので更新作業を行った。 しかし、本日(2006/10/3)現在、パッケージが壊れていてファイルが一つ足りない。 エラーになったので、 wct4xxp.hを取ってきて、/usr/src/modules/zaptelに置いてもう一度ビルドした。

# apt-get install zaptel-source
# apt-get install gcc-4.0
# CFLAGS=-DZERO_BATT_RING m-a a-i zaptel
エラーになった
# wget -O modules/zaptel/wct4xxp.h http://svn.digium.com/view/zaptel/trunk/wct4xxp.h?rev=886&content-type=text%2Fplain
# CFLAGS=-DZERO_BATT_RING m-a a-i zaptel
# depmod
# modprobe wcfxo
# apt-get install zaptel

/etc/modulesに以下の行を追加しておく。

wcfxo

/etc/zaptel.confは、こんな感じ。

loadzone=jp
defaultzone=jp
fxsks=1-2

コマンドの意味などについては、Zaptel 1.2.8のインストールを参照してください。

Asterisk 1.2.12

# apt-get install ncurses-dev
# apt-get install libssl-dev
# apt-get install libtonezone-dev
# apt-get install libpri-dev

libtonezoneは、本来はZaptelのソースに含まれている。 上記の方法によるZaptelのビルドではインストールされないため、別途インストールした。

Asteriskをそのままビルドすると、/etc/usrなどあちこちにインストールされる。 これではめんどくさいので、/usr/local/asteriskにインストールすることにした。 また、このあとのインストールやテスト実行でいちいちsuしなくてすむように、このディレクトリの所有者を自分に変更しておいた。 もちろん、設定とテストが終わって実運用にはいるときは、Asterisk専用のユーザに変更すべき。

% wget http://ftp.digium.com/pub/asterisk/releases/asterisk-1.2.12.tar.gz
% tar xzf asterisk-1.2.12.tar.gz
% cd asterisk-1.2.12
% INSTALL_PREFIX=/usr/local/asterisk make
% sudo mkdir /usr/local/asterisk
% sudo chown 自分のID /usr/local/asterisk
% INSTALL_PREFIX=/usr/local/asterisk make install
% INSTALL_PREFIX=/usr/local/asterisk make samples

 ここにある日本対応パッチをあててからビルドするとなお良い。PBXとしてちゃんと動くかどうかという点について不安な人は、日本対応パッチはあとまわしにするといい。

format_mp3

通常、Asteriskでは「mpg123」を使用して保留音を実現している。 Asteriskのパッケージを展開して「make mpg123」を実行すれば、勝手にmpg123のソースパッケージを取得してきてビルドしてくれる。 ところが、Debian etchではビルドがエラーになってしまった(原因は追及していないが、どうもmakeコマンドが違う?)。 また、Debianでバイナリパッケージが用意されているmpg123で代用すると再生スピードが極端に遅くて音楽に聞こえないという問題がある。この問題については未調査だが、Debianのmpg123は実際には「mpg321」という代替品である。

そこで、Asteriskのアドオンに含まれるMP3モジュールをインストールする。 インストールすると、Asterisk自身でMP3ファイルを認識できるようになり、mpg123などの外部プレーヤを使用しなくても保留音を再生できる。

% wget http://ftp.digium.com/pub/asterisk/releases/asterisk-addons-1.2.4.tar.gz
% tar xzf asterisk-addons-1.2.4.tar.gz
% cd asterisk-addons-1.2.4/format_mp3
% make INCLUDE=-I../../asterisk-1.2.12/include
% cp format_mp3.so /usr/local/asterisk/usr/lib/asterisk/modules

asterisk-addons全部をビルドしようとするとあちこちでエラーになるが、format_mp3だけビルドするのは簡単。 Asteriskのmodules.confで「autoload=yes」としてあれば、モジュールのファイルを投入するだけで認識される。

Asteriskのmusiconhold.confは以下のとおり。

[default]
mode=files
directory=/usr/local/asterisk/var/lib/asterisk/mohmp3
random=yes