if (!switch_channel_test_flag(chan_a, CF_ANSWERED) && answer_limit && switch_epoch_time_now(NULL) > answer_limit) {
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session_a), SWITCH_LOG_DEBUG, "Answer timeout hit on %s.\n", switch_channel_get_name(chan_a));
- switch_channel_hangup(chan_a, SWITCH_CAUSE_ALLOTTED_TIMEOUT);
+ if (switch_true(switch_channel_get_variable_dup(chan_a, "continue_on_answer_timeout", SWITCH_FALSE, -1))) {
+ data->clean_exit = 1;
+ goto end_of_bridge_loop;
+ } else {
+ switch_channel_hangup(chan_a, SWITCH_CAUSE_ALLOTTED_TIMEOUT);
+ }
}
if (!switch_channel_test_flag(chan_a, CF_ANSWERED)) {