SIP

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

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

イマシルちゃんの解説

インターネットで通話するときは、声を運ぶだけでなく、相手を呼び出したり通話を終えたりする連絡も必要なんだ。
この連絡を担うプロトコルがSIPだよ。
たとえば発信側はINVITEという要求で相手を通話へ誘い、相手の応答を受けて通話の準備を進めるんだ。
成立した通話を終えるときにはBYEという要求を送るよ。
声や映像そのものはRTPなどが運ぶから、SIPが担当するのは通話を制御する仕事なんだ。
役割が分かれているから、相手を呼び出せるのに声が聞こえないときは、音声が通る経路を別に調べられるよ。

より深い解説

呼制御の役割

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

端末とサーバ

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

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

主な要求

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

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

連絡先の登録と認証

SIPの端末機能をSIP UA(User Agent)という。IP電話機やソフトフォンなどは、REGISTER要求で利用者のSIP URIと現在の連絡先をレジストラへ登録する。IP-PBXがレジストラの機能を持つ構成もある。ここでいう位置登録は、主に着信先となる連絡先の登録であり、GPSの位置情報を登録する意味ではない。

第三者による勝手な登録を防ぐため、サーバはダイジェスト認証で登録を要求したUAを確かめられる。典型的な成功例は次のようになる。

順序方向とメッセージ意味
1UAからREGISTER連絡先の登録を要求する
2サーバから401 UnauthorizedWWW-Authenticateでnonceなどのチャレンジを示す
3UAから認証情報付きREGISTER秘密とチャレンジなどから計算した応答値をAuthorizationに入れる
4サーバから200 OK認証と登録処理が成功したことを知らせる

最初の401は、パスワードが誤っていると確定したことを必ずしも意味しない。まだ認証情報のない要求に、計算材料を渡す正常な認証手順としても使われる。REGISTERの成功応答に、INVITEの成功応答で使うACKは送らない。

SIPのDigestでは古いMD5だけでなく、RFC 8760で追加されたSHA-256やSHA-512/256も扱う。ダイジェスト認証はSIP本文や音声全体の暗号化ではないので、通信路やメディアの保護は別に行う。

ブラウザからSIPを使う

RFC 7118はSIPメッセージをWebSocketで運ぶ方法を定める。TLSで保護した接続をWSSという。HTTP/1.1のUpgradeによってWebSocketの接続を確立した後、その上でREGISTERによる登録やINVITEによる発信を行える。

たとえばブラウザで通話サービスへ接続する場合は、WebSocket接続の確立、必要な登録と認証、INVITEによる通話開始の順に処理を進める。WebSocketが運ぶのはこのシグナリングであり、話し声を同じ経路でSIPメッセージとして流すという意味ではない。WebRTCなどで音声を送る場合は、メディアの経路と暗号化を別に確立する。

通話が成立する流れ

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

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

通信障害を切り分ける

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

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

保護する範囲

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

参考資料

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

ネットワークスペシャリスト

午後Ⅱ
午前Ⅱ

テクニカルエンジニア(ネットワーク)

午前

この用語が出てくる記事

↑