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

Modified Files:
        chan_sip.c 
Log Message:
ensure that Remote-Party-ID is sent even on secondary INVITEs within a dialog 
(issue #5322)


Index: chan_sip.c
===================================================================
RCS file: /usr/cvsroot/asterisk/channels/chan_sip.c,v
retrieving revision 1.878
retrieving revision 1.879
diff -u -d -r1.878 -r1.879
--- chan_sip.c  5 Oct 2005 00:05:13 -0000       1.878
+++ chan_sip.c  5 Oct 2005 00:42:09 -0000       1.879
@@ -2083,7 +2083,7 @@
        if (p->rpid)
                free(p->rpid);
 
-       if (p->rpid_from)
+       if (p->rpid_from && (p->rpid_from != p->from))
                free(p->rpid_from);
 
        /* Unlink us from the owner if we have one */
@@ -4034,6 +4034,10 @@
        add_header(req, "CSeq", tmp);
 
        add_header(req, "User-Agent", default_useragent);
+
+       if (ast_test_flag(p, SIP_OUTGOING) && (sipmethod == SIP_INVITE) && 
ast_test_flag(p, SIP_SENDRPID))
+               add_header(req, "Remote-Party-ID", p->rpid);
+
        return 0;
 }
 
@@ -4748,14 +4752,15 @@
        /* SLD: FIXME?: do Route: here too?  I think not cos this is the first 
request.
         * OTOH, then we won't have anything in p->route anyway */
        /* Build Remote Party-ID and From */
-       if (ast_test_flag(p, SIP_SENDRPID)) {
+       if (ast_test_flag(p, SIP_SENDRPID))
                build_rpid(p);
-               add_header(req, "From", p->rpid_from);
-       } else
-               add_header(req, "From", from);
+       else
+               p->rpid_from = p->from;
+
+       add_header(req, "From", (sipmethod == SIP_INVITE) ? p->rpid_from : 
p->from);
+       add_header(req, "To", to);
        ast_copy_string(p->exten, l, sizeof(p->exten));
        build_contact(p);
-       add_header(req, "To", to);
        add_header(req, "Contact", p->our_contact);
        add_header(req, "Call-ID", p->callid);
        add_header(req, "CSeq", tmp);

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

Reply via email to