Fix RTP/RTCP arrows when src and dst belongs to the same network

This commit is contained in:
Kaian 2015-11-09 13:53:02 +01:00
parent dc02743b2a
commit 1515f8ea06

View File

@ -553,13 +553,17 @@ call_flow_draw_rtp_stream(PANEL *panel, call_flow_arrow_t *arrow, int cline)
// Get message data // Get message data
msg_get_attribute(stream->media->msg, SIP_ATTR_SRC, msg_src); msg_get_attribute(stream->media->msg, SIP_ATTR_SRC, msg_src);
msg_get_attribute(stream->media->msg, SIP_ATTR_DST, msg_dst); msg_get_attribute(stream->media->msg, SIP_ATTR_DST, msg_dst);
// Remove port from address. We only look for columns no matter if it matches port or not
sip_address_strip_port(msg_src);
sip_address_strip_port(msg_dst);
callid = stream->media->msg->call->callid; callid = stream->media->msg->call->callid;
// Get origin column for this stream. // Get origin column for this stream.
// If we share the same Address from its setup SIP packet, use that column instead. // If we share the same Address from its setup SIP packet, use that column instead.
if (!strncmp(stream->ip_src, msg_src, strlen(stream->ip_src))) { if (!strcmp(stream->ip_src, msg_src)) {
column1 = call_flow_column_get(panel, callid, msg_src); column1 = call_flow_column_get(panel, callid, msg_src);
} else if (!strncmp(stream->ip_src, msg_dst, strlen(stream->ip_src))) { } else if (!strcmp(stream->ip_src, msg_dst)) {
column1 = call_flow_column_get(panel, callid, msg_dst); column1 = call_flow_column_get(panel, callid, msg_dst);
} else { } else {
column1 = call_flow_column_get(panel, 0, stream->ip_src); column1 = call_flow_column_get(panel, 0, stream->ip_src);
@ -567,9 +571,9 @@ call_flow_draw_rtp_stream(PANEL *panel, call_flow_arrow_t *arrow, int cline)
// Get destination column for this stream. // Get destination column for this stream.
// If we share the same Address from its setup SIP packet, use that column instead. // If we share the same Address from its setup SIP packet, use that column instead.
if (!strncmp(stream->ip_dst, msg_dst, strlen(stream->ip_dst))) { if (!strcmp(stream->ip_dst, msg_dst)) {
column2 = call_flow_column_get(panel, callid, msg_dst); column2 = call_flow_column_get(panel, callid, msg_dst);
} else if (!strncmp(stream->ip_dst, msg_src, strlen(stream->ip_dst))) { } else if (!strcmp(stream->ip_dst, msg_src)) {
column2 = call_flow_column_get(panel, callid, msg_src); column2 = call_flow_column_get(panel, callid, msg_src);
} else { } else {
column2 = call_flow_column_get(panel, 0, stream->ip_dst); column2 = call_flow_column_get(panel, 0, stream->ip_dst);
@ -689,13 +693,17 @@ call_flow_draw_rtcp_stream(PANEL *panel, call_flow_arrow_t *arrow, int cline)
// Get message data // Get message data
msg_get_attribute(stream->media->msg, SIP_ATTR_SRC, msg_src); msg_get_attribute(stream->media->msg, SIP_ATTR_SRC, msg_src);
msg_get_attribute(stream->media->msg, SIP_ATTR_DST, msg_dst); msg_get_attribute(stream->media->msg, SIP_ATTR_DST, msg_dst);
// Remove port from address. We only look for columns no matter if it matches port or not
sip_address_strip_port(msg_src);
sip_address_strip_port(msg_dst);
callid = stream->media->msg->call->callid; callid = stream->media->msg->call->callid;
// Get origin column for this stream. // Get origin column for this stream.
// If we share the same Address from its setup SIP packet, use that column instead. // If we share the same Address from its setup SIP packet, use that column instead.
if (!strncmp(stream->ip_src, msg_src, strlen(stream->ip_src))) { if (!strcmp(stream->ip_src, msg_src)) {
column1 = call_flow_column_get(panel, callid, msg_src); column1 = call_flow_column_get(panel, callid, msg_src);
} else if (!strncmp(stream->ip_src, msg_dst, strlen(stream->ip_src))) { } else if (!strcmp(stream->ip_src, msg_dst)) {
column1 = call_flow_column_get(panel, callid, msg_dst); column1 = call_flow_column_get(panel, callid, msg_dst);
} else { } else {
column1 = call_flow_column_get(panel, 0, stream->ip_src); column1 = call_flow_column_get(panel, 0, stream->ip_src);
@ -703,9 +711,9 @@ call_flow_draw_rtcp_stream(PANEL *panel, call_flow_arrow_t *arrow, int cline)
// Get destination column for this stream. // Get destination column for this stream.
// If we share the same Address from its setup SIP packet, use that column instead. // If we share the same Address from its setup SIP packet, use that column instead.
if (!strncmp(stream->ip_dst, msg_dst, strlen(stream->ip_dst))) { if (!strcmp(stream->ip_dst, msg_dst)) {
column2 = call_flow_column_get(panel, callid, msg_dst); column2 = call_flow_column_get(panel, callid, msg_dst);
} else if (!strncmp(stream->ip_dst, msg_src, strlen(stream->ip_dst))) { } else if (!strcmp(stream->ip_dst, msg_src)) {
column2 = call_flow_column_get(panel, callid, msg_src); column2 = call_flow_column_get(panel, callid, msg_src);
} else { } else {
column2 = call_flow_column_get(panel, 0, stream->ip_dst); column2 = call_flow_column_get(panel, 0, stream->ip_dst);