ngn時代の重要プロトコル session initiation … 目次 • sipとは •...

23
NGN時代の重要プロトコル Session Initiation Protocol(SIP) 概要資料 2008年3月31日初版 日本電気株式会社 第二システムソフトウェア事業部

Upload: trankhanh

Post on 24-May-2018

235 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

NGN時代の重要プロトコル Session Initiation Protocol(SIP)

概要資料

2008年3月31日初版

日本電気株式会社

第二システムソフトウェア事業部

Page 2: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

2

目次•

SIPとは

SIPは双方向のプロトコル

SIP URIの書き方

SIPのトランスポートプロトコル

SIPのメッセージ構造

SIPのリクエストメソッドとレスポンスコード

SDP

ダイアログ・セッション・メディア

トランザクション

SIPネットワークの構成(SIPサーバなし)

SIPネットワークの構成(SIPレジストラサーバ)

SIPネットワークの構成(SIPリダイレクトサーバ)

SIPネットワークの構成(SIPプロキシサーバ)

プロキシ経由のメッセージの流れ1

プロキシ経由のメッセージの流れ2

プロキシサーバの種類

SIPタイマ

SIPのアドレス解決

参考文献

©

NEC Corporation 2008

Page 3: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

3

SIPとは

SIPは、IPネットワーク上でマルチメディアセッションを開始

/ 変更

/ 終了するため

のアプリケーション層のシグナリングプロトコル

•シンプルなプロトコル構造、HTTP 1.1ライクなテキストの

メッセージ•メディアに依存しない•リクエスト・レスポンス型で双方向(Push型を実現)

•保留、転送、会議、コールウェイティング(キャッチホン)などのさまざまな電話機能

•相手の現在の在席状態(プレゼンス)を把握可能•インスタントメッセージのやり取りをリアルタイムに実現

できること

特徴

多くの製品がSIPに対応•IP電話機•携帯電話(FOMA N902iLなど)•インスタントメッセンジャー(Windows Messengerなど)•ソフトフォン(NEC DtermSP30,フリーソフト

X-Liteなど)

普及状況

NGN(Next Generation Network)では、SIPが呼制御プロトコルとして利用されるSIP関連規約の標準化が進んでいる

SIPに関係するプロトコル

アプリケーション層

トランスポート層

ネットワーク層

RTP

IP

UDPTCP

RTCP

映像・音声コーデック

映像・音声アプリ

呼・端末制御

SCTP

TLS

SIP

SDP

参考文献[003]より

©

NEC Corporation 2008

Page 4: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

4

SIPは双方向のプロトコルSIPネットワークは、ユーザエージェント(UA)とSIPサーバで構成される

ユーザBユーザA

ユーザBユーザA

UAC UAS

UACUAS

話したい

いいですよ

さようなら

はい、さようなら

UAは簡単にはSIP端末のこと。UAは以下の機能を持つ。• ユーザエージェントクライアント(UAC)

リクエストを送信する• ユーザエージェントサーバ(UAS) レスポンスを返す

●Aさんから電話を掛ける●Aさんから電話を掛ける

●Bさんが電話を切る●Bさんが電話を切る

SIPは双方向プロトコルであり、UAは、UAC,UASの二つの役目を行う

SIP

SIP

会話が終了

©

NEC Corporation 2008

Page 5: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

5

SIP URIの書き方

sip:<ユーザ識別子>:<パスワード>@<ホスト>:<ポート番号>;<URIパラメータ>?<ヘッダ・フィールド>

宛先ホスト上

のユーザ名 平文なので

使用は推奨

されていない

宛先ホストの

FQDN(推

奨)*かIPアド

レス 宛先ホスト

上のポート番

号。デフォル

トは

SIP(5060)、

SIPS(5061)

トランスポー

トプロトコル

の指定など

sip:[email protected]

ここが”sips”の場合、ト

ランスポートプロトコルは

「TLS」となる

tel URIの場合

tel:+81-11-123-4567 *FQDN:フルドメイン名付きホスト名

©

NEC Corporation 2008

Page 6: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

6

SIPのトランスポートプロトコル利用目的に応じてプロトコルが決まる

SIPを暗号化したい TLS(つまりSSL)

SCTP

YES

NO

YES

TCPIP層でフラグメント化される

ほどメッセージが大きい?

YES

UDPNO

マルチストリームなどのTCP

以上の機能を使いたい

NOこちらは

サポート必須

SIP規約上、

サポートは

任意

©

NEC Corporation 2008

Page 7: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

7

SIPのメッセージ構造SIPは、HTTPと同様にテキストベースであり、非常にシンプルな構造

SIP/2.0 200 OK

To: sip:[email protected]:5060Content-Length: 0Contact: <sip:[email protected]:5060;transport=udp;wlsscid=1ae3fd44d3cdfe>CSeq: 1 INVITECall-ID: xyzzy50c3d7b40200d6b8efa5d48ad09fbf3b(8bd35e318117584004e425ba7051b7b4:192.168.0.160)@192.168.0.160Via: SIP/2.0/UDP 192.168.0.160:5060;wlsscid=1ae3fd44d3cdfe;branch=z9hG4bK8f9b17fe6a647f820fa35cb67f4a716aFrom: <sip:192.168.0.160:5060>;tag=75f1ad39Max-Forwards: 70

INVITE sip:[email protected]:5060 SIP/2.0

空行

[データがない場合もある]

開始行

メッセージヘッダ

メッセージボディ

v=0o=TestUser 29690723 29698822 IN IP4 192.168.0.13s=X-Litec=IN IP4 192.168.0.13以降略…………………………

Via: SIP/2.0/UDP 192.168.0.160:5060;wlsscid=1ae3fd44d3cdfe;branch=z9hG4bK8f9b17fe6a647f820fa35cb67f4a716aFrom: <sip:192.168.0.160:5060>;tag=75f1ad39To: <sip:[email protected]:5060>;tag=2065010947Contact: <sip:[email protected]:5060>Call-ID: xyzzy50c3d7b40200d6b8efa5d48ad09fbf3b(8bd35e318117584004e425ba7051b7b4:192.168.0.160)@192.168.0.160CSeq: 1 INVITEContent-Type: application/sdpServer: X-Lite release 1105xContent-Length: 309

空行

レスポンスメッセージ例

開始行

メッセージヘッダ

メッセージボディ

UAC UAS

OKUAC UAS

INVITEリクエストメッセージ例

ここにSDPが記述さ

れている

©

NEC Corporation 2008

Page 8: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

8

SIPのリクエストメソッドとレスポンスコード新たなRFCによりリクエストメソッドおよびレスポンスコードが追加されている

リクエストメッセージ INVITE セッション確立 RFC 3261

ACK INVITEに対する最終レスポンスの受信確認 ↑

BYE セッション終了 ↑

CANCEL 確立途中のセッションのキャンセル ↑

REGISTER 所在の登録 ↑

OPTIONS 相手の能力問い合わせ ↑

INFO セッション制御情報の送信 RFC 2976

UPDATE セッション情報の更新 RFC 3311

SUBSCRIBE イベントの送信要求 RFC 3265

NOTIFY イベント状態の通知 RFC 3265

PRACK 暫定応答用 RFC 3262

MESSAGE インスタントメッセージなどのテキスト送信 RFC 3428

REFER 第三者へのコンタクト要求 RFC 3515

PUBLISH UAへのイベント状態配信 RFC 3903

主なレスポンスコード 100 Trying RFC3261

200 OK ↑

302 Moved Temporarily ↑

500 Server Internal Error ↑

©

NEC Corporation 2008

Page 9: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

9

SDP•

Session Description Protocol(SDP)は、セッションを定義するための情報交換規則

UA間にセッションを確立するとき、UACからのINVITEリクエストのメッセージボディに記述

される。また、UASからの200 OKメッセージのメッセージボディにも記述される

