INVITES with proxy auth were sent with a different branch
authorMark Michelson <mmichelson@digium.com>
Thu, 16 Oct 2008 20:57:18 +0000 (20:57 +0000)
committerMark Michelson <mmichelson@digium.com>
Thu, 16 Oct 2008 20:57:18 +0000 (20:57 +0000)
than what was in the invite_branch of a sip_pvt, meaning
that if a CANCEL were sent later, the branch in the CANCEL
would not match the branch in the latest INVITE sent out, leading
to some endpoints responding to the CANCEL with a 481.

(closes issue #13714)
Reported by: fnordian
Patches:
      invite_branch.patch uploaded by fnordian (license 110)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@150207 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 88a1593..e75cf55 100644 (file)
@@ -8004,7 +8004,7 @@ static int reqprep(struct sip_request *req, struct sip_pvt *p, int sipmethod, in
                seqno = p->ocseq;
        }
        
-       if (sipmethod == SIP_CANCEL) {
+       if (sipmethod == SIP_CANCEL || sipmethod == SIP_INVITE) {
                p->branch = p->invite_branch;
                build_via(p);
        } else if (newbranch) {