while (switch_test_flag(member, MFLAG_RUNNING) && switch_channel_ready(channel)) {
- if (switch_channel_test_flag(channel, CF_SERVICE)) {
+ if (switch_channel_test_app_flag(channel, CF_APP_TAGGED)) {
switch_yield(100000);
continue;
}
}
if (restarting) {
- switch_channel_clear_flag(channel, CF_SERVICE);
+ switch_channel_clear_app_flag(channel, CF_APP_TAGGED);
}
/* Fair WARNING, If you expect the caller to hear anything or for digit handling to be processed, */
if (switch_core_session_private_event_count(member->session)) {
- switch_channel_set_flag(channel, CF_SERVICE);
+ switch_channel_set_app_flag(channel, CF_APP_TAGGED);
switch_ivr_parse_all_events(member->session);
- switch_channel_clear_flag(channel, CF_SERVICE);
+ switch_channel_clear_app_flag(channel, CF_APP_TAGGED);
switch_set_flag_locked(member, MFLAG_FLUSH_BUFFER);
switch_core_session_set_read_codec(member->session, &member->read_codec);
}
if (setup_media(member, new_conference)) {
switch_clear_flag_locked(member, MFLAG_RUNNING);
} else {
- switch_channel_set_flag(channel, CF_SERVICE);
+ switch_channel_set_app_flag(channel, CF_APP_TAGGED);
switch_set_flag_locked(member, MFLAG_RESTART);
}
}
switch_ivr_parse_all_events(session);
}
-
+
if (eff_timeout) {
digit_elapsed = (uint32_t) ((switch_micro_time_now() - digit_started) / 1000);
+
if (digit_elapsed >= eff_timeout) {
status = SWITCH_STATUS_TIMEOUT;
break;
if (switch_channel_has_dtmf(channel)) {
switch_dtmf_t dtmf = { 0 };
switch_size_t y;
-
+
if (eff_timeout) {
eff_timeout = digit_timeout;
digit_started = switch_micro_time_now();
buf[x++] = dtmf.digit;
buf[x] = '\0';
+
if (x >= buflen || x >= maxdigits) {
return SWITCH_STATUS_SUCCESS;
}