v=0o=TestUser 28972475 28972537 IN IP4 192.111.22.33s=X-Litec=IN IP4 192.168.0.13t=0 0m=audio 8000 RTP/AVP 0 8 3 98 97 101a=rtpmap:0 pcmu/8000a=rtpmap:8 pcma/8000a=rtpmap:3 gsm/8000a=rtpmap:98 iLBC/8000a=rtpmap:97 speex/8000a=rtpmap:101 telephone-event/8000a=fmtp:101 0-15a=sendrecv

SDP例

バージョンセッション開始者と識別情報セッション名コネクション情報開始・終了時刻メディア種別・プロトコルメディア属性

SIPの方で制御す

るのでいつも0

ここではRTPの属性

フォーマット固有パラメータ

SDPは、SIPに依存していないので、SIP以外でも使用できる。また、SIPも、SDP以外の

セッション記述方法を使用することを許容している

©

NEC Corporation 2008

Page 10: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

10

ダイアログ・セッション・メディア

•UAとUAの関連付け。プロキシサーバなど中継するUAは関係しない

•SDPにより結びついたUAとUAの関連付け。1ダイアログは1つのセッションが関連付けされる

•UA間で送受信さえる音声や映像•1セッションは複数のメディアを管理することができる。メディアのないセッションは通常はない

SIPレイヤ

SIPレイヤ ダイアログ

セッションレイヤ

セッションレイヤ

メディアレイヤ

メディアレイヤ

セッション

映像メディア

音声メディア

ダイアログ

セッション

映像メディア

音声メディア

SIP

SDP

RTP

RTP

UA UASIP/2.0 200 OK

v=0o=TestUser 29690723 29698822 IN IP4 192.168.0.13s=X-Litec=IN IP4 192.168.0.13t=0 0m=audio 8000 RTP/AVP 0 8 3 98 97 101a=rtpmap:0 pcmu/8000以降略…………………………

