つぶやきテック

日々のつぶやきアウトプット

つぶやきVoIP

VoIP

  • インターネットなどのIPネットワークを利用して通信しようとする技術です。
  • より細かくみると、電話交換で行われてきた呼制御と、音声をIPパケット化する技術で成り立っています

SIP (Session Initiation Protocol)

  • マイクロソフト社が開発した、呼制御に用いられるプロトコルです。
  • アプリケーションプロトコルの1つであり、HTTPと同じように、リクエスト・レスポンスというメッセージをやりとりすることで呼制御を行います。

SIPメッセージ

  • REGISTER:電話機の位置情報登録~>DNSのAレコードを登録するみたいな感じ
  • INVITE:端末を通話へ招待
  • ACK:確認応答
  • BYE:呼の解放

INVITEメッセージの実例は下のような感じです*1

INVITE sip:bob@tokyo.com SIP/2.0
------------------------------ヘッダここから--------------------------------------------
Via: SIP/2.0/UDP pc33.sapporo.com;branch=z9hG4bKnashds8 //リクエストが辿ったパス
Max-Forwards: 70
To: Bob <sip:bob@tokyo.com>
From: Alice <sip:alice@sapporo.com>;tag=1928301774
Call-ID: a84b4c76e66710@pc33.sapporo.com
CSeq: 314159 INVITE                             // トランザクション毎にインクリメントされる値
Contact: <sip:alice@pc33.sapporo.com>
Content-Type: application/sdp 
Content-Length: 142
------------------------------ヘッダここまで--------------------------------------------
------------------------------ボディここから--------------------------------------------
v=0                                                                                      // プロトコルのバージョン
o=alice 53655765 2353687637 IN IP4 pc33.sapporo.com // 発信元及びセッション識別子
s=-                                                                                      // セッション名
t=0 0                                                                                   // セッションがアクティブな時間
c=IN IP4 pc33.sapporo.com                                               // セッション情報
m=audio 3456 RTP/AVP 0                                                  // メディア名・伝送アドレス
a=rtpmap:0 PCMU/8000                                                    // 0行以上のメディア属性行
------------------------------ボディここまで--------------------------------------------

なお、NATを通す場合、ボディに記載してあるIP情報まで変換する機能を もったNAT機器でないと、通話セッションが生成できないという問題が発生します。