From 27dc69a5afa08cc37a8d604db8460a570a3edd15 Mon Sep 17 00:00:00 2001 From: Thomas Ries Date: Sat, 2 Jan 2010 22:02:41 +0000 Subject: [PATCH] *** empty log message *** --- src/sip_utils.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/sip_utils.c b/src/sip_utils.c index 1fd7c5e..bc2e4ee 100644 --- a/src/sip_utils.c +++ b/src/sip_utils.c @@ -1119,15 +1119,17 @@ int sip_find_direction(sip_ticket_t *ticket, int *urlidx) { * Using iptables, you do a REDIRECT of outgoping SIP traffix of the * PBX to be passed to siproxd. */ - sts=get_interface_ip(IF_INBOUND, &tmp_addr); - sts=get_interface_ip(IF_OUTBOUND, &tmp_addr2); - if ((htonl(from->sin_addr.s_addr) == INADDR_LOOPBACK) || - (from->sin_addr.s_addr == tmp_addr.s_addr) || - (from->sin_addr.s_addr == tmp_addr2.s_addr)) { - if (MSG_IS_REQUEST(ticket->sipmsg)) { - type=REQTYP_OUTGOING; - } else { - type=RESTYP_OUTGOING; + if (type == DIRTYP_UNKNOWN) { + sts=get_interface_ip(IF_INBOUND, &tmp_addr); + sts=get_interface_ip(IF_OUTBOUND, &tmp_addr2); + if ((htonl(from->sin_addr.s_addr) == INADDR_LOOPBACK) || + (from->sin_addr.s_addr == tmp_addr.s_addr) || + (from->sin_addr.s_addr == tmp_addr2.s_addr)) { + if (MSG_IS_REQUEST(ticket->sipmsg)) { + type=REQTYP_OUTGOING; + } else { + type=RESTYP_OUTGOING; + } } }