【シップ】

SIP(Session Initiation Protocol) とは?

最終更新:
💡 IP電話の司会者!「もしもし」から「失礼します」まで仕切る通信の番頭さん

通信セッションの確立・変更・終了を制御する、アプリケーション層のシグナリングプロトコル。IP電話やマルチメディア会議などで使い、音声・映像を運ぶ経路や方式とは区別する。

📌 このページのポイント
呼び出しの制御と、音声・映像を分ける 発信側 プロキシ 着信側 INVITE INVITE 180 Ringing 180 Ringing 200 OK 200 OK ACK ACK BYE BYE 200 OK 200 OK 音声・映像(RTPなど) SIPで開始・変更・終了を制御
成功した呼の簡略例。プロキシがRecord-Routeで経路に残る場合を描き、ACKとBYEも経由させている。横矢印はメッセージの向き、縦線は各参加者の時間。緑はメディアの経路例で、実際は中継サーバーを通ることもある。BYEへの応答は逆向きの200 OK。TLSによるSIP保護とメディア保護は別に設計する。
ひよこ ひよこ
SIPってHTTPに似てるの?
ペンギン先生 ペンギン先生
HTTPに似た要求と応答の形で、テキスト形式のメッセージを使うよ。INVITEでセッションを求め、成功例では200 OKを受けてACKを返す。ただしHTTPそのものではなく、SIPのメソッドや通信の規則があるんだ。
ひよこ ひよこ
じゃあSIPで音声データも送るの?
ペンギン先生 ペンギン先生
通話の例では、SIPは接続や変更の制御を担い、音声・映像はRTPなどで運ぶよ。SIPメッセージの本文にSDPの形式でメディアの条件を載せることはあるけど、SDP自体は音声ではない。制御とメディアが同じ経路を通るとも限らないんだ。
ひよこ ひよこ
通話の流れをもうちょっと詳しく教えて!
ペンギン先生 ペンギン先生
図は成功する通話の一例だよ。INVITEに180 Ringing、続いて200 OKが返り、発信側がACKで確認する。終える側がBYEを送り、相手が200 OKを返す。呼び出し中の応答や仲介するサーバーの数は構成で変わるし、拒否やエラーで通話が始まらないこともあるんだ。
ひよこ ひよこ
SIPサーバーって通話中も全部仲介するの?
ペンギン先生 ペンギン先生
必ずではないよ。図はRecord-Routeで仲介を続けるプロキシの例で、ACKやBYEも通す。相手の連絡先を知った後に、これらを端末間で直接やり取りする例もある。SIPを仲介することと、音声のデータを中継することは別なんだ。
ひよこ ひよこ
着信先の端末が変わったらどうするの?
ペンギン先生 ペンギン先生
REGISTERでSIPの識別子と現在の連絡先を登録する仕組みがあるよ。登録先のサーバーが保持する対応を、プロキシが宛先の探索に使える。常に同じIPアドレスへ発信するだけ、という仕組みではないんだ。
ひよこ ひよこ
SIPのセキュリティって大丈夫なの?
ペンギン先生 ペンギン先生
SIPの制御通信にはTLSを使う構成がある。SIPS URIは各区間でTLSを使うよう求めるけど、端末間でメッセージを誰にも読ませない暗号化の保証ではないよ。音声・映像側にはSRTPなど別の保護と適切な鍵管理が必要。SIPを暗号化すれば通話データも自動的に守られる、とは考えないようにしよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「SIP」って出てきたら「IP電話の通話をつないだり切ったりする制御役」と思えればだいたいOK!
📖 おまけ:英語の意味
「Session Initiation Protocol」 = セッション開始プロトコル
💬 「セッションを開始(Initiation)するためのプロトコル」という意味。電話でいう「発信→相手が出る→通話→切る」の一連の流れを制御する、まさに通話の司会者みたいな存在だよ

参考資料

← 用語集にもどる