SIP

読み:しっぷ / 英語表記:Session Initiation Protocol

音声通話や映像会議などのセッションを開始・変更・終了するためのアプリケーション層プロトコル。通信条件の記述にはSDP、メディアの転送にはRTPなどを組み合わせる。

イマシルちゃんの解説

電話では、声を届ける前に「相手を呼び出す」「出てもらう」という段取りがあるよね。
話し終わったら、通話を終える連絡も必要なんだ。
その段取りを伝える連絡係と、声を運ぶ係を分けて考えてみよう。
連絡係を通る道と、声が通る道は、いつも同じとは限らないんだよ。

より深い解説

呼制御の役割

SIPはRFC 3261を基本仕様とする。通話などの成立に必要なシグナリングを扱い、メディアの内容そのものを運ぶことは主な役割ではない。UDPやTCPの上で利用でき、TLSによる保護も使える。

端末とサーバ

要素役割
ユーザエージェント要求を送ったり応答したりする端末側の機能
SIPプロキシSIPの要求を適切な相手へ中継する
レジストラ利用者の識別先と現在の連絡先の対応を受け付ける

ここでの中継機能はSIPの信号を扱うものであり、Web閲覧用のHTTPプロキシと同一のプロトコルではない。利用者の識別子と、端末が実際に接続している場所を分けることで、連絡先の変更に対応できる。

主な要求

メソッド用途
INVITEセッションへの参加を求める。既存の通信条件の変更にも使う
ACKINVITEへの最終応答を確認する
BYE確立済みのセッションを終了する
CANCELまだ完了していない要求の処理を取り消す
REGISTER現在の連絡先を登録する
OPTIONS相手の対応能力を問い合わせる

「呼出し中の取消し」と「成立した通話の終了」は異なる操作である。登録を行っただけで、相手との通話が始まるわけでもない。

通話が成立する流れ

典型的な成功例では、発信側が開始要求を送り、着信側が呼出し中などの暫定応答を返す。相手が応答すると200 OKが返り、発信側が受諾を確認する要求を送る。途中の応答や認証要求は構成によって異なる。

成功応答の前後でSDPを交換し、使うコーデックやメディアの受信先などを合意する。RTPで運ぶ音声は、必ずしもSIPの中継サーバを通らない。メディア中継装置を用いる構成もある。

通信障害を切り分ける

現象確認する観点
相手を呼び出せない名前解決、登録情報、信号の経路、認証
呼び出せるが音が出ないSDPの接続先、NATの変換、メディアの許可ルール
音が片方向だけ届く両方向のアドレス・ポートと経路
音が途切れるパケット損失、ジッタ、遅延、帯域

TCPにも接続確立時の確認応答があるが、同名の語だけで同じ層の処理と考えてはいけない。SIPの要求と応答は、アプリケーションとして通話を制御する。

保護する範囲

信号をTLSで保護しても、音声が自動的に暗号化されるわけではない。メディアの保護にはSRTPなどを用いる。信号、音声、認証情報のそれぞれについて、どの区間を守るかを確認する。

実際の試験ではここに出る!

この用語が出てくる記事

↑