diff --git a/src/channels/chan_voicemngr.c b/src/channels/chan_voicemngr.c index fa53d86b91af15c454134a94797c35fb73d07371..d85332af31e32d0d2a09bc456b8df433e08fb19f 100644 --- a/src/channels/chan_voicemngr.c +++ b/src/channels/chan_voicemngr.c @@ -1272,7 +1272,7 @@ static int chan_voicemngr_finish_transfer(struct ast_channel *owner, struct chan * - Probably nothing else - the built-in transfer should never let this * control frame propagate to here */ - if (sub->channel_state != TRANSFERING) { + if (sub->channel_state != TRANSFERING && !(channel_config[sub->parent->line_id].flashSpec == FLASH_SPEC_ETSI && hold_target_before_refer && sub->channel_state == ONHOLD)) { ast_log(LOG_WARNING, "Received AST_CONTROL_TRANSFER while in state %s\n", state2str(sub->channel_state)); return -1; }