VoIP技術者のための実践講座 [第3回WireSharkでIP-PBXシグナリングを見る]


VoIP技術者のための実践講座 [第3回WireSharkでIP-PBXシグナリングを見る]

 

今回で3回目の実践講座となります。前回WireSharkでSIPのシグナリングを見てきましたが、今回はIP-PBXではどういったメッセージのやり取りがなされているかを見ていくことにしましょう。「第2回 WireSharkでSIPシグナリングを見る」をまだ見ていない人は先にそちらを見ることをお勧めします。また、IP-PBXのイメージがない方は先に別講座である、「基礎から始めるIP-PBX [第2回 シグナリングにおけるIP-PBXの仕組み]」を見られることをお勧めします。

 

それでは見ていきましょう。まずは前回のおさらいから。

SIPサーバのみの場合Wiresharkで現実を確認

SIP電話機A

SIP ID:y1046, ip address: 172.16.200.50

SIP電話機B

SIP ID: y1530, ip address: 172.16.200.152

SIPサーバー

172.16.200.84

この例を図で書くと以下のような構成です。

sip_explanation1

実験はSIPサーバーにインストールしてあるWiresharkのパケットキャプチャをONにして、SIP電話機AからSIP電話機Bに電話を掛け、通話後にSIP電話機Bが電話を切ります。

WireSharkでキャプチャしたファイルを以下のフィルターにかけます。

(ip.addr==172.16.200.50 || ip.addr==172.16.200.152)&&sip

すると、以下の通り、SIPメッセージだけが抽出されるといった話が前回のお話でした。

sip_capture_3

フローで表示すると以下のようになりましたね。

sip_capture_5

SIP電話機AとSIP電話機BがSIPサーバーを介してメッセージをやり取りしていることがわかりました。IPアドレス172.16.200.84にあるSIPサーバがメッセージを仲介していることがわかります。

 

IP-PBXの場合はどうなるか。

それでは本題です。以下の環境で実験しました。

SIP電話機A

内線番号1530, SIP ID:y1530, ip address: 172.16.200.152

SIP電話機B

内線番号11012, SIP ID: p11012, ip address: 172.16.200.82

IP-PBXサーバー

172.16.200.84

実験はIP-PBXサーバーにインストールしてあるWiresharkのパケットキャプチャをONにして、SIP電話機A(1530)からSIP電話機B(11012)に電話を掛け、通話後にSIP電話機Bが電話を切ります。

この検証を図で表すと以下です。今回検証で利用したIP-PBXサーバは下図の"IP-PBX"と"SIP"部分の両方の機能を持ちます。

sip_explanation3

 

それでは実際のパケットをキャプチャした結果を見ていきましょう。パケットキャプチャの仕方は第2回をご覧ください。今回は"sip"でフィルターしています。

<キャプチャ結果>

ip-pbx_packet1

 

<解りやすくフローで見てみる>

ip-pbx_flow1

 

ip アドレス172.16.200.84にあるIP-PBXがSIPUAとして振る舞っています。IP-PBXはUAとして、SIP端末A(172.16.200.152)のメッセージを受けてレスポンスを返し、別のUAとして、SIP端末B(172.16.200.82)へリクエストを送信しています。この際、SIP端末Aからのリクエストメッセージにある内線(11012)をSIP IDである、p11012へ正しく交換してUAとして新たに送出しています。

 

※今回、内線(11012)への単純な回線交換でしたが、複雑な場合もあります。例えばもしSIP端末Aからの発信が複数の端末が所属するグループ内線番号宛てであった場合、IP-PBXはグループ内線番号に紐づく複数のSIP端末へINVITEメッセージを送出します。