7
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

pcapファイルからシーケンスチャート生成

Posted at

SIPダイアログの調査過程で、pcapファイルからシーケンスチャートを作れないか調べたのでメモ。

自分の環境は、MacOSX(Marverick)とMacPortsだが、Unix系ならほぼ同様と思います。

##ツール
#####pcap2msc
以下のtshark,mscgenを使ってpcapからPNGを生成するスクリプト
https://code.google.com/p/pcap2msc/

これ自体はpythonスクリプトになので、冒頭の

#!/usr/bin/python

を自分のpythonパスに合わせる。

#####tshark
https://www.wireshark.org/
CUI版wireshark
Wiresharkをインストールするとついてくる

#####mscgen
http://www.mcternan.me.uk/mscgen/
一定の形式で記述されたメッセージシーケンスをPNGなどでチャート化してくれる。
自分はMac portを使っているので、

 port install mscgen

でインストールできた。

##シーケンスチャートの作成

ターミナルから以下のようなコマンドを打つと、PNGファイルを生成してくれる。

$ pcap2msc ./avses-tosip.cap sip | mscgen -T png -o avses-tosip.png

avses-tosip.png

因みにmscgenなしでも

$ pcap2msc ./avses-tosip.cap sip

こんな感じで返してくれるので、図が要らない場合でも重宝する。

msc {
  u0[label="148.147.33.67"],u1[label="148.147.33.5"],u2[label="148.147.33.65"];
  u0=>u1 [ label = "SIP Request: SUBSCRIBE sip:3521@mtcsv.avaya.com" ] ;
  u0<=u1 [ label = "SIP Status: 202 Accepted" ] ;
  u0<=u1 [ label = "SIP Request: NOTIFY sip:3521@148.147.33.67;transport=tcp" ] ;
  u0<=u1 [ label = "SIP Request: NOTIFY sip:3521@148.147.33.67;transport=tcp" ] ;
  u0=>u1 [ label = "SIP Status: 200 OK" ] ;
  u0=>u1 [ label = "SIP Status: 200 OK" ] ;
  u0=>u1 [ label = "SIP Request: SUBSCRIBE sip:3521@mtcsv.avaya.com" ] ;
  u0<=u1 [ label = "SIP Status: 202 Accepted" ] ;
  u0<=u1 [ label = "SIP Request: NOTIFY sip:3521@148.147.33.67;transport=tcp" ] ;
  u0<=u1 [ label = "SIP Request: NOTIFY sip:3521@148.147.33.67;transport=tcp" ] ;
  u0=>u1 [ label = "SIP Status: 200 OK" ] ;
  u0=>u1 [ label = "SIP Status: 200 OK" ] ;
}
7
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?