Author: anthm Date: Wed Oct 17 10:42:41 2007 New Revision: 5924 Modified: freeswitch/trunk/src/switch_ivr_play_say.c Log: add optional module param to lang stuff Modified: freeswitch/trunk/src/switch_ivr_play_say.c ============================================================================== --- freeswitch/trunk/src/switch_ivr_play_say.c (original) +++ freeswitch/trunk/src/switch_ivr_play_say.c Wed Oct 17 10:42:41 2007 @@ -97,6 +97,7 @@ char *lname = NULL, *mname = NULL, hint_data[1024] = "", enc_hint[1024] = ""; switch_status_t status = SWITCH_STATUS_GENERR; char *old_sound_prefix = NULL, *sound_path = NULL, *tts_engine = NULL, *tts_voice = NULL, *chan_lang = NULL; + const char *module_name = NULL; switch_channel_t *channel; uint8_t done = 0; @@ -118,6 +119,8 @@ chan_lang = lang; } + module_name = chan_lang; + if (!data) { data = ""; } @@ -142,6 +145,11 @@ while (language) { if ((lname = (char *) switch_xml_attr(language, "name")) && !strcasecmp(lname, chan_lang)) { + const char *tmp; + + if ((tmp = switch_xml_attr(language, "module"))) { + module_name = tmp; + } break; } language = language->next; @@ -245,7 +253,7 @@ odata = expanded; } - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Handle %s:[%s] (%s)\n", func, odata, chan_lang); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Handle %s:[%s] (%s:%s)\n", func, odata, chan_lang, module_name); if (!strcasecmp(func, "play-file")) { status = switch_ivr_play_file(session, NULL, odata, args); @@ -256,13 +264,13 @@ } else if (!strcasecmp(func, "say")) { switch_say_interface_t *si; - if ((si = switch_loadable_module_get_say_interface(chan_lang))) { + if ((si = switch_loadable_module_get_say_interface(module_name))) { char *say_type = (char *) switch_xml_attr_soft(action, "type"); char *say_method = (char *) switch_xml_attr_soft(action, "method"); status = si->say_function(session, odata, get_say_type_by_name(say_type), get_say_method_by_name(say_method), args); } else { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid SAY Interface [%s]!\n", chan_lang); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid SAY Interface [%s]!\n", module_name); } } else if (!strcasecmp(func, "speak-text")) { char *my_tts_engine = (char *) switch_xml_attr(action, "tts-engine");