SIP / Session Initiation Protocol
■ SIP。Session Initiation Protocol。 インターネットやLANなどのネットワーク上で マルチメディアセッションを確立するために使用される 呼制御プロトコル。 1999年にRFC2543として規定され、2002年にRFC3261として改版された。 SIPが可能にするサービスには、 ビデオ会議や電話、インスタントメッセージ、プレゼンスなど さまざまなものが含まれます。 SIPは、通信を行なうインターネット上のエンドポイント(SIP UA:User Agent)が お互いを発見し、相互にセッションの特性の合意を行い、 セッションの確立と開放を行うためのプロトコルである。 SIPはセッションの確立とその開放のためのプロトコルで、 実際の通信はSIPによって合意されたプロトコルによって行なわれる。 電話の場合、代表的なプロトコルはRTPである。 エンドポイントであるSIP UA同士が 直接、SIPを用いてセッションの確立を行なうこともできるが、 通常はSIPサーバの1種であるSIPプロキシサーバを経由して、 セッション確立のメッセージが転送されることで、 エンドポイント間のセッションの確立が行われる。 ISP各社のIP電話サービスに広く採用されている。 Microsoft社のWindows MessengerもSIPを採用している。 音声、FAX、電子メールなどの各種メディアを一元的に扱える ユニファイド・メッセージなどの実現が可能。 将来的には、最も期待されている。 ■ SIPを構成する要素 (1) SIPサーバ。 IPネットワーク上で SIP通話に必要なセッション確立などの処理を仲介するサーバ。 SIPサーバの種類として、 プロキシサーバ、リダイレクトサーバ、登録サーバの3種類がある。 - プロキシサーバ。Proxy Server。 SIPリクエストを転送したり、代理送信するサーバ。 - リダイレクトサーバ。 SIPリクエストを受け取り、着信側の現在のアドレスを発信側に返すサーバ。 プロキシサーバとは違い、SIPリクエストを転送しない。 ロケーションサーバ??? - 登録サーバ。レジストラ。 UAの現在位置を登録するリクエスト(REGISTERリクエスト)を受け取り、 ロケーションサーバなどに登録されている情報を更新するサーバ。 プロキシサーバー(Proxy Server) UACからのSIPリクエストを 次のサーバー(ユーザーエージェントサーバーを含む)に中継するサーバー。 ネットワーク構成によっては、複数のサーバーをホップする可能性がある。 認証、許可、ネットワークアクセス制御、ルーティング、 SIPリクエスト転送、セキュリティなどの機能も提供する。 リダイレクトサーバー(Redirect Server) リダイレクトサーバーはリクエストを受け取り、 着信側の現在のアドレスを発信側に知らせる役割を持つ。 UACはその後、返された着信側アドレスに発信し直す。 プロキシサーバーとは違いSIPリクエストを転送しない。 登録サーバー(Registrar) UACの現在位置を登録するリクエスト(REGISTERリクエスト)を受ける。 登録サーバーは、通常、プロキシサーバーやリダイレクトサーバーと 同じホスト上で動作する。 上記3つのサーバーとは別に、登録サーバーからの登録情報をストアし、 リダイレクトサーバーやプロキシサーバーによる着信URIの参照要求に応答する ロケーションサーバーを設置することもできます。 ロケーションサーバーはSIPサーバーと同じ場所に設置することができます。 ただし、SIPサーバーがロケーションサーバーに問い合わせる手段は SIPでは特に規定していません。 (2) SIP UA ユーザー端末(IP電話など)。 以下の3つを総称してSIPサーバーといいます。 SIPサーバーには、これら3つのサーバー機能をすべて実装する必要はありません。 ■ SIPのメッセージ形式 SIPのメッセージ形式は、 インターネットで利用されている標準的な形式(SMTP、HTTP等)と非常に似ており INVITEリクエストの場合、本文はSDPで記述されます。 開始行 ヘッダ(複数可) 空行 本文(無くてもよい) 開始行とヘッダでは、サービスやアドレス、プロトコル種別など、 コールの種類を定義します。 本文は存在しない場合もあります。 存在する場合には、そのメッセージの種類(リクエストまたは応答)、 および、メッセージに含まれるメソッドや応答コードによって、 その解釈方法が決まります。 本文は通常、SDPで記述されます。 ■ SIPのアドレス形式 SIPは通信相手を識別するための識別子として、 URIの1種であるSIP URIを用いる。 このことは、RFC2363に規定されている。 SIP URIは、たとえば、sip:taro@example.co.jpのような メールアドレスに似た形式を持つ。 ここでexample.co.jpは、着呼側のドメイン名で、 taroはそのドメインのロケーションサーバに登録されたユーザである。 発呼側のSIPプロキシは、 このSIP URIから、着呼側のSIPプロキシを発見する。 発見の手順は、RFC3263に規定されている。 発呼側のSIPプロキシは、 SIP URIのドメイン部分を、DNSを用いて、 NAPTRレコード、SRVレコード、AまたはAAAAレコードの順に検索を行い、 着呼側のSIPプロキシのIPアドレスを得る。 SIPで通話相手を指定するときのアドレス形式(SIP URI)は、 Eメールアドレスに似ています。 以下のような形で指定します。 sip:user:password@host:port;uri-parameters?header SIP URIの例 sip:hoge@softfront.co.jp sip:hoge@softfront.co.jp:5090 (ポート番号を指定) sip:hoge:hogepass@softfront.co.jp (パスワードを指定) sip:hoge@softfront.co.jp;transport=tcp (トランスポートを指定) sip:softfront.co.jp;method=REGISTER?to=hoge%40softfront.co.jp (REGISTERメソッドでhogeのアドレスを登録) ■ SIPのメソッド SIPでは、メソッドを指定することでコマンドを実行します。 標準で以下のメソッドが定義されています。 INVITE ユーザーをコールに招待します。 ACK INVITEに対する応答を受け取ったことを知らせます。 BYE コールを終了します。 CANCEL 未応答のINVITEリクエストをキャンセルします。 OPTIONS サーバーの能力情報を問い合わせます。 REGISTER ユーザーの現在位置を登録します。 INFO セッションに関係する情報(DTMFデジットや画像等)を伝えます。 ■ SIPの応答コード SIPでは、HTTP/1.1の応答コードの一部を拡張して利用しています。 以下の応答コードが含まれます。 100番台 暫定応答 リクエストを受信し、処理中である。 例: 100 Trying 、180 Ringing 等 200番台 成功応答 リクエストが理解され、受け入れられた。 例: 200 OK 、202 Accepted 300番台 リダイレクト応答 リクエストを完了するために、更なる処理が必要。 例: 300 Multiple Choices、301 Moved Permanently 等 400番台 リクエストエラー応答 リクエストの書式が間違っていたか、このサーバーでは処理できない。 例: 400 Bad Request、401 Unauthorized 等 500番台 サーバーエラー応答 サーバーでのリクエスト処理に失敗した。 例: 500 Server Internal Error、501 Not Implemented 等 600番台 グローバルエラー応答 リクエストをどのサーバーでも処理できない。 例: 600 Busy Everywhere、603 Decline 等 ■ SIPによるコールフロー (1) 登録時。 SIP UAが、SIP REGISTERリクエストを用いて、 SIP UAを利用するユーザのSIP URIと、 SIP UAに到達するためのSIP URIの対応の登録要求を、 SIP登録サーバに行なう。 SIP登録サーバは、ロケーションサーバに対して、その対応を登録する。 この部分は、SIPプロトコル範囲外である。 この登録の手順は、通常周期的(標準値で1時間ごと)に行なわれる。 (2) 通話開始時。 発呼側のSIP UAは、SIPプロキシサーバに対して、 INVITEリクエストを用いて、通信相手のSIP URIを送る。 SIPプロキシサーバはSIP URIのドメイン名部分を取り出し、 DNSに問合せて、着呼側のSIPプロキシのIPアドレスを得る。 着呼側のSIPプロキシに対して、INVITEリクエストを転送する。 着呼側のSIPプロキシは、 ロケーションサーバに対して、通信相手のSIP URIに対応する、 SIP UAの問合せを行なう。 着呼側SIP UAに対してINVITEリクエストを転送する。 着呼側のSIP UAは、 このINVITEリクエストに対する応答を発呼側のSIP UAに返し、 発呼側のSIP UAはACKリクエストによる確認メッセージを返した後、 RTPによる通信を開始する。 (3) 相手が通話中の場合。 (4) 通常切断時。 (5) 異常切断時。 SIPパケット、音声パケットとも一定時間(10秒程度)届かない場合、 IP電話アダプタは自動的に通話を切る処理に入る。 ■ ユニファイドメッセージ。Unified Message。 電子メール、音声、FAXなどの各種メッセージを統合するソリューション。 ユーザは、単一のアクセスデバイスを用いて、 すべてのメッセージ情報を一元的に管理することができるようになる。 例えば、電子メールソフトの受信ボックスで、 電子メールと同様に、音声、FAXのメッセージを確認したり、 クリックするだけで返信したりできる。 あるいは、外出先で携帯電話から電子メールを耳で聞いて確認することができる。 企業にとっては、時間の節約や作業の簡便化に役立つ、 コストメリットを生む技術として注目されている。 ■ 参照URL ソフトフロント社 SIPテクノロジー http://www.softfront.co.jp/tech/sip.html アットマークIT トレンド解説 http://www.atmarkit.co.jp/fnetwork/trend/20030405/sip.html 以上。 2004/01/21 pm