diff --git a/bridges/bridge_softmix.c b/bridges/bridge_softmix.c index fbe15873e7..0febc46bdc 100644 --- a/bridges/bridge_softmix.c +++ b/bridges/bridge_softmix.c @@ -479,6 +479,13 @@ static int softmix_bridge_join(struct ast_bridge *bridge, struct ast_bridge_chan : DEFAULT_SOFTMIX_INTERVAL, bridge_channel, 0); + /* Complete any active hold before entering, or transitioning to softmix. */ + if (ast_channel_hold_state(bridge_channel->chan) == AST_CONTROL_HOLD) { + ast_debug(1, "Channel %s simulating UNHOLD for bridge softmix join.\n", + ast_channel_name(bridge_channel->chan)); + ast_indicate(bridge_channel->chan, AST_CONTROL_UNHOLD); + } + softmix_poke_thread(softmix_data); return 0; }