Update of /usr/cvsroot/asterisk/channels
In directory mongoose.digium.com:/tmp/cvs-serv15489/channels

Modified Files:
        chan_sip.c 
Log Message:
ensure that port number in URI is presented when needed (bug #4784)


Index: chan_sip.c
===================================================================
RCS file: /usr/cvsroot/asterisk/channels/chan_sip.c,v
retrieving revision 1.787
retrieving revision 1.788
diff -u -d -r1.787 -r1.788
--- chan_sip.c  25 Jul 2005 17:39:48 -0000      1.787
+++ chan_sip.c  25 Jul 2005 18:11:19 -0000      1.788
@@ -4249,7 +4249,7 @@
        char iabuf[INET_ADDRSTRLEN];
 
        /* Construct Contact: header */
-       if (ourport != DEFAULT_SIP_PORT)
+       if (ourport != 5060)    /* Needs to be 5060, according to the RFC */
                snprintf(p->our_contact, sizeof(p->our_contact), 
"<sip:%s%s%s:%d>", p->exten, ast_strlen_zero(p->exten) ? "" : "@", 
ast_inet_ntoa(iabuf, sizeof(iabuf), p->ourip), ourport);
        else
                snprintf(p->our_contact, sizeof(p->our_contact), 
"<sip:%s%s%s>", p->exten, ast_strlen_zero(p->exten) ? "" : "@", 
ast_inet_ntoa(iabuf, sizeof(iabuf), p->ourip));
@@ -4319,7 +4319,7 @@
        else /* Save for any further attempts */
                ast_copy_string(p->fromname, n, sizeof(p->fromname));
 
-       if ((ourport != DEFAULT_SIP_PORT) && ast_strlen_zero(p->fromdomain))
+       if ((ourport != 5060) && ast_strlen_zero(p->fromdomain))        /* 
Needs to be 5060 */
                snprintf(from, sizeof(from), "\"%s\" <sip:[EMAIL 
PROTECTED]:%d>;tag=as%08x", n, l, ast_strlen_zero(p->fromdomain) ? 
ast_inet_ntoa(iabuf, sizeof(iabuf), p->ourip) : p->fromdomain, ourport, p->tag);
        else
                snprintf(from, sizeof(from), "\"%s\" <sip:[EMAIL 
PROTECTED]>;tag=as%08x", n, l, ast_strlen_zero(p->fromdomain) ? 
ast_inet_ntoa(iabuf, sizeof(iabuf), p->ourip) : p->fromdomain, p->tag);
@@ -4330,12 +4330,12 @@
                ast_copy_string(invite, p->fullcontact, sizeof(invite));
        /* Otherwise, use the username while waiting for registration */
        } else if (!ast_strlen_zero(p->username)) {
-               if (ntohs(p->sa.sin_port) != DEFAULT_SIP_PORT) {
+               if (ntohs(p->sa.sin_port) != 5060) {            /* Needs to be 
5060 */
                        snprintf(invite, sizeof(invite), "sip:[EMAIL 
PROTECTED]:%d%s",p->username, p->tohost, ntohs(p->sa.sin_port), urioptions);
                } else {
                        snprintf(invite, sizeof(invite), "sip:[EMAIL 
PROTECTED]",p->username, p->tohost, urioptions);
                }
-       } else if (ntohs(p->sa.sin_port) != DEFAULT_SIP_PORT) {
+       } else if (ntohs(p->sa.sin_port) != 5060) {             /* Needs to be 
5060 */
                snprintf(invite, sizeof(invite), "sip:%s:%d%s", p->tohost, 
ntohs(p->sa.sin_port), urioptions);
        } else {
                snprintf(invite, sizeof(invite), "sip:%s%s", p->tohost, 
urioptions);

_______________________________________________
Asterisk-Cvs mailing list
[email protected]
http://lists.digium.com/mailman/listinfo/asterisk-cvs

Reply via email to