Session Initiation Protocol

Session Initiation Protocol (SIP) について



Session Initiation Protocol(SIP)は、インターネット上で2つ以上のクライアント間でセッションを確立するためのIETF標準の通信プロトコルです。主にIP電話の呼制御に利用されていますが、ビデオ会議やインスタントメッセージングなど、様々なリアルタイム通信に応用できます。

概要



SIPは、H.323に代わる汎用的なセッション制御プロトコルとして開発されました。ここでいうセッションとは、OSI参照モデルの第5層とは異なり、通信参加者同士が対等な関係でリアルタイム通信を行うことを指します。SIPでは、この関係を両者がクライアントとサーバー両方の機能を持つことで表現しています。

SIPはHTTPを基に作られた要求-応答型のプロトコルであり、要求側をUAC(User Agent Client)、応答側をUAS(User Agent Server)と呼びます。ただし、両者がこの両方の役割を担うことが可能です。HTTPがTCPを前提とするのに対し、SIPはUDPをベースに設計されましたが、信頼性のためTCPが使われることも多いです。また、セキュリティやプライバシー保護のための機能拡張も備えています。

特徴



SIPは、同じリアルタイム・マルチメディア・データ通信プロトコルであるH.323と比較して、以下の点で特徴があります。

セッションの開始、変更、終了のみを行うため、プロトコルがシンプルである。
HTTP 1.1に似たテキストベースのメッセージフォーマットであり、機能の追加や拡張が容易である。
インターネットアーキテクチャに基づき、端末側で自由にサービスを追加できる。
従来の電話網のような集中制御型ではなく、分散型のアーキテクチャを採用している。
VoIPでの利用では、音声などのストリーミング送受信にはRTP/RTCP、制御にはSDPが使われる。
標準ポート番号として5060番が規定されている。

ユーザーエージェント (UA)



SIPリクエストを処理する論理的なエンティティをユーザーエージェント(UA)と呼び、以下の2つの要素で構成されます。

ユーザーエージェントクライアント (UAC):SIPリクエストを生成・送信し、応答を受信・処理する。
ユーザーエージェントサーバー (UAS):SIPリクエストを受信・処理し、応答を生成・送信する。

従来の電話システムにおける交換機のように見えるSIPサーバーは、実際にはUAからの依頼に基づいて認証と電話番号解決を行う役割を担います。サービスは発信側のUAが要求し、着信側のUAが提供する、というインターネットのブラウザとWebサーバーのような関係です。つまり、SIPの電話機は発信時にはクライアントとして、着信時にはサーバーとして振る舞います。

SIPサーバ



SIPサーバーは、UA間のメッセージ交換を中継する役割を担います。通常、UAはSIPサーバー(プロキシサーバー)を介してメッセージを交換します。これにより、UAは通信相手のIPアドレスを意識する必要がなくなり、相手のIPアドレスが変化した場合でも通信を維持できます。

SIPサーバーには、以下の機能があります。

プロキシサーバ:SIPメッセージの転送を行う。
リダイレクトサーバ:SIPリクエストの次の転送先を応答で送信する。
登録サーバー (Registrar):UAのコンタクトアドレスを場所サーバーに登録する。
場所サーバ:UAのネットワーク上の場所を管理するデータベースサーバー。

これらの機能は物理的に分離することも、1つにまとめることもできます。なお、従来の交換機の付加サービスのような機能は、厳密にはSIPサーバーではなくUASの集合体として構成されます。

メソッド



UACがUASに何らかの処理を要求することをメソッドと呼び、代表的なものに以下のものがあります。

INVITEセッション確立要求
ACK:INVITEの応答確認
BYEセッション解放要求
OPTIONS:通信相手の能力問い合わせ
REGISTER:位置情報などをレジストラに登録

SIPにおけるユーザーアドレスとその構造



SIPにおける電話番号に相当するものがSIP URI(Uniform Resource Identifier)であり、「名前@ドメイン」という形式をしています。SIP URIは特定の個人や端末を表すとは限らず、グループを表すことも可能です。これにより、代表番号のような使い方ができます。

SIPにおける標準的なシーケンス



SIPサーバーを経由しない、AliceとBobの会話の標準的なシーケンスは以下の通りです。

1. AliceがBobにINVITEメッセージを送信
2. Bobが180 RingingメッセージをAliceに送信
3. Bobが200 OKメッセージをAliceに送信
4. AliceがACKメッセージをBobに送信
5. RTPメディアによる双方向通信
6. BobがBYEメッセージをAliceに送信
7. Aliceが200 OKメッセージをBobに送信

SIPサーバーを経由する場合、各プロキシサーバーが100 Trying応答を返す以外は、上記の流れを中継するだけです。

関連項目



VoIP
IP電話
MGCP
NOTASIP
Asterisk (PBX)
IPマルチメディアサブシステム

外部リンク



RFC 3261 - Session Initiation Protocol
RFC 4566 - Session Description Protocol
SIP Working Group - IETF
* SIP Protocol Overview

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。