From: Olle Johansson Date: Thu, 11 May 2006 08:25:20 +0000 (+0000) Subject: Ignore CANCEL on call that is already answered X-Git-Tag: 1.4.0-beta1~1416 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=71aabeef4fb6b4bc090837eb1008f519c5f04dff;p=thirdparty%2Fasterisk.git Ignore CANCEL on call that is already answered git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@26757 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_sip.c b/channels/chan_sip.c index e9cf9874a8..137c353743 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -11436,6 +11436,14 @@ static int handle_request_cancel(struct sip_pvt *p, struct sip_request *req) check_via(p, req); ast_set_flag(&p->flags[0], SIP_ALREADYGONE); + + if (p->owner && p->owner->_state == AST_STATE_UP) { + /* This call is up, cancel is ignored, we need a bye */ + transmit_response(p, "200 OK", req); + if (option_debug) + ast_log(LOG_DEBUG, "Got CANCEL on an answered call. Ignoring... \n"); + return 0; + } if (p->rtp) { /* Immediately stop RTP */ ast_rtp_stop(p->rtp);