Make request URI in CANCEL match that of the original INVITE exactly (bug #2134)
authorMark Spencer <markster@digium.com>
Tue, 27 Jul 2004 04:04:45 +0000 (04:04 +0000)
committerMark Spencer <markster@digium.com>
Tue, 27 Jul 2004 04:04:45 +0000 (04:04 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3522 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 987538f..a93d6c0 100755 (executable)
@@ -3105,8 +3105,10 @@ static int reqprep(struct sip_request *req, struct sip_pvt *p, char *msg, int se
                else /* Some implementations (e.g. Uniden UIP200) can't handle rport being in the message!! */
                        snprintf(p->via, sizeof(p->via), "SIP/2.0/UDP %s:%d;branch=z9hG4bK%08x", ast_inet_ntoa(iabuf, sizeof(iabuf), p->ourip), ourport, p->branch);
        }
-
-       if (!ast_strlen_zero(p->uri)) {
+       if (!strcasecmp(msg, "CANCEL")) {
+               /* MUST use original URI */
+               c = p->initreq.rlPart2;
+       } else if (!ast_strlen_zero(p->uri)) {
                c = p->uri;
        } else {
                if (p->outgoing)