From d0cbbaf8d73a3684a6bcb1f2692301d0d0f5d1c7 Mon Sep 17 00:00:00 2001
From: Olle Johansson <oej@edvina.net>
Date: Sat, 9 Sep 2006 12:01:59 +0000
Subject: [PATCH] Don't destroy pvt prematurely. Wait for answer or timeout.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@42531 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/chan_sip.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 6354d6d0a0..468da78c17 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -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);
-- 
GitLab