Session Initiation Protocol

概要

SIP は H.323 に代わる汎用のセッション制御プロトコルとして DynamicSoft（当時） の J. Rosenberg らを中心に開発された（ここでいう“セッション”とは OSI参照モデル で規定される第5層とは異なる）。すなわち、IP電話などのセッションの開始、変更、終了などの操作をおこなうことができる。SIP はインターネット上の会議 (Mbone) 等、マルチメディア通信制御をドメインとしている。現在の主な用途は電話、テレビ電話やインスタント・メッセージングのような双方向のリアルタイム通信である。このようなリアルタイム通信においては基本的に通信者は対等であり、サーバとクライアントというような役割分担は存在しない。SIP においてはこれを、両者がサーバとクライアントの機能をあわせもつというかたちで表現している。すなわち、SIP は HTTP (ハイパーテキスト転送プロトコル) をもとにしてつくられたので基本的には 要求-応答型 のプロトコルだが、要求者 (後述の UAC) がクライアントであり、応答者 (後述の UAS) がサーバであるが、両者がこれら両方の役割を演じることができる。
HTTP においてはその下層のプロトコルとして高信頼な TCP を使用することが前提とされているが、SIPでは UDP を元に設計されている。しかし、商用では信頼性のため後に拡張された TCP が使用される場合が多い。SIP はセキュリティやプライバシーを守るための機能拡張も備える。

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                   |
        |------------------------------------------------->|
        |                                                  |