char *digit;
switch_event_t *event;
caller_control_action_t *caller_action = NULL;
+ int use_timer = 0;
switch_mutex_lock(member->flag_mutex);
}
switch_mutex_unlock(member->audio_out_mutex);
- switch_core_timer_next(&timer);
+ use_timer = 1;
} else {
if (switch_test_flag(member, MFLAG_WASTE_BANDWIDTH)) {
write_frame.timestamp = timer.samplecount;
switch_core_session_write_frame(member->session, &write_frame, -1, 0);
}
- switch_core_timer_next(&timer);
+ use_timer = 1;
}
}
+
switch_mutex_unlock(member->flag_mutex);
- } /* Rinse ... Repeat */
+
+ if (use_timer) {
+ switch_core_timer_next(&timer);
+ }
+
+ } /* Rinse ... Repeat */
if (member->digit_stream != NULL) {
switch_ivr_digit_stream_destroy(member->digit_stream);