Inter-Asterisk eXchange

Inter-Asterisk eXchange（IAX）は、Asterisk PBX を発祥とするプロトコルであり、他のソフトスイッチやPBXでもサポートされている。サーバ間でVoIPコネクションを実現するのに使われる。また、クライアントサーバ間のVoIPコネクションにも使われる。

IAXは第2版がよく使われているため、通常 IAX2 と呼ばれることが多い。最初のIAXプロトコルはIAX2の登場とともに廃れていった。

IAX2プロトコルはRFCエディタの自由裁量で（標準化過程に置かれたわけではなく）単なる情報として、RFC 5456 として2009年2月に公表された。

概要 
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よりも柔軟性が低い。

脚注

外部リンク 
 RFC 5456 IAX: Inter-Asterisk eXchange Version 2 プロトコル仕様
 "Inter-Asterisk Exchange (IAX): Deployment Scenarios in SIP-Enabled Networks"
 RFC 6315 IANA Registration for Enumservice 'iax'
 Project implementation asterisk-access router （ログイン必要）

VoIPのソフトウェア
通信プロトコル
5456