この記事には参考文献外部リンクの一覧が含まれていますが、脚注による参照が不十分であるため、情報源が依然不明確です。適切な位置に脚注を追加して、記事の信頼性向上にご協力ください。(2023年1月)

Session Initiation Protocolセッション イニシエーション プロトコルSIPセッション確立プロトコル)とは 2 つ以上のクライアント間でセッションを確立するための IETF 標準の通信プロトコルである。IP電話の呼制御などに利用されている。

概要

SIP は H.323 に代わる汎用のセッション制御プロトコルとして DynamicSoft(当時) の J. Rosenberg らを中心に開発された(ここでいう“セッション”とは OSI参照モデル で規定される第5層とは異なる)。現在の主な用途は電話、テレビ電話インスタント・メッセージングのような双方向のリアルタイム通信である。このようなリアルタイム通信においては基本的に通信者は対等であり、サーバクライアントというような役割分担は存在しない。SIP においてはこれを、両者がサーバとクライアントの機能をあわせもつというかたちで表現している。すなわち、SIP は HTTP (ハイパーテキスト転送プロトコル) をもとにしてつくられたので基本的には 要求-応答型 のプロトコルであり、要求者 (後述の UAC) がクライアントであり、応答者 (後述の UAS) がサーバであるが、両者がこれら両方の役割を演じることができる。

HTTP においてはその下層のプロトコルとして高信頼な TCP を使用することが前提とされているが、SIPでは UDP を元に設計されている。しかし、商用では信頼性のため後に拡張された TCP が使用される場合が多い。SIP はセキュリティやプライバシーを守るための機能拡張も備える。

特徴

同じ、リアルタイム・マルチメディア・データ通信プロトコルのH.323と比較すると、以下の点が特徴である。

ユーザーエージェント

ユーザーエージェント (UA : User Agent) は、SIP リクエストを処理する論理的なエンティティであり、つぎの 2 個の要素から構成される。

従来のレガシーな電話システムに置き換えると、SIP サーバが交換機の代わりになるように見える。しかし、SIP のサービスの主導権を持っているのはユーザーエージェント (UA) であり、SIP サーバは UA からの依頼により、認証と電話番号解決を行うだけの一種の代理人 (Proxy) である。発側の UA がサービスを要求し、着側の UA がサービスを提供するという関係であり、これはインターネットのブラウザと WEB サーバの関係と同じである。これらの機能は共に UA が提供する。発側の機能を UAC (UA Client)、着側の機能を UAS(UA Server)という。つまり、SIP の電話機は発信するときはクライアント (UAC) として振る舞い、着信するときはサーバ (UAS) として振舞う。

SIP サーバ

ログインによる認証とのSIPレジストラでSIPユーザーエージェントの登録
リダイレクトサーバーとプロキシ経由のコールフロー
B2BUAとの接続を確立する

SIP サーバは、SIP リクエストを処理する SIP エンティティである。UA 同士は直接 SIP のメッセージを交換することができるが、通常は SIP サーバ (SIP プロキシサーバ) を介してメッセージ交換する。これは、SIP プロキシサーバを介することによって SIP URI から IP アドレスを求める操作(DNSサーバでホスト名IPアドレスを求めるのと同じような操作)を UA が行う必要がなくなり、通信相手が移動するなどして IP アドレスが変化してもそれを意識せずに通信することができるからである。

SIP サーバの次の各機能をそれぞれ物理的に別にしても 1 つにまとめても良い。

SIP メッセージの転送 (ルーティング) を行うサーバ。SIP ヘッダに含まれる受信先アドレスをキーとして場所サーバへの問い合わせを行って受信先の IP アドレスを求め、それに基づいてメッセージの転送先を決定する。転送先は受信先の IP アドレスであるか、または他のプロキシ・サーバである。このメッセージ・ルーティングの方法は SMTP によるメールのルーティングと同じである。
SIP リクエストの次の転送先を解決し、その転送先を応答で送信するサーバ。
UA からのメッセージに基づいてそのコンタクトアドレス (SIP URI と IP アドレスの対) を場所サーバに登録するサーバ。UAがネットワークに接続されると、ある間隔で REGISTER メッセージを送出する。REGISTER メッセージは SIP プロキシサーバ経由でレジストラに送られ、これに基づいてレジストラが上記の登録をおこなう。すなわち、レジストラへの入力は SIP メッセージ (REGISTER) である。
UA が存在するネットワーク上の場所を管理するデータベース管理サーバ。SIP URI と IP アドレスの対をレジストラから受け取って登録し、登録情報に基づいて SIP プロキシサーバからの問い合わせに返答する。場所サーバの入出力は SIP メッセージではない。

