Session Initiation Protocol

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 リクエストを処理する SIP エンティティである。UA 同士は直接 SIP のメッセージを交換することができるが、通常は SIP サーバ (SIP プロキシサーバ) を介してメッセージ交換する。これは、SIP プロキシサーバを介することによって SIP URI から IP アドレスを求める操作（DNSサーバでホスト名をIPアドレスを求めるのと同じような操作）を UA が行う必要がなくなり、通信相手が移動するなどして IP アドレスが変化してもそれを意識せずに通信することができるからである。
SIP サーバの次の各機能をそれぞれ物理的に別にしても 1 つにまとめても良い。
従来の交換機の付加サービスにおいて着信に自動応答して音声メッセージを流したりする機能を提供するサーバは厳密には SIP サーバではなくてユーザエージェントである。すなわち、SIP の UAS（User Agent Server）の集合体として構成されている。
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 |
 | |