diff --git a/main/bridge.c b/main/bridge.c index c0e7bd42789d8140eadcf25b7b23cf90e2406f8a..9a64b0ed6a19f2e20e99e57abd5ed6d88410ef83 100644 --- a/main/bridge.c +++ b/main/bridge.c @@ -2198,6 +2198,9 @@ static struct ast_bridge *optimize_lock_chan_stack(struct ast_channel *chan) if (!AST_LIST_EMPTY(ast_channel_readq(chan))) { return NULL; } + if (ast_test_flag(ast_channel_flags(chan), AST_FLAG_EMULATE_DTMF)) { + return NULL; + } if (ast_channel_has_audio_frame_or_monitor(chan)) { /* Channel has an active monitor, audiohook, or framehook. */ return NULL; @@ -2244,6 +2247,10 @@ static struct ast_bridge *optimize_lock_peer_stack(struct ast_channel *peer) ast_channel_unlock(peer); return NULL; } + if (ast_test_flag(ast_channel_flags(peer), AST_FLAG_EMULATE_DTMF)) { + ast_channel_unlock(peer); + return NULL; + } if (ast_channel_has_audio_frame_or_monitor(peer)) { /* Peer has an active monitor, audiohook, or framehook. */ ast_channel_unlock(peer);