diff --git a/src/switch_ivr_bridge.c b/src/switch_ivr_bridge.c index a75249bf31..49ff9ff505 100644 --- a/src/switch_ivr_bridge.c +++ b/src/switch_ivr_bridge.c @@ -522,6 +522,9 @@ static switch_status_t uuid_bridge_on_soft_execute(switch_core_session_t *sessio } switch_ivr_multi_threaded_bridge(session, other_session, NULL, NULL, NULL); + if (switch_channel_get_state(channel) < CS_HANGUP) { + switch_channel_set_state(channel, CS_EXECUTE); + } switch_core_session_rwunlock(other_session); } else { switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER); @@ -821,12 +824,6 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_multi_threaded_bridge(switch_core_ses } } - state = switch_channel_get_state(caller_channel); - - if (state == CS_SOFT_EXECUTE || state == CS_PARK) { - switch_channel_set_state(caller_channel, CS_EXECUTE); - } - return status; }