diff --git a/src/switch_ivr_bridge.c b/src/switch_ivr_bridge.c index fd59494790..d2a84b1783 100644 --- a/src/switch_ivr_bridge.c +++ b/src/switch_ivr_bridge.c @@ -324,12 +324,14 @@ static void *audio_bridge_thread(switch_thread_t *thread, void *obj) if (ans_a != ans_b) { switch_channel_t *un = ans_a ? chan_b : chan_a; - if (switch_channel_answer(un) != SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s Media Establishment Failed.\n", switch_channel_get_name(un)); - goto end_of_bridge_loop; + if (!switch_channel_test_flag(un, CF_OUTBOUND)) { + if (switch_channel_answer(un) != SWITCH_STATUS_SUCCESS) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s Media Establishment Failed.\n", switch_channel_get_name(un)); + goto end_of_bridge_loop; + } + + if (ans_a) ans_b = 1; else ans_a = 1; } - - if (ans_a) ans_b = 1; else ans_a = 1; }