From 7f12e9638995410b18943a3402bf6da451ff58cc Mon Sep 17 00:00:00 2001 From: Scott Griepentrog Date: Tue, 14 Jan 2014 18:43:56 +0000 Subject: [PATCH] chan_sip: No BYE message sent after INVITE with Replaces Setting channel state DOWN is an unnecessary step that was only being done in handle_invite_replaces(). This changes that by removing the call and reducing locking. (closes issue ASTERISK-23010) Reported by: Ryan Tilton Review: https://reviewboard.asterisk.org/r/3116/ ........ Merged revisions 405486 from http://svn.asterisk.org/svn/asterisk/branches/1.8 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@405487 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_sip.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index c92055d1f0..4d5e33cf47 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -24893,12 +24893,11 @@ static int handle_invite_replaces(struct sip_pvt *p, struct sip_request *req, st if (ast_do_masquerade(replacecall)) { ast_log(LOG_WARNING, "Failed to perform masquerade with INVITE replaces\n"); } - ast_channel_lock(c); if (earlyreplace || oneleggedreplace ) { + ast_channel_lock(c); ast_channel_hangupcause_set(c, AST_CAUSE_SWITCH_CONGESTION); + ast_channel_unlock(c); } - ast_setstate(c, AST_STATE_DOWN); - ast_channel_unlock(c); /* c and c's tech pvt must be unlocked at this point for ast_hangup */ ast_hangup(c);