Don't destroy pvt prematurely. Wait for answer or timeout.
authorOlle Johansson <oej@edvina.net>
Sat, 9 Sep 2006 12:01:59 +0000 (12:01 +0000)
committerOlle Johansson <oej@edvina.net>
Sat, 9 Sep 2006 12:01:59 +0000 (12:01 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@42531 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 6354d6d..468da78 100644 (file)
@@ -11193,12 +11193,11 @@ static void check_pendings(struct sip_pvt *p)
                        transmit_request_with_auth(p, SIP_CANCEL, p->ocseq, 1, 0);
                        /* Actually don't destroy us yet, wait for the 487 on our original 
                           INVITE, but do set an autodestruct just in case we never get it. */
-                       sip_scheddestroy(p, SIP_TRANS_TIMEOUT);
                } else {
                        transmit_request_with_auth(p, SIP_BYE, 0, 1, 1);
-                       ast_set_flag(&p->flags[0], SIP_NEEDDESTROY);    
                        ast_clear_flag(&p->flags[0], SIP_CAN_BYE);      
                }
+               sip_scheddestroy(p, SIP_TRANS_TIMEOUT);
        } else if (ast_test_flag(&p->flags[0], SIP_NEEDREINVITE)) {
                if (option_debug)
                        ast_log(LOG_DEBUG, "Sending pending reinvite on '%s'\n", p->callid);