[Freeswitch-svn] [commit] r4185 - in freeswitch/trunk/src: . mod/say/mod_say_en

Freeswitch SVN anthm at freeswitch.org
Fri Feb 9 16:48:24 EST 2007


Author: anthm
Date: Fri Feb  9 16:48:24 2007
New Revision: 4185

Modified:
   freeswitch/trunk/src/mod/say/mod_say_en/mod_say_en.c
   freeswitch/trunk/src/switch_ivr.c

Log:
phrase update

Modified: freeswitch/trunk/src/mod/say/mod_say_en/mod_say_en.c
==============================================================================
--- freeswitch/trunk/src/mod/say/mod_say_en/mod_say_en.c	(original)
+++ freeswitch/trunk/src/mod/say/mod_say_en/mod_say_en.c	Fri Feb  9 16:48:24 2007
@@ -46,8 +46,11 @@
 
 #define say_file(...) {\
 		char tmp[80];\
+		switch_status_t status;\
 		snprintf(tmp, sizeof(tmp), __VA_ARGS__);\
-		switch_ivr_play_file(session, NULL, tmp, args); \
+		if ((status = switch_ivr_play_file(session, NULL, tmp, args)) != SWITCH_STATUS_SUCCESS){ \
+			return status;\
+		}\
 		if (!switch_channel_ready(switch_core_session_get_channel(session))) {\
 			return SWITCH_STATUS_FALSE;\
 		}}\
@@ -540,10 +543,10 @@
 	}
 	
 	if (say_cb) {
-		say_cb(session, tosay, type, method, args);
+		return say_cb(session, tosay, type, method, args);
 	} 
 
-	return SWITCH_STATUS_SUCCESS;
+	return SWITCH_STATUS_FALSE;
 }
 
 static const switch_say_interface_t en_say_interface= {

Modified: freeswitch/trunk/src/switch_ivr.c
==============================================================================
--- freeswitch/trunk/src/switch_ivr.c	(original)
+++ freeswitch/trunk/src/switch_ivr.c	Fri Feb  9 16:48:24 2007
@@ -4697,7 +4697,8 @@
             }
 
             if (match) {
-                for (action = switch_xml_child(match, "action"); action; action = action->next) {
+				status = SWITCH_STATUS_SUCCESS;
+                for (action = switch_xml_child(match, "action"); action && status == SWITCH_STATUS_SUCCESS; action = action->next) {
                     char *adata = (char *) switch_xml_attr_soft(action, "data");
                     char *func = (char *) switch_xml_attr_soft(action, "function");
 
@@ -4739,7 +4740,7 @@
                             char *say_type = (char *) switch_xml_attr_soft(action, "type");
                             char *say_method = (char *) switch_xml_attr_soft(action, "method");
                             
-                            si->say_function(session, odata, get_say_type_by_name(say_type), get_say_method_by_name(say_method), args);
+                            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", lang);
                         }
@@ -4747,12 +4748,12 @@
                         switch_codec_t *read_codec;
                         if ((read_codec = switch_core_session_get_read_codec(session))) {
                             
-                            switch_ivr_speak_text(session,
-                                                  tts_engine,
-                                                  tts_voice,
-                                                  read_codec->implementation->samples_per_second,
-                                                  odata,
-                                                  args);
+                            status = switch_ivr_speak_text(session,
+														   tts_engine,
+														   tts_voice,
+														   read_codec->implementation->samples_per_second,
+														   odata,
+														   args);
                         }
                     }
                 }
@@ -4763,6 +4764,10 @@
             switch_safe_free(substituted);
         }
 
+		if (status != SWITCH_STATUS_SUCCESS) {
+			break;
+		}
+
         input = input->next;
     }
 



More information about the Freeswitch-svn mailing list