Skip to content
Snippets Groups Projects
Commit b9328094 authored by Olle Johansson's avatar Olle Johansson
Browse files

Issue #7351 - sending CANCEL when the call at some point has been in UP state is wrong.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43214 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent 58ca54e6
No related branches found
No related tags found
No related merge requests found
...@@ -3201,7 +3201,7 @@ static int sip_hangup(struct ast_channel *ast) ...@@ -3201,7 +3201,7 @@ static int sip_hangup(struct ast_channel *ast)
return 0; return 0;
} }
/* If the call is not UP, we need to send CANCEL instead of BYE */ /* If the call is not UP, we need to send CANCEL instead of BYE */
if (ast->_state != AST_STATE_UP) { if (ast->_state == AST_STATE_RING || ast->_state == AST_STATE_RINGING) {
needcancel = TRUE; needcancel = TRUE;
if (option_debug > 3) if (option_debug > 3)
ast_log(LOG_DEBUG, "Hanging up channel in state %s (not UP)\n", ast_state2str(ast->_state)); ast_log(LOG_DEBUG, "Hanging up channel in state %s (not UP)\n", ast_state2str(ast->_state));
...@@ -14172,6 +14172,7 @@ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct soc ...@@ -14172,6 +14172,7 @@ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct soc
} }
check_pendings(p); check_pendings(p);
} }
/* Got an ACK that we did not match. Ignore silently */
if (!p->lastinvite && ast_strlen_zero(p->randdata)) if (!p->lastinvite && ast_strlen_zero(p->randdata))
ast_set_flag(&p->flags[0], SIP_NEEDDESTROY); ast_set_flag(&p->flags[0], SIP_NEEDDESTROY);
break; break;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment