From 38e98f42bc656c514b321a55bdfd5bb1c0a0fb55 Mon Sep 17 00:00:00 2001 From: Mark Michelson Date: Fri, 24 Jul 2009 18:26:50 +0000 Subject: [PATCH] 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 --- channels/chan_sip.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 890904908b..52f4708fda 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -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)) {