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);