IAXyを使ってみる(2005年頃の記事)

概要1   こんなんです。

要するに、通常のアナログ電話機を
VoIPの端末にしてしまおうというのが
IAXyの役割です。

ちなみに、1.0.9以前のバージョンではIAXy電話からSIP電話へ電話を掛けると、
Asteriskサーバが浮動小数点演算の例外を起こしてハングアップするという現象が出ます。


概要2   IAXyというのは、普通の電話機をIPフォンとして使えるようにするものです。

IAXというのは、Inter Asterisk eXchangeの
略で、本来はAsterisk同士をつなぐプロトコルなのですが
これを使って電話機をつないでしまおうというのがIAXyです。

接続作業   まず、IAXyにつなぐ電話機を用意して電話線で接続します。
次に、IAXyのLANポートにLANケーブルをつなぎます。
そして最後に電源ケーブルをつなげば、IAXy側の準備は終了です。



準備   次はAsteriskサーバの設定なのですが、その前にもうひとつ前準備が必要です。
デフォルトでは、IAXyは自分のIPアドレスをDHCPで取り込むようになっています。
そこで、初めてIAXyをつなぐ場合は、ちょっと工夫が必要です。

たとえば、DHCPサーバを必ず1つのIPアドレスしか渡さないように設定しておけば、
IAXyをLANに繋いだ時に、どのIPアドレスが渡ったのかを悩む必要がなくなりますが
他の端末などのことも考慮して、そういう技が使えそうに無い場合は、/var/lib/dhcpd
にリースしているIPアドレスの一覧が入っているので、そこから類推するしかないです。

とにもかくにもここでIAXyのIPアドレスが分かった事にして次へ進みます。

準備2   そしてAsteriskサーバ側の作業をもうひとつやります。
サーバ側からIAXyの初期設定を行ってやるわけです。

これをやるにはまず、以下の手順でIAXyを設定するためのツールをダウンロードします。

そのツールをダウンロードするには、CVSのリポジトリにアクセスしないと
いけません。CVSを取ってきてインストールします。

export CVSROOT=:pserver:anoncvs@cvs.digium.com:/usr/cvsroot
cvs login ※パスワードは anoncvs です。
cvs co iaxyprov

上記のコマンドを実行すると、iaxyprovというフォルダが出来ていますので、
そのフォルダへ移動して、make します。
makeができたら以下のテキストファイルを作ります。

dhcp ;
codec: ulaw ;
server: 192.168.0.1 ; ※AsteriskサーバのIPアドレス
user: myusername ; ※このIAXy端末のユーザー名
pass: mypassword ; ※このIAXy端末のパスワード
register ;

次に以下のコマンドを投入してIXAyを初期設定します。

./iaxyprov <IAXyのIPアドレス> <上記のファイル名>

設定   そしてようやくAsteriskサーバの設定をやります。
/etc/asterisk/iax.conf を以下のように設定します。

[general]
;
bandwidth=low
disallow=all
allow=ulaw
jitterbuffer=no
tos=lowdelay
;
[myuser]
notransfer=yes
type=friend
host=dynamic
accountcode=myuser   ※ユーザー名
secret=mypass     ※パスワード
context=home      ※Extensions.confファイルのセクション名
disallow=all
allow=ulaw
callerid="My IAXy" <(555) 555-1212>  ※発信者番号
trunk=no
;

それから、extensions.confも以下のエントリを追加します。

exten => 1234,1,Dial (IAX2/myuser:mypass@<IXAyのIPアドレス>/s)