Via: SIP/2.0/UDP 192.168.0.160:5060;wlsscid=1ae3fd44d3cdfe;From: <sip:192.168.0.160:5060>;tag=75f1ad39To: <sip:[email protected]:5060>;tag=2065010947Contact: <sip:[email protected]:5060>Call-ID: xyzzy50c3d7b40200d6b8efa5d48ad09fbf3b(8bd35e31811CSeq: 1 INVITEContent-Type: application/sdpServer: X-Lite release 1105xContent-Length: 309

空行

レスポンスメッセージ例

ダイアログ

セッション

メディア

参考文献[011]より

©

NEC Corporation 2008

Page 11: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

11

トランザクション

SIPサーバ

(ステートレスプロキシサーバ)UAC UASSIPサーバ

(ステートフルプロキシサーバ)

INVITE

OK

トランザクション トランザクション

INVITE

OK

ステートレスプロキシは、リクエスト・レスポンスを

次に送るだけで再送処理などを行わないため、ト

ランザクションの関連付けに影響しない

一対のUAまたはSIP(ステートレスプロキシサーバ以外)の間の関連付け

リクエスト-レスポンスで1トランザクション

©

NEC Corporation 2008

Page 12: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

12

SIPネットワークの構成(SIPサーバなし)

発信

INVITE

応答

ユーザA ユーザB

RTPもしもし

はいはい

OK

帯域制御やマルチメディアデータ

のハンドリングなどは、SIPの役目

ではない。それらにはRTPなどを使用する

ダイアログ・セッション

開始のコマンド

©

NEC Corporation 2008

Page 13: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

13

SIPネットワークの構成(SIPレジストラサーバ)

① REGISTER私のアドレスは

***.***.**.**です。

REGISTER①’

私のアドレスは

***.***.**.**です。

ロケーションサーバ

ここの通信方法をSIPでは規定しない。例えばLDAPを使用することができる

ユーザA ユーザB

SIP URISIP URIコンタクトアドレス

コンタクトアドレス

SIP URISIP URIコンタクトアドレス

コンタクトアドレス

SIP URISIP URIコンタクトアドレス

コンタクトアドレス

・・・・・・

REGISTER sip:reg.abc.necst.nec.co.jp

SIP/2.0Via: SIP/2.0/UDP 192.168.0.13:5060;rport;branch=z9hG4bK4………..From: TestUser <sip:[email protected]>;tag=833195397To: TestUser <sip:[email protected]>Contact: "TestUser" <sip:[email protected]:5060>Call-ID: [email protected]: 9525 REGISTERExpires: 1800Max-Forwards: 70User-Agent: X-Lite release 1105xContent-Length: 0

宛先となるレジストラサーバ

登録するURI

コンタクトアドレス

リクエストメッセージ例

SIPサーバ

(レジストラサーバ)

©

NEC Corporation 2008

Page 14: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

14

SIPネットワークの構成(SIPリダイレクトサーバ)

SIPサーバ1(プロキシサーバ)

SIPサーバ2(リダイレクトサーバ)abc.necst.nec.co.jp

SIPサーバ3(プロキシサーバ)newoffice.necst.nec.co.jp

ユーザBは、サーバ2が

知っているはずなので呼

び出し

いやいや、

ユーザBはサー

バ3が知ってま

すよ

ユーザA ユーザB

RTPもしもし

はいはい

INVITEsip:[email protected]

INVITEsip:[email protected] 302 Moved Temporary

Contact: sip:[email protected]

INVITEsip:[email protected]

SIP URISIP URIコンタクトアドレス

コンタクトアドレス

ロケーションサーバ

ロケーションサーバに問い合わ

せ、ユーザBの移動先を調べ

INVITEsip:[email protected]

.jp

©

NEC Corporation 2008

Page 15: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

15

SIPネットワークの構成(SIPプロキシサーバ)

SIPサーバ

(プロキシサーバ)

発信

応答

ユーザAユーザB

RTPもしもし

はいはい

① ②

③④

200 OK200 OK 応答

INVITE INVITE発信

UAC UAS

©

NEC Corporation 2008

Page 16: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

16

プロキシ経由のメッセージの流れ1

RTPもしもし はいはい

SIPサーバ A(プロキシサーバ)

200 OK

100 Trying

INVITE INVITE

SIPサーバ B(プロキシサーバ)

INVITE

180 Ringing

100 Trying

180 Ringing200 OK

180 Ringing200 OK

ACK

BYE200 OK

相手の呼び

出し音

プルルル!

•SIPサーバがRecord-Routeフィールドデータを設定しない場合

INVITE完了後、UACから送られるメッセージは、SIPサーバで中継しない

Record-Routeフィールドは、経由したプロキシの情報を示す。プロキシサーバがRecord-Routeに自分を設定するかどうかは任意

SIPメッセージヘッダのRecord-Routeフィールドの有無により流れが異なる

©

NEC Corporation 2008

Page 17: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

17

プロキシ経由のメッセージの流れ2

RTPもしもし はいはい

SIPサーバ A(プロキシサーバ)

200 OK

INVITE

SIPサーバ B (プロキシサーバ)

200 OK

•SIPサーバがRecord-Routeフィールドデータを設定した場合

INVITERecord-RouteSIPサーバA

INVITE

SIPサーバA

SIPサーバB200 OK

ACKBYE

BYE

ACK

RouteSIPサーバB

RouteSIPサーバA

BYE

200 OK

200 OK

200 OK

Record-Routeフィールドに自分を設定しないプロキシサーバは、ACKやBYEを

受け取れないので、後述するコール・ステートフル・プロキシになることができない

ACKSIPサーバB

INVITE完了後も、UACから送られるメッセージは、SIPサーバで中継する

©

NEC Corporation 2008

Page 18: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

18

プロキシサーバの種類

トランザクションの状態を管理する。実際には、リクエストの情報を保持し、リクエストの分岐(フォー

ク)や暫定レスポンスの送信を行うことができる。

トランザクション・ステートフル・プロキシ

受け取ったリクエストやレスポンスを送信先に中継するだけ。暫定メッセージの送信や再送信は行わ

ない。ステートフルに比べて負荷が軽い。大規模向き。

ダイアログの状態を管理する。つまり、誰と誰が会話中かを管理できる。

SIPサーバ

トランザクション・ステートレス・プロキシ

コール・ステートフル・プロキシ

さらに高機能だと

SIPサーバ

フォーク

暫定レスポンス

©

NEC Corporation 2008

Page 19: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

19

SIPタイマ

コールステートフルプロキシの場合、定期的なダイアログの存在確認と、確認

失敗時の自動的ダイアログクローズの処理が必要

SIPサーバ

(プロキシサーバ)UA UA

INVITEINVITE

OKOK

ACKACK

障害発生 障害発生

BYEが来ないの

で通話中のまま

と思ってしまう

SIPサーバ

(プロキシサーバ)

UA UA

INVITESupported: timerSession-Expires: 1800

INVITESupported: timerSession-Expires: 1800

OKOKACK

ACK

障害発生

Session-Expiresを経過しても、

INVITEかUPDATEが来ないの

で、セッションを破棄

•UAがタイマをサポートしていないとき •UAがタイマをサポートしているとき

INVITESupported: timerSession-Expires: 1800

INVITESupported: timerSession-Expires: 1800

タイマリセット

BYE BYE

BYE BYEタイムアウト!

障害発生

参考文献[011]より

©

NEC Corporation 2008

Page 20: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

20

SIPのアドレス解決

UAやSIPサーバは、他ドメインのSIPプロキシサーバのIPアドレス、トランスポート

プロトコル、ポート番号をDNSサーバから取得する必要がある

SIPサーバ群

(プロキシサーバ)

SIPサーバ群

(プロキシサーバ)

ドメインA ドメインB

SIP Trapezoid(台形)UAC UAS

他ドメインのどこに転送するかを、リクエスト時と、レスポンス

の再送時に調べる必要がある

DNSサーバ

DNSに同一サーバ名で複数のSIPサーバを登録することで、

負荷分散

©

NEC Corporation 2008

Page 21: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

21

参考文献

•[002] 通信系・情報系サービスを融合する「SIP Servlet」 (@IT)

http://www.atmarkit.co.jp/fjava/kaisetsu/j2eewatch09/j2eewatch09.html

•[001] JSR 116: SIP Servlet API (Java Community Process)

http://jcp.org/en/jsr/detail?id=116

Webサイト

•[011] 澤田 拓也, 池田 徹, 木下 岳人, 西澤 哲夫, 川島 倫央,”実践SIP詳解テキスト”,

リックテレコム,

2005

•[010] 千村 保文,村田 利文,”改訂版SIP教科書”,

インプレス

, 2004

書籍

•[003] SIP入門 ~プロトコル概要からSIPの適用、将来像まで~(JPNIC)

http://www.nic.ad.jp/ja/materials/iw/2003/proceedings/T9.pdfソフトフロント

阪口氏作成

•[004] ソフトフロント:テクノロジトップ

http://www.softfront.co.jp/tech/sip.html

©

NEC Corporation 2008

Page 22: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

22

■ お問合わせ先

日本電気株式会社 第二システムソフトウェア事業部

Tel

: 03-3456-4321 Email : [email protected]

■ 製品ホームページ

http://www.nec.co.jp/WebOTX/

■ お問合わせ先

日本電気株式会社 第二システムソフトウェア事業部

Tel

: 03-3456-4321 Email : [email protected]

■ 製品ホームページ

http://www.nec.co.jp/WebOTX/

信頼性、柔軟性、サポート3つの安心でお客様のシステムを支えます!!

Leading-edge technologies and time-proven quality for your evolving-business.

©

NEC Corporation 2008

Page 23: NGN時代の重要プロトコル Session Initiation … 目次 • SIPとは • SIPは双方向のプロトコル • SIP URIの書き方 • SIPのトランスポートプロトコル

©

NEC Corporation 2008