From 6b32f4600d31fec9cb9d4f1f9c633ab6f6d38237 Mon Sep 17 00:00:00 2001 From: Terry Wilson Date: Sat, 17 Jan 2009 00:03:39 +0000 Subject: [PATCH] Fix port :0 added to SIP INVITE URI when outboundproxy used (closes issue #14233) Reported by: chris-mac Patches: asterisk-bug14233.diff.txt uploaded by jamesgolovich (license 176) Tested by: jamesgolovich, chris-mac, otherwiseguy git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@169044 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_sip.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 85073e4677..f97bd992ef 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -4806,12 +4806,11 @@ static int create_addr(struct sip_pvt *dialog, const char *opeer, struct sockadd /* Get the outbound proxy information */ ref_proxy(dialog, obproxy_get(dialog, NULL)); - /* If we have an outbound proxy, don't bother with DNS resolution at all */ - if (dialog->outboundproxy) - return 0; - - /* This address should be updated using dnsmgr */ - if (sin) { + if (dialog->outboundproxy) { + /* If we have an outbound proxy, don't bother with DNS resolution at all, but set the port */ + portno = port ? atoi(port) : (dialog->socket.type & SIP_TRANSPORT_TLS) ? STANDARD_TLS_PORT : STANDARD_SIP_PORT; + } else if (sin) { + /* This address should be updated using dnsmgr */ memcpy(&dialog->sa.sin_addr, &sin->sin_addr, sizeof(dialog->sa.sin_addr)); if (!sin->sin_port) { if (ast_strlen_zero(port) || sscanf(port, "%u", &portno) != 1) {