From 3e0342deafef472d0b9cba8718d19313ad6c3577 Mon Sep 17 00:00:00 2001 From: Mark Michelson Date: Fri, 29 Aug 2008 15:26:52 +0000 Subject: [PATCH] Fix SIP's parsing so that if a port is specified in a string to Dial(), it is not ignored. (closes issue #13355) Reported by: acunningham Patches: 13355v2.patch uploaded by putnopvut (license 60) Tested by: acunningham git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@140417 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_sip.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index e873a162f1..a99428774c 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -2903,14 +2903,18 @@ static int create_addr(struct sip_pvt *dialog, const char *opeer) dialog->sa.sin_family = AF_INET; dialog->timer_t1 = 500; /* Default SIP retransmission timer T1 (RFC 3261) */ p = find_peer(peer, NULL, 1, 0); + + portno = port ? atoi(port) : STANDARD_SIP_PORT; if (p) { int res = create_addr_from_peer(dialog, p); + if (portno) { + dialog->sa.sin_port = dialog->recv.sin_port = htons(portno); + } ASTOBJ_UNREF(p, sip_destroy_peer); return res; } hostn = peer; - portno = port ? atoi(port) : STANDARD_SIP_PORT; if (srvlookup) { char service[MAXHOSTNAMELEN]; int tportno; -- 2.47.3