従来の交換機の付加サービスにおいて着信に自動応答して音声メッセージを流したりする機能を提供するサーバは厳密には SIP サーバではなくてUAである。すなわち、SIP の UAS(User Agent Server)の集合体として構成されている。

メソッド

UACがUASに何らかの処理を要求することをメソッドという。

UAからSIPサーバへのセッション確立要求、SIPサーバから接続先端末へのセッション確立要求で使用される。
INVITEの最終レスポンスであるステータスコード200の応答、「200 OK」の受信を確認するのに使用される。
セッション解放要求に使用される。
通信相手の能力を問い合わせる。
UAが位置情報などをレジストラに登録する。

SIP におけるユーザアドレスとその構造

SIP において電話番号に相当するものが SIP URI (Uniform Resource Identifier) であり、メールアドレスと同様に 名前@ドメイン という形式をしている (ただし、SIP URI であることを示すために先頭に sip: が付けられる)。SIP URI の例を挙げる。

sip:bob@biloxi.example.com

SIP URI は特定のひとや端末を表すとは限らない。複数のひとや端末を1つのグループとして、1つの SIP URI で表すこともできる。これは、電話番号でいえば代表番号を用意するに相当する。 たとえば、受信先に個を特定するアドレスが指定された場合、指定された相手が故障中など通信不能であれば接続できないが、グループ・アドレスが指定された場合、そのグループの中に故障中のものがあっても、他の通信可能なものを選んで接続することができる。

SIP における標準的なシーケンス

下図のシーケンスは SIP サーバを経由しない (またはそれが省略された) Alice と Bob との会話の標準的なシーケンスである。

  Alice                     Bob 
    |                        | 
    |       INVITE F1        | 
    |----------------------->| 
    |    180 Ringing F2      | 
    |<-----------------------| 
    |                        | 
    |       200 OK F3        | 
    |<-----------------------| 
    |         ACK F4         | 
    |----------------------->| 
    |   Both Way RTP Media   | 
    |<======================>| 
    |                        | 
    |         BYE F5         | 
    |<-----------------------| 
    |       200 OK F6        | 
    |----------------------->| 
    |                        | 

Alice が ACK メッセージを送信したあと、Bob から BYE メッセージを受信するまで RTP メディアによる双方向の通信がつづいている (上図の "Both Way RTP Media")。

SIP サーバを経由するシーケンスの例を下図にあげる (RFC 3261 から引用)。ここでは atlanta.com と biloxi.com にある 2 個の SIP プロキシを経由して Alice と Bob とのあいだでメッセージを交換している。これらのプロキシが INVITE メッセージを受信した直後に 100 Trying 応答をかえしていることを除けば、これらのプロキシはメッセージを中継しているだけである。

                    atlanta.com  ...biloxi.com
                .     proxy              proxy     .
              .                                      .
      Alice's  ......................................... Bob's
     softphone                                        SIP Phone
        |                |                |                |
        |    INVITE F1   |                |                |
        |--------------->|    INVITE F2   |                |
        |  100 Trying F3 |--------------->|    INVITE F4   |
        |<---------------|  100 Trying F5 |--------------->|
        |                |<-------------- | 180 Ringing F6 |
        |                | 180 Ringing F7 |<---------------|
        | 180 Ringing F8 |<---------------|     200 OK F9  |
        |<---------------|    200 OK F10  |<---------------|
        |    200 OK F11  |<---------------|                |
        |<---------------|                |                |
        |                       ACK F12                    |
        |------------------------------------------------->|
        |                   Media Session                  |
        |<================================================>|
        |                       BYE F13                    |
        |<-------------------------------------------------|
        |                     200 OK F14                   |
        |------------------------------------------------->|
        |                                                  |

関連項目

外部リンク