#define SWITCH_PATH_SEPARATOR "/"
#endif
#define SWITCH_URL_SEPARATOR "://"
+#define SWITCH_READ_RESULT_VARIABLE "read_result"
#define SWITCH_COPY_XML_CDR_VARIABLE "copy_xml_cdr"
#define SWITCH_CURRENT_APPLICATION_VARIABLE "current_application"
#define SWITCH_PROTO_SPECIFIC_HANGUP_CAUSE_VARIABLE "proto_specific_hangup_cause"
if (eff_timeout) {
digit_elapsed = (uint32_t) ((switch_timestamp_now() - digit_started) / 1000);
if (digit_elapsed >= eff_timeout) {
+ status = SWITCH_STATUS_TIMEOUT;
break;
}
}
switch_assert(session);
channel = switch_core_session_get_channel(session);
+ switch_channel_set_variable(channel, SWITCH_READ_RESULT_VARIABLE, NULL);
if (digit_buffer_length < min_digits || digit_buffer_length < max_digits) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Buffer too small!\n");
status = switch_ivr_collect_digits_count(session, digit_buffer, digit_buffer_length, max_digits, valid_terminators, &terminator, timeout, 0, 0);
}
+ if (status == SWITCH_STATUS_SUCCESS) {
+ switch_channel_set_variable(channel, SWITCH_READ_RESULT_VARIABLE, "success");
+ } else if (status == SWITCH_STATUS_TIMEOUT) {
+ switch_channel_set_variable(channel, SWITCH_READ_RESULT_VARIABLE, "timeout");
+ } else {
+ switch_channel_set_variable(channel, SWITCH_READ_RESULT_VARIABLE, "failure");
+ }
+
end: