|
「SIP対応」をうたった機器であれば,どんなサービスにも使えて,どんな機器ともつながるのか。実はSIPの場合,現状はそうなってはいない。SIP対応機器同士でもつながらなかったり,サービスを乗り換えると機器ごと買い換えなくてはならなくなったりする。なぜこうした相互接続性の問題が出てくるのだろうか。
規格書にあいまいさが残る
SIPには,RFC3261という標準規格を記した技術文書がある。しかも,現在ではほとんどの製品やソフトがこのRFCに準拠している。なのにつながらないケースがある。
つながらない理由はいくつかあるが,(1)RFCの記述があいまいだったり,必要な規定が決められていない,(2)同じ機能を実現するのに方法が複数ある,(3)お互いにサポートしている機能が異なる――といった三つの理由が代表的なところだ(図3-1)。
| |
図3-1●SIP対応機器同士で相互接続性の問題が生じるわけ 実装ミスだけでなく,RFCに記述がなかったりあいまいなために生じる問題,オプションや拡張機能のサポートの有無,サービス提供者のポリシーの違いなど,原因はさまざまである。 |
具体例を挙げると,ダイヤルした電話番号をどんなSIP URIに変換するかが異なるケース。「05012345678」という電話番号を,あるプロバイダの機器では「sip:05012345678@example. com」と変換するかもしれない。しかし,別のプロバイダの機器では,「+81-512345678@example.com」と国番号付きで変換するかもしれない。こうしたSIP URIの中身をどう書くべきかは,RFCでは決めていない。
また,サービス編で見たプレゼンスやインスタント・メッセージには,SIMPLEという標準はあるものの,「実際に中身にどんな情報を入れるかは何も決められていない」(沖電気工業の千村保文バイスプレジデント)。こうした機能については,異なるメーカー製機器同士がつながることの方がまれである。
ほかにも,RFCで「こうすべき」SHOULD(シュッド)と書いてあるところを実際にどう処理するかは,サービスや機器開発者の解釈の違いによって異なる。
相互接続性を検証する動きも
SIPという規格は,あまりに何でもできるだけに,完全な相互接続性を求めるのはそもそも難しい。しかし,IP電話に限ってもつながらなかったりする現状はやはり問題がある。
そこで,国内でもいくつかの組織がSIP対応製品の相互接続性を検証し始めている。そうした組織の一つであるVoIP/SIP相互接続検証タスクフォースでは,「SIP対応機器同士の相互接続性を確認し,次のステップとしてプロバイダ間の相互接続性の検証を進める予定だ」(VoIP/SIP相互接続検証タスクフォースの江崎浩主査)という。
|
SIPを使うユーザーの立場として,ぜひ押さえておきたいのが「NAT(ナット)*1越え問題」だ。NATが絡むと,SIPメッセージのやりとりがうまくできなくなる。
メッセージ中にIPアドレスが入る
一般に,ブロードバンド・ルーターが備えるNAT機能は,IPヘッダー中のIPアドレスと,TCP/UDPヘッダー中のポート番号しか書き換えない。
一方,送信元のSIP UAがリクエスト・メッセージを送るときは,ヘッダー部分に自分のIPアドレスとポート番号を入れる。相手のSIP UAはこのアドレスを返信先として使う。そして,この部分はNATを介しても変換されない。すると,相手は変換されなかったアドレスあてに返信パケットを送ってしまい,送信元に届かない。
こうしたSIPのNAT越え問題を解決する方法は4種類ある。(1)UPnP(ユーピーエヌピー)*2,(2)STUN(スタン)*3,(3)SIP ALG(エーエルジー)*4,(4)B2BUA(ビーツービーユーエー)*5――である(図3-2)。
| |
図3-2●SIPのNAT越え問題と対策 4通りの対策がある。 |
4種類の対策がある
UPnPは,UPnPの標準規格で規定している「NATトラバーサル」というしくみを使う。具体的には,ブロードバンド・ルーターがSIP UAに対して,WAN側に割り当てられたグローバルIPアドレスやポート番号を教えてやる。このしくみによって,SIP UAはSIPメッセージ内にWAN側で使うアドレス情報を書き込める。
STUNも考え方はUPnPに似ている。SIP UAがインターネット上にあるSTUNサーバーに自分のIPアドレスやポート番号を入れたパケットを送る。これを受け取ったSTUNサーバーは,パケットのヘッダーに記載された情報とパケットのデータ部に書かれている情報を見比べることで,NAT処理前後のIPアドレスとポート番号がわかる。そこでSTUNサーバーは,送信元のSIP UAに対してその情報を返信する。これでSIP UAはWAN側のアドレス情報を入手できる。
三つめのSIP ALGは少々強引な方法といえる。ブロードバンド・ルーターが,SIPメッセージ中のアドレス情報を書き換えるのだ。SIP ALGでは,SIP UA側は何も対策を講じる必要がない。ただし,パケットの中身まで検査して書き換える必要があるので,ルーターに負荷がかかる。
最後のB2BUAは,それぞれLAN側とWAN側を担当する二つのSIP UAの機能を持った装置を使う。これをネットワークの境界部分に置き,すべてのSIPのやりとりをB2BUAが肩代わりする形で処理させる。つまり,相手側のSIP UAにとっては,B2BUAが実際の送信元SIP UAのように見える。
以上のようなしくみで,SIPのやりとりはNATを通過できるようになる。ただし,実際のアプリケーション・データ(IP電話の場合なら音声パケット)をどうやりとりするかは,別に考えてやる必要がある。