基本技術●規格はあるが,枯れていない |
分かりやすいが発展段階にあるSIP
IPで通話する際は,通常の電話の時とは異なる仕組みが二つほど必要になる(図1[拡大表示])。一つは通信する端末同士を結びつけるセッションを確立すること。もう一つは音をデジタル化してIPパケットにすることだ。実はこれらの処理はすでに1チップでできるようになっている注1)。
通信相手とのセッションを管理するためのプロトコルと,音声データをやり取りするためのプロトコルは異なる。セッション管理のプロトコルは,通話したい相手にセッションの確立を要求し相手のIPアドレスを突きとめるために使う。相手のIPアドレスが分かったら,発信側はじかに相手に音声パケットを送る。この音声伝送時に使うのがRTP(Real-time Transport Protocol)だ。そしてRTPでの通信が終わると,またセッション管理のプロトコルを使って通信の終了を告げる。
セッション管理プロトコルは,現在3種類ほど使われている。MGCP(Media Gateway Control Protocol),H.323,そしてSIP(Session Initiation Protocol)だ。SIPは他の二つに比べると新しいプロトコルである。大規模ネットワーク向けのMGCPや電話機能を実現するために事細かに規定されているH.323に対して,SIPはHTTPなどのプロトコルを参考にして作られているので他のインターネット・アプリケーションと連携しやすい。たとえばWebページ上のボタンやメール・アドレスをクリックすれば通話できるようなアプリケーションを容易に開発できる。「SIPはH.323に比べてメリットが三つある。一つはテキストベースで読めるため開発しやすいこと,二つ目が専門家だけでなく個人でも扱えるというオープン性,三つ目がセッションを張るプロトコルなのでIP電話会社に制限されず端末間でサービスを豊富にできること」(フュージョン・コミュニケーションズ 営業本部の平山義明ソリューション営業部長)と言う。
国内では個人向けにIP電話サービスを提供するISPの多くがSIPを採用するなど,SIPはH.323に取って代わる勢いだ。また,「将来的には,インターネット上でフリーソフトとして多く公開されるようになるのではないか」(スカイウェイブ VoIPソリューション事業部の柿原亘事業部長)という声があるように,SIPは実装しやすいと言われている(図2[拡大表示])。独自プロトコルのIP電話機を出荷している米Cisco Systems社も「これからはSIPの市場が大きくなる」(シスコシステムズ マーケティングアドバンストテクノロジー本部IPコミュニケーション部の小澤貴子部長代理)と見ている。
ただ,SIPはまだ基本的な部分しか決まっていない注2)。このためSIPで規定されていないところを独自に作り込むと相互接続性がなくなってしまう。決まっていない仕様の一つに,インスタント・メッセージングで使う「プレゼンス機能」がある。プレゼンス機能とは,ユーザーの状態(オンライン,オフライン,退席中など)を表示する機能だ。プレゼンス機能は「広くパソコンと連携させ,コミュニケーションのリアルタイム性を実現できるのはSIPだからこそ」(ソフトフロント エンジニアセンター東京SPPチームの佐藤和紀チームリーダー)という特徴を実現するのに重要な要素だ。だが,この部分は標準仕様として決まっていない注3)。
サーバーと端末には相性がある
実際のIP電話サービスを使うときは,IDとパスワードをIP電話会社のSIPサーバーに送り,認証手続きを受ける。この認証とは別にSIPにはREGISTER(登録)というメッセージがある。事前に端末情報(IDとIPアドレスなど)をSIPサーバーに登録する仕組みだ(図3[拡大表示])。SIPサーバーは登録データを基にユーザー認証を実行し,登録端末からのメッセージだけを受け付けるようにする。
もっとも,SIPという共通のプロトコルを使っているからといって,端末とサーバーの接続が保証されているわけではない。「通話だけなら簡単につながる。その他の機能についてはだいたいは一緒だが,細かい設定が異なる。例えば,VoIPゲートウェイでサーバー側の設定をする場合,セッション・タイマーをオンにするかオフにするかはIP電話会社によって異なる」(ヤマハ AV・IT事業本部通信機器開発部の小池田恒行技師補)。制御の違いは端末側がサーバーに合わせなければならない。
つなぎたいサーバーや端末が増えてくると相互接続性を検証しなければならない。IP電話会社間で相互接続した場合は,それぞれのIP電話会社のサーバーに対応する端末同士で相互接続を検証することになる。「保留や転送など基本的な機能についてはSIPで決まっているが,拡張性が高いところはまだ決まっていない。プロトコルで決まっていることが厳密すぎても少なすぎてもつながりにくい」(三洋マルチメディア鳥取 FAX・電話技術部VoIP技術課の水根正人主任技術員)。
アドレス変換対策が完成していない
SIPでセッションを張り音声データをRTPでやり取りするときに,気になる問題としてアドレス変換がある。これは,どちらか一方がプライベート・アドレスを持つときに起こる注4)。音声パケットを送るときや着側端末がセッションを切断するためのリクエストを送るときに問題になる。
SIPメッセージのやり取りにおいて,メッセージを受け取った端末は,中継するプロキシ・サーバーのIPアドレスが書かれた「Viaヘッダー」を見て,メッセージがどのプロキシ・サーバー経由で届いたのかを知る。プロキシ・サーバーは送られてきたリクエスト内のViaヘッダーが示すIPアドレスと,実際に受け取ったパケットの発IPアドレスが異なっている場合,発IPアドレスを格納した新しいViaヘッダーをリクエストに挿入してから転送する。このため,途中でアドレス変換が介在しても,どこを中継して届いたのかは正しく伝わる。
問題になるのは,RTPを使って直接端末間で通信するときだ。グローバル・アドレスを持つ端末からプライベート・アドレスの端末に電話をかけたときを考えてみる。端末は,SIPメッセージの一つであるINVITEメッセージに書かれたIPアドレスをあて先IPアドレスにして通信する。IPアドレスを変換する仕組みであるNAT(Network Address Translation)はIPヘッダー部のIPアドレスだけを書き換えられるので,INVITEメッセージの中のIPアドレスはそのまま相手に届いてしまう。このため,どちらかの端末がプライベート・アドレスを持つ場合は通信できなくなる(図4[拡大表示])。同様の理由で着側から何らかのアクションを起こすメッセージを送るときも問題になる注5)。
この問題を根本的に解決するにはすべての端末をグローバル・アドレスにしなければならない。この方向で考えると,IPv6という解もあるが,ハードルは高い。
現実的な方法は,IP電話向けのアドレス変換を実行する新たな仕組みを持ち込むというもの。考えられている解決策は二つある。一つはUPnP(Universal Plug and Play)を用いて端末側でNAT機能を持つルーターのグローバル・アドレスを取得してデータ部分に書き込むアドレスをゲートウェイのものにする。もう一つはデータ部分のIPアドレスを書き換えるゲートウェイ(ALG,Application Layer Gateway)である。NAT機能を持つルーターにALGを実装することもできる。ただし,どちらの方法も製品化されて日が浅い。実績を重ねていく必要がある(図5[拡大表示])。
【おわびと訂正】
記事掲載当初,図4の内容とキャプションに誤りがありました。おわびして訂正します。