Inter-Asterisk eXchange
Inter-Asterisk eXchange(IAX)は、Asterisk PBX を発祥とするプロトコルであり、他のソフトスイッチやPBXでもサポートされている。サーバ間でVoIPコネクションを実現するのに使われる。また、クライアントサーバ間のVoIPコネクションにも使われる。
IAXは第2版がよく使われているため、通常 IAX2 と呼ばれることが多い。最初のIAXプロトコルはIAX2の登場とともに廃れていった。
IAX2プロトコルはRFCエディタの自由裁量で(標準化過程に置かれたわけではなく)単なる情報として、RFC 5456 として2009年2月に公表された[1]。
概要
[編集]IAX2はVoIPプロトコルであり、同じポートで信号とメディア(音声)を伝送する。コマンドとパラメータはバイナリ形式で送信され、拡張するには新たな数値コードを割り当てる必要がある。
IAX2は1つのUDPデータストリーム(通常、ポート4569)を使ってエンドポイント間の通信を行う。その1つのストリームに信号とメディアフローを多重化している。IAX2はファイアウォールやネットワークアドレス変換も容易に超えることができる。それとは対照的にSIP、H.323、MGCPは情報の転送に帯域外のRTPストリームを使う。
IAX2は単一リンク上でのトランキングと複数チャネルの多重化をサポートしている。トランキングとは、複数の呼のデータをマージし、1つのパケットストリームとしてエンドポイント間でやり取りするものである。これにより、IPオーバーヘッドを低減しレイテンシを抑える効果がある。VoIPではIPヘッダがバンド幅の無視できない部分を占めているため、大きな利点である。
起源
[編集]IAXとIAX2プロトコルはマーク・スペンサーがAsteriskでのVoIPのために生み出した。このプロトコルは内部セッションを設定し、そのセッション上での音声伝送には任意のコーデックを利用できる。IAXプロトコルはIPネットワーク上でのストリーミングメディアの制御と伝送を提供する。ストリーミングメディアは音声に限らず、動画でもよいが、VoIPを意図して設計されている。
目的
[編集]IAXの主な目的は、メディア伝送におけるバンド幅を最小化しつつ、制御と個々の音声に注意を払い、NAT透過性をサポートすることである。また、ファイアウォールを挟んだ場合も容易に使えることも目的としている。
IAXの基本構造は、信号とメディアストリームを単一のUDPストリームに多重化し、2つのコンピュータ間で通信する。IAXはバイナリプロトコルであり、オーバーヘッドをなるべく軽減するよう設計されている。場合によっては、個々の音声の呼の帯域幅効率を優先するため、全体の帯域幅効率は犠牲にされている。単一のUDPストリームはファイアウォールを挟んだ設定が容易という利点がある。
単一ストリームの他の利点として、セキュリティの確保が非常に容易である。さらに言えば、ISPがVoIPをフィルタリングしている場合でも、IAXはVoIPと気づかれないことが多い。
問題点
[編集]汎用的な拡張機構がないため、プロトコル仕様に新たな機能を追加する場合、H.323、SIP、MGCPよりも柔軟性が低い。