[Freeswitch-svn] [commit] r7927 - freeswitch/trunk/src
Freeswitch SVN
anthm at freeswitch.org
Wed Mar 19 11:34:43 EDT 2008
Author: anthm
Date: Wed Mar 19 11:34:43 2008
New Revision: 7927
Modified:
freeswitch/trunk/src/switch_ivr_play_say.c
Log:
update
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 Mar 19 11:34:43 2008
@@ -682,6 +682,7 @@
const char *prefix;
const char *timer_name;
const char *prebuf;
+ const char *alt = NULL;
switch_zmalloc(abuf, FILE_STARTSAMPLES * sizeof(*abuf));
@@ -697,6 +698,49 @@
goto end;
}
+ if ((alt = strchr(file, ':'))) {
+ char *dup;
+
+ if (!strncasecmp(file, "phrase:", 7)) {
+ char *arg;
+ char *lang = NULL;
+ alt = file + 7;
+ dup = switch_core_session_strdup(session, alt);
+ if ((arg = strchr(dup, ':'))) {
+ *arg++ = '\0';
+ if ((lang = strchr(arg, ':'))) {
+ *lang++ = '\0';
+ }
+ }
+ if (dup) {
+ return switch_ivr_phrase_macro(session, dup, arg, lang, args);
+ } else {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid Args\n");
+ return SWITCH_STATUS_FALSE;
+ }
+ } else if (!strncasecmp(file, "say:", 4)) {
+ char *engine = NULL, *voice = NULL, *text = NULL;
+ alt = file + 4;
+ dup = switch_core_session_strdup(session, alt);
+ engine = dup;
+
+ if ((voice = strchr(engine, ':'))) {
+ *voice++ = '\0';
+ if ((text = strchr(voice, ':'))) {
+ *text++ = '\0';
+ }
+ }
+ if (engine && voice && text) {
+ return switch_ivr_speak_text(session, engine, voice, dup, args);
+ } else {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid Args\n");
+ return SWITCH_STATUS_FALSE;
+ }
+ }
+
+ }
+
+
if (!prefix) {
prefix = SWITCH_GLOBAL_dirs.base_dir;
}
More information about the Freeswitch-svn
mailing list