diff --git a/src/switch_ivr_play_say.c b/src/switch_ivr_play_say.c index a22821a95a..167605017c 100644 --- a/src/switch_ivr_play_say.c +++ b/src/switch_ivr_play_say.c @@ -1726,6 +1726,7 @@ SWITCH_DECLARE(switch_status_t) switch_play_and_get_digits(switch_core_session_t const char *digits_regex) { switch_channel_t *channel = switch_core_session_get_channel(session); + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "enter to switch_play_and_get_digits.\n"); while(switch_channel_ready(channel) && max_tries) { switch_status_t status; @@ -1738,6 +1739,11 @@ SWITCH_DECLARE(switch_status_t) switch_play_and_get_digits(switch_core_session_t status = SWITCH_STATUS_SUCCESS; } + if (status == SWITCH_STATUS_TOO_SMALL && strlen(digit_buffer) == 0) { + return SWITCH_STATUS_FALSE; + } + + if (status == SWITCH_STATUS_SUCCESS) { if (!zstr(digit_buffer)) { if (zstr(digits_regex)) {