Digium IAXy

2007年6月2日 (土) 15:00時点におけるTakahashi (トーク | 投稿記録)による版

Iaxy-1.jpg
IAXy S-101i

Iaxy-2.jpg
中身。基板向かって奥半分の箇所がFXS相当かも。

Iaxy-3.jpg

IAXyはDigiumのシングルポートFXSデバイスです。比較的安価($99程度)で電話機をAsteriskに接続することができます。IAXネイティブなので容易にNAT/Firewall越えができます。
ただしCallerIDの仕様が米国なので、日本のナンバーディスプレイ対応の電話機では番号表示させることはできません。US仕様の電話機を接続すればCallerIDもボイスメールの表示もできるのでUSのカッコいい電話機を繋ぐのもいいかもしれません。

IAXyにはS100iとS101iの2つのバージョンがあります。旧バージョンのIAXy(S100i)にはDigiumのFXSモジュール(S100M)がドータカードとして乗っていたようですが、現在のIAXy(S101i)は1枚基板になってます。基板のマーキングから見ると現バージョンはIAXy IIと言うようです。
購入ルートにもよるかと思いますが、マニュアルも何もついていない事もあるようですが、マニュアルは http://www.digium.com/downloads/Iaxy_Installation_Guide.pdf にあります。ただしマニュアルの写真等は古いバージョン(S100i)のままです。

電源は北米仕様ACアダプタが付属している場合には、AC120V入力、DC6V 1A出力のものです。このため日本国内で使用する場合にはAC100V入力、DC6V 1A出力のACアダプタをもってくればいいのですが、DC入力プラグに細いものが必要なので市販品を改造する必要があるでしょう。なおDCプラグはセンタープラスです。
ユニバーサルアダプタを付属しておいてくれれば苦労はないんですが、コスト減のためかDigiumのロゴ入りのトランス式のでっかいアダプタが付属していました。

目次

IPアドレスを見つける

プロビジョニングがちょっと面倒です。一度やってしまえば後はそれほど難しくないのですが、最初の一回だけちょっと苦労するかもしれません。
IAXyはデフォルトではDHCPでIPアドレス等を取得してくるため、取得したIPアドレスを知る必要がありますが、IAXyそのものには何のディスプレイもなければ音声ガイダンス機能もないのでDHCPサーバ(ルータなど)側でチェックするか、あるいはAsteriskを入れたLinuxマシンのARPテーブル等でチェックします。

Local8.domain.tld (192.168.1.8) at 00:03:64:00:0A:D7 [ether] on eth0

こんな感じです。MACのベンダーコード 00:03:64 がIAXyです。ただしこのベンダーコード、Ubicom(Scenix)のもののようなので他の機器でも00:03:64を持つものがあるかもしれませんので注意してください。

iaxyprovで設定する

iaxyprovを入手します。

export CVSROOT=:pserver:anoncvs@cvs.digium.com:/usr/cvsroot
cvs login (パスワードは anoncvs)
cvs co iaxyprov

注意:2005/11/28にプロジェクトそのものがCVSからSubversionに移行しました。このため以下のようにsvnコマンドで入手してください。

svn checkout http://svn.digium.com/svn/iaxyprov/trunk iaxyprov

単純にmakeするとプログラムはできあがります。
設定するにはまず設定ファイルを作成します。サンプルの設定ファイルがiaxyprovといっしょに配布されていますので参考にしてください。(iaxy.conf.sample)
ファイルは例えば次のような内容で記述します。

;
; IAXY Provisioning description
;
dhcp
codec: ulaw
server: 192.168.1.1
user: iaxy-1
pass: digium
language=jp
register

見ての通りで、上の例ではdhcpを使いサーバ(Asterisk)のIPアドレス、ユーザ名、パスワードを設定します。 DHCPを使わない場合には dhcp の記述を取り、次のようにIPアドレスを書きます。

ip: 192.168.1.8
netmask: 255.255.255.0
gateway: 192.168.1.254

