Session Initiation Protocol(SIP)とは、IPネットワーク上で音声通話を行うIP電話やビデオ会議等で、セッションを作るためのシグナリングに使用されるプロトコルです。例えば、IP電話を実現するには、IPネットワーク上で音声データをやり取りするための「VoIP(Voice over IP)」と、通話相手とのセッションを確立・切断するための「シグナリング」という、2種類の技術が必要になります。
SIPでは、シグナリングのための処理を「SIPサーバー」が実行します。IP電話をかける側の端末(ユーザーエージェント:UA)は、SIPサーバーに対し通話相手を指定した「INVITE」というリクエストを発信します。SIPサーバーはこのリクエストに含まれる通話相手の接続先をデータベースから見つけ出し、通話相手のUAに「INVITE」リクエストを送ります。通話相手のUAはこれに対して「OK」とレスポンスを返します。これを受けたSIPサーバーは、通話元のUAに「OK」を返します。これによってUA間のセッションが確立され、通話が開始されます。
SIPサーバーが1台である必要はありません。異なる拠点間で通話を行いたい場合には、各拠点にSIPサーバーを設置し、SIPサーバー間で通信を行うことで、セッションを確立します。この場合、各拠点のSIPサーバーを「SIPプロキシ」と呼びます。
IPネットワーク上でシグナリングを行うためのプロトコルはSIP以前にも複数のものが存在しており、その代表格だったのがITU-T(国際電気通信連合の電気通信標準化部門)で規定されたH.323でした。しかしH.323はISDNの技術を基本に考えられており、幅広い機能をカバーしていたという利点はあったものの、プロトコルが複雑で拡張性に乏しいという問題を抱えていました。このような問題を解決するため、IETF(Internet Engineering Task Force)において、インターネット技術を基本に考え出されたのがSIPです。最初の案は1996年に提出されており、1999年に最初のRFC(規格ドキュメント)がリリースされています。(その後も改版が行われています。)
SIPはHTTPと同様に、テキストベースで情報をやり取りするプロトコルです。また用途がIP電話に限定されているわけではなく、テレビ会議システムなど映像やテキストメッセージの交換等にも使用できるという、汎用性の高さも備えています。