[Freeswitch-svn] [commit] r13038 - freeswitch/trunk/src/mod/applications/mod_fifo

FreeSWITCH SVN brian at freeswitch.org
Wed Apr 15 10:55:31 PDT 2009


Author: brian
Date: Wed Apr 15 12:55:30 2009
New Revision: 13038

Log:
MODAPP-189

Modified:
   freeswitch/trunk/src/mod/applications/mod_fifo/mod_fifo.c

Modified: freeswitch/trunk/src/mod/applications/mod_fifo/mod_fifo.c
==============================================================================
--- freeswitch/trunk/src/mod/applications/mod_fifo/mod_fifo.c	(original)
+++ freeswitch/trunk/src/mod/applications/mod_fifo/mod_fifo.c	Wed Apr 15 12:55:30 2009
@@ -184,6 +184,8 @@
 	time_t orbit_timeout;
 	int do_orbit;
 	char *orbit_exten;
+	char *orbit_dialplan;
+	char *orbit_context;
 };
 
 typedef struct fifo_chime_data fifo_chime_data_t;
@@ -794,16 +796,19 @@
 		fifo_chime_data_t cd = { {0} };
 		const char *chime_list = switch_channel_get_variable(channel, "fifo_chime_list");
 		const char *chime_freq = switch_channel_get_variable(channel, "fifo_chime_freq");
-		const char *orbit_var = switch_channel_get_variable(channel, "fifo_orbit_exten");
+		const char *orbit_exten = switch_channel_get_variable(channel, "fifo_orbit_exten");
+		const char *orbit_dialplan = switch_channel_get_variable(channel, "fifo_orbit_dialplan");
+		const char *orbit_context = switch_channel_get_variable(channel, "fifo_orbit_context");
+
 		const char *orbit_ann = switch_channel_get_variable(channel, "fifo_orbit_announce");
 		const char *caller_exit_key = switch_channel_get_variable(channel, "fifo_caller_exit_key");
 		int freq = 30;
 		int ftmp = 0;
 		int to = 60;
 
-		if (orbit_var) {
+		if (orbit_exten) {
 			char *ot;
-			if ((cd.orbit_exten = switch_core_session_strdup(session, orbit_var))) {
+			if ((cd.orbit_exten = switch_core_session_strdup(session, orbit_exten))) {
 				if ((ot = strchr(cd.orbit_exten, ':'))) {
 					*ot++ = '\0';
 					if ((to = atoi(ot)) < 0) {
@@ -812,6 +817,8 @@
 				}
 				cd.orbit_timeout = switch_epoch_time_now(NULL) + to;
 			}
+			cd.orbit_dialplan = switch_core_session_strdup(session, orbit_dialplan);
+			cd.orbit_context = switch_core_session_strdup(session, orbit_context);
 		}
 
 		if (chime_freq) {
@@ -969,7 +976,7 @@
 			if (orbit_ann) {
 				switch_ivr_play_file(session, NULL, orbit_ann, NULL);
 			}
-			switch_ivr_session_transfer(session, cd.orbit_exten, NULL, NULL);
+			switch_ivr_session_transfer(session, cd.orbit_exten, cd.orbit_dialplan, cd.orbit_context);
 		}
 
 		goto done;



More information about the Freeswitch-svn mailing list