Avoid duplicate SIP and Q.931 calls in VoIP Calls list in case of Q.931

transported over SIP as described in RFC 3204, 3.2 QSIG Media Type.

Change-Id: Ida30a7b115e60fa64d30cfc1f4b7c11be724f8ee
Reviewed-on: https://code.wireshark.org/review/9479
Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
Michal Pazdera 2015-07-03 10:21:04 +02:00 committed by Anders Broman
parent 19578ba619
commit c711a63e48
3 changed files with 16 additions and 11 deletions

View File

@ -3830,6 +3830,15 @@ dissect_sip_common(tvbuff_t *tvb, int offset, int remaining_length, packet_info
&response_time);
}
/* Report this packet to the tap */
if (!pinfo->flags.in_error_pkt)
{
tap_queue_packet(sip_tap, pinfo, stat_info);
if(have_tap_listener(exported_pdu_tap)){
export_sip_pdu(pinfo,tvb);
}
}
if (datalen > 0) {
/*
* There's a message body starting at "offset".
@ -3988,15 +3997,6 @@ dissect_sip_common(tvbuff_t *tvb, int offset, int remaining_length, packet_info
if (global_sip_raw_text)
tvb_raw_text_add(tvb, orig_offset, offset - orig_offset, tree);
/* Report this packet to the tap */
if (!pinfo->flags.in_error_pkt)
{
tap_queue_packet(sip_tap, pinfo, stat_info);
if(have_tap_listener(exported_pdu_tap)){
export_sip_pdu(pinfo,tvb);
}
}
/* Append a brief summary to the SIP root item */
if (stat_info->request_method) {
proto_item_append_text(ts, " (%s)", stat_info->request_method);

View File

@ -1051,6 +1051,8 @@ sip_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt ,
const sip_info_value_t *pi = (const sip_info_value_t *)SIPinfo;
tapinfo->sip_frame_num = pinfo->fd->num;
/* do not consider packets without call_id */
if (pi->tap_call_id ==NULL) {
return FALSE;
@ -1666,8 +1668,10 @@ q931_calls_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt,
}
list = g_list_next (list);
}
/* add stuff to ACTRACE */
/* SIP-Q */
} else if (tapinfo->sip_frame_num == tapinfo->q931_frame_num) {
/* Do nothing for now */
/* add stuff to ACTRACE */
} else {
address pstn_add;

View File

@ -219,6 +219,7 @@ typedef struct _voip_calls_tapinfo {
guint16 h225_call_num;
int h225_cstype; /* XXX actually an enum */
gboolean h225_is_faststart;
guint32 sip_frame_num;
guint32 actrace_frame_num;
gint32 actrace_trunk;
gint32 actrace_direction;