ここまででお気づきのように、IAXyにはDNSの名前解決能力がありません。このためサーバの設定も含めてIPアドレスを直接記述しなければならないという欠点があります。
固定IPアドレス設定は iaxyprov を使わないないと出来ないようです(調査中)

設定ファイルができたならiaxyprovを使ってIAXyに書き込みます。

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

これでIAXyに設定が行われます。設定は電源を切っても有効ですので、一度設定してしまえば後は変更がなければ何もする必要はありません。
一番問題となるのはおそらくIPアドレスで、IPアドレスがわかってさえいればAsteriskからも設定が可能です。Linux上でdhcpdを動かしているのなら、連携させて設定の自動化も可能でしょう。

Asteriskで設定する

IAXyはAsteriskのCLIからもプロビジョニングすることができます。この場合には/etc/asteriskのiaxprov.confに各設定を書いておきます。
defaultセクションには共通の設定を書きます。

[default]
port=4569
server=192.168.1.1
serverport=4569
language=jp
codec=ulaw
flags=register
tos=lowdelay

各IAXyごとの設定をセクションを分けて書きます。

[si-000364000AD7]
user=iaxy-1
pass=digium
language=jp

それぞれのIAXyのセクション名はsi-に続けてIAXyのMACアドレスを書くことになっているようなので、これにならって書いておきます。
設定ファイルを書いたならばasteriskを念のためリロードしておき、CLIから次のように実行します。

*CLI> iax2 provision 192.168.1.8 si-000364000AD7

最初のIPアドレスはIAXyのIPアドレス、次のパラメータは作成したセクションを指定します。これで設定がIAXyに書き込まれます。
設定してあるプロビジョニングデータはCLIからiax2 show provisioningで確認できます。

Asteriskの設定

まずiax.confには以下のようにIAXクライアントの設定を書きます。

[iaxy-1]
type=friend
username=iaxy-1
secret=digium
context=default
host=dynamic
disallow=all
allow=ulaw
language=jp

CODECはどうもulawしか使えない(らしい)ので、disallow=allしてから、allow=ulawしておきます。発信時のコンテキストはsip.confと同じで使うコンテキストを書きます。上の例ではdefaultになってますが、使っているコンテキストを指定してください。
次にextensions.confですが、IAXyに対してダイアルするには次のようなエントリを作成します。

exten => 207,1,Dial(IAX2/iaxy-1/s)

ここでiaxy-1はユニット名(iax.confの[iaxy-1])です。そもそもIAXyには1ポートしかないので番号(/sの部分)は何でもよさそうですが、マニュアルでは"s"を指定しているようです。Asteriskから接続に行く場合にはユーザ名等は不要のようです。
以上の設定で、IAXyは通常のATAのように動作します。
ちなみに電話機が米国仕様のものの場合には、ボイスメールインジケータも使えます。この場合にはsip.conf同様に、iax.confのセクションにmailbox= を指定します。
IAXでのREGISTERに成功するとIAXyの青いLEDが点灯します。 注意:trunk=yesを設定しないように。設定してしまうと片通話になります。

NAT/ファイアウォール越え

IAXyは当然ですがIAXを使っているので、NAT/ファイアウォール越えが容易です。TCP/UDPのポート4569を開き、これを静的NAT/マスカレード等でフォワードしてやれば使えるはずです。

ファームウェアの更新

DigiumによればAsteriskで使っていれば自動更新されるとのことです。更新中はオレンジ色のLEDが点灯するとか。残念ながら、うちのIAXyは最新だったのかこの状況には遭遇していません。

欠点

MACアドレスを本体に貼っといてほしい DC入力プラグが細い上に抜けやすい 結構、熱いけど大丈夫だろうか・・・

出荷時設定に戻す方法

voip-infoにはヤヤこしく書いてあるのですが、要するに電源を入れた状態でリセットボタンを押しそのまま10秒まってから電源を抜き、5秒待ってから電源を入れリセットボタンを離すと工場出荷時設定に戻るようです。電源入、切の間はリセットボタンを押し続ければいいみたいです。