]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
[Core] Add new SWITCH_SPEECH_FLAG_MULTI flag and check it in switch_ivr_speak_text_ha... 2678/head
authorAnthony Minessale <anthm@signalwire.com>
Mon, 27 Mar 2023 22:57:31 +0000 (01:57 +0300)
committerAndrey Volk <andywolk@gmail.com>
Mon, 30 Dec 2024 20:59:25 +0000 (23:59 +0300)
src/include/switch_types.h
src/switch_ivr_play_say.c

index c4c9131bd6cffc2083f5fdd074d048d158a1b4f7..e71570c21d4b0e5e1326f8b455a840f5f0a62041 100644 (file)
@@ -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;
 
index b39d42f65788ee0e38a580ab9648dbfddbb38a06..2ac77be19dbe9771317c172833851503cc7bffaf 100644 (file)
@@ -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;