diff options
author | oej <oej@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-09-09 12:14:03 +0000 |
---|---|---|
committer | oej <oej@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-09-09 12:14:03 +0000 |
commit | 5f2ffca9a2e72bd4d95db5520b59ecfda6508e9e (patch) | |
tree | c27dcd5025d4692524e457968922299f8d7b4e9e | |
parent | 98c0623f32adfc477d2d452009fa439489816d7d (diff) |
- Reset proper flag
- Don't delete SIP dialog prematurely
Strangely enough imported from svn trunk... It's confusing here in Greenland.
(Committing from 36.000 feet above Greenland, on the way to asterisk@von
http://www.pulver.com/asterisk )
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@42535 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r-- | channels/chan_sip.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index b51ed4b5b..a86f2c0ee 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -9572,16 +9572,14 @@ static void check_pendings(struct sip_pvt *p) { if (ast_test_flag(p, SIP_PENDINGBYE)) { /* if we can't BYE, then this is really a pending CANCEL */ - if (!ast_test_flag(p, SIP_CAN_BYE)) { + if (!ast_test_flag(p, SIP_CAN_BYE)) 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, 32000); - } else { + else transmit_request_with_auth(p, SIP_BYE, 0, 1, 1); - ast_set_flag(p, SIP_NEEDDESTROY); - ast_clear_flag(p, SIP_NEEDREINVITE); - } + ast_clear_flag(p, SIP_PENDINGBYE); + sip_scheddestroy(p, 32000); } else if (ast_test_flag(p, SIP_NEEDREINVITE)) { ast_log(LOG_DEBUG, "Sending pending reinvite on '%s'\n", p->callid); /* Didn't get to reinvite yet, so do it now */ |