From d0e779017617cbeaa22d81fd39ee59dad844f42a Mon Sep 17 00:00:00 2001 From: Matt Williamson Date: Tue, 11 Jul 2017 17:33:02 -0400 Subject: [PATCH] FS-10490 [mod_unimrcp] application/xml content-type for unimrcp grammar --- src/mod/asr_tts/mod_unimrcp/mod_unimrcp.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/mod/asr_tts/mod_unimrcp/mod_unimrcp.c b/src/mod/asr_tts/mod_unimrcp/mod_unimrcp.c index 7909c077ba..f441bf0130 100644 --- a/src/mod/asr_tts/mod_unimrcp/mod_unimrcp.c +++ b/src/mod/asr_tts/mod_unimrcp/mod_unimrcp.c @@ -144,6 +144,9 @@ struct profile { /** MIME type to use for SRGS ABNF grammars */ const char *srgs_mime_type; + /** MIME type to use for Google Speech module context */ + const char *xml_mime_type; + /** MIME type to use for SSML (TTS) */ const char *ssml_mime_type; @@ -209,6 +212,7 @@ static int get_next_speech_channel_number(void); #define GSL_ID ";GSL2.0" #define ABNF_ID "#ABNF" #define JSGF_ID "#JSGF" +#define GSR_ID "gsl_mime_type = "application/x-nuance-gsl"; lprofile->jsgf_mime_type = "application/x-jsgf"; lprofile->ssml_mime_type = "application/ssml+xml"; + lprofile->xml_mime_type = "application/xml"; switch_core_hash_init(&lprofile->default_synth_params); switch_core_hash_init(&lprofile->default_recog_params); *profile = lprofile; @@ -2161,6 +2168,8 @@ static const char *grammar_type_to_mime(grammar_type_t type, profile_t *profile) return profile->gsl_mime_type; case GRAMMAR_TYPE_JSGF: return profile->jsgf_mime_type; + case GRAMMAR_TYPE_XML: + return profile->xml_mime_type; } return ""; } @@ -3270,6 +3279,8 @@ static switch_status_t recog_asr_load_grammar(switch_asr_handle_t *ah, const cha type = GRAMMAR_TYPE_SRGS; } else if (text_starts_with(grammar_data, JSGF_ID)) { type = GRAMMAR_TYPE_JSGF; + } else if (text_starts_with(grammar_data, GSR_ID)) { + type = GRAMMAR_TYPE_XML; } else { switch_log_printf(SWITCH_CHANNEL_UUID_LOG(schannel->session_uuid), SWITCH_LOG_ERROR, "(%s) unable to determine grammar type: %s\n", schannel->name, grammar_data); status = SWITCH_STATUS_FALSE;