diff --git a/src/include/switch_types.h b/src/include/switch_types.h index c4c9131bd6..e71570c21d 100644 --- a/src/include/switch_types.h +++ b/src/include/switch_types.h @@ -1795,7 +1795,8 @@ typedef enum { SWITCH_SPEECH_FLAG_BLOCKING = (1 << 3), SWITCH_SPEECH_FLAG_PAUSE = (1 << 4), SWITCH_SPEECH_FLAG_OPEN = (1 << 5), - SWITCH_SPEECH_FLAG_DONE = (1 << 6) + SWITCH_SPEECH_FLAG_DONE = (1 << 6), + SWITCH_SPEECH_FLAG_MULTI = (1 << 7) } switch_speech_flag_enum_t; typedef uint32_t switch_speech_flag_t; diff --git a/src/switch_ivr_play_say.c b/src/switch_ivr_play_say.c index b39d42f657..2ac77be19d 100644 --- a/src/switch_ivr_play_say.c +++ b/src/switch_ivr_play_say.c @@ -2823,6 +2823,12 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_speak_text_handle(switch_core_session } switch_core_speech_feed_tts(sh, text, &flags); + + if ((sh->flags & SWITCH_SPEECH_FLAG_MULTI)) { + flags = SWITCH_SPEECH_FLAG_DONE; + switch_core_speech_feed_tts(sh, "DONE", &flags); + } + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "Speaking text: %s\n", text); switch_safe_free(tmp); text = NULL;