Only send a BYE when hanging up a channel that is up.

For cases where Asterisk sends an INVITE and receives a non 2XX final
response, Asterisk would follow the INVITE transaction by immediately
sending a BYE, which was unnecessary.

(closes issue #14575)
Reported by: chris-mac



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@208587 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Mark Michelson
2009-07-24 18:26:50 +00:00
parent 1c46ba9635
commit 38e98f42bc
+3 -1
View File
@@ -3726,7 +3726,9 @@ static int sip_hangup(struct ast_channel *ast)
if (p->vrtp)
videoqos = ast_rtp_get_quality(p->vrtp, NULL);
/* Send a hangup */
transmit_request_with_auth(p, SIP_BYE, 0, XMIT_RELIABLE, 1);
if (oldowner->_state == AST_STATE_UP) {
transmit_request_with_auth(p, SIP_BYE, 0, XMIT_RELIABLE, 1);
}
/* Get RTCP quality before end of call */
if (!ast_test_flag(&p->flags[0], SIP_NO_HISTORY)) {