Hi All, I am new wireshark and SIP user :). I want to know that is there some way I can group all the SUBSCRIBE-NOTIFY messages and find response times of NOTIFY for the SUBSCRIBE. What I already tried is that I added CallId as column and sorted, this apparently shows the related SUBSCRIBE/200/NOTIFY together. Then there's response time in 200, I added that also as the column, now I can see the response time of 200 but still for Notify I need to manually calculate. See image. I think flow view can do that but I am testing it from single machine using SIPP therefore the flow, UDP stream shows all the traffic together. I can provide the sample pcap too if required. Thanks, Surya asked 16 Feb '16, 22:55 suryaveer |
One Answer:
You could use MATE for this purpose, grouping the SUBSCRIBE, NOTIFY, and their relevant 200s by answered 17 Feb '16, 00:58 sindy showing 5 of 6 show 1 more comments |
Thanks for your answer. I understand SIPP already provide this feature and I am using that but in SIPP I am noticing really high response times, therefore, I just want to verify when the message enters the presence server and when the response leaves.
Need help!! I tried something but don't know what exactly I did and what to do next.
This added a new MATE tree in packet details view as:
Sorry for
This is actually something MATE does for you automatically.
I think you forgot to
so the
Start
has nothing to catch on.(but please do not add the
method
to theGop sip On...
)The next thing you need to do is to change your
Start
andStop
clauses the following way:If you do that, MATE will create for you (among others) an item
mate.sip.Duration
in the tree, containing the time elapsed between the SUBSCRIBE (Start
) and NOTIFY (Stop
) messages.So to see the round-trip times in Wireshark, you should be able to make
mate.sip.Duration
a column in the packet list, and by applying a display filteryou would display only the frames carrying the NOTIFY.
For tshark, you should be able to use
to output only the response times, so that you could then use some post-processing to analyze them.
Be aware that things go confusing very quickly if your capture contains more than a single NOTIFY per each SUBSCRIBE; you would have to add additional conditions to the display filter so that the proper (i.e. the first) NOTIFY packets would be displayed, such as
sip.CSeq.seq == 1
if your server numbers CSeq from 1 in each dialog.OK, so one more correction after I've found a minute to check it. The distance between the
SUBSCRIBE
and the firstNOTIFY
is themate.sip.Time
(displayed in the MATE tree as "sip hold time").There is a difference in behaviour between Wireshark and tshark:
in Wireshark, the
sip.mate.Time
is shown already in the SUBSCRIBE (both in packet dissection pane and packet list pane if added there as column);in tshark's output, it is not shown until the first NOTIFY is processed; to my surprise, use of
-2
(two-pass analysis) has caused it to not to be shown at all instead of causing it to be shown already for the SUBSCRIBE.The idea was to use
-Y "sip.Method == SUBSCRIBE"
rather than-Y "sip.Method == NOTIFY and sip.CSeq.seq == 1
to output a singlesip.mate.Time
value per dialog but it has failed.@sindy Hey, thanks. I didn't get a notification so totally missed this. I'll try this and get back.
As what tshark does (no MATE fields are output at all if you use
-2
) seems to be a regression preventing you from displaying themate.sip.Time
for the SUBSCRIBE packet, the workaround to display that field only once per each dialog if more than one NOTIFY packet belongs to a dialog is to use the following display filter:-Y "sip.Method == \"NOTIFY\" and mate.sip_pdu.TimeInGop == mate.sip.Time"