2007年3月17日土曜日

SIP入門 (第3回 基本シーケンス)

●基本シーケンス

次にSIPを使ったセッションの制御の手順を見てみることにする。

セッションの確立までの手順は、以下のようになる。

①発信者から着信者に、セッションを開始する要求(INVITE)が送られる
②着信者から発信者に、今呼び出し中(電話ならベルが鳴ってる!)ことを知らせる
(180 Ringing)
③着信者から発信者に、セッション開始要求を受け入れたことを知らせる(200OK)
④発信者から着信者に、200OK応答を受け取ったことを通知(ACK)する

 発信者           着信者
  | ① INVITE                 |
  |-------------------->|
  | ②180 Ringing           | 電話のベルが鳴る!!
  |<--------------------|
  | ③200 OK                  | 受話器を上げる
  |<--------------------|
  | ④ACK          |
  |-------------------->|
  |               |
  |<=== 通話開始 ===>|


180 Ringingは呼び出し中であることを意味する応答信号で、200OKはINVITEの要求を受け入れたことを意味する応答信号である。ACKは応答信号を受け取ったことを意味するメソッド(リクエスト)である。

「要求(①INVITE)→受諾(②200OK)→受諾確認応答(③ACK)」
の3つの手順を踏んでから通信を開始することから、この手順は3ハンドシェークと呼ばれている。


※要求(通信してよ)→受諾(いいよ)で事が足りそうなところ、あえてACK(いいよというのを確かに聞いたよ)というのを伝えるのは、発信者と着信者の間はネットワークで結ばれていて、応答がなくなってしまうかもしれないし、そこまでいかなくても届くのが遅れるかもしれないということを考慮したためである。着信者の立場からすると、『OKしたけど、本当に届いているのか』ということがわからない。だから、必ず発信者は、INVITEに対する200OKを受けた場合には、ACKを相手に送るというルールとなっている。また、着信者が200OKを送ったのにいつまでたってもACKがこない場合には、200OKはなくなったんだ、と理解して、同じ200OKを再度送る(再送)ということが決められている。


SIPandVoIPトップに戻る

0 件のコメント: