[Freeswitch-svn] [commit] r3428 - freeswitch/trunk/src

Freeswitch SVN anthm at freeswitch.org
Mon Nov 20 19:29:51 EST 2006


Author: anthm
Date: Mon Nov 20 19:29:51 2006
New Revision: 3428

Modified:
   freeswitch/trunk/src/switch_ivr.c

Log:
send 180 when there is no ringback specified on forked calls

Modified: freeswitch/trunk/src/switch_ivr.c
==============================================================================
--- freeswitch/trunk/src/switch_ivr.c	(original)
+++ freeswitch/trunk/src/switch_ivr.c	Mon Nov 20 19:29:51 2006
@@ -2260,6 +2260,7 @@
 	uint8_t to = 0;
 	char *ringback_data = NULL;
 	switch_codec_t *read_codec = NULL;
+	uint8_t sent_ring = 0;
 
 	write_frame.data = fdata;
 	
@@ -2310,6 +2311,11 @@
 
 	or_argc = switch_separate_string(data, '|', pipe_names, (sizeof(pipe_names) / sizeof(pipe_names[0])));
 
+	if (caller_channel && or_argc > 1 && !ringback_data) {
+		switch_channel_ringback(caller_channel);
+		sent_ring = 1;
+	}
+
 	for (r = 0; r < or_argc; r++) {
 		memset(peer_names, 0, sizeof(peer_names));
 		peer_session = NULL;
@@ -2330,6 +2336,11 @@
 
 		and_argc = switch_separate_string(pipe_names[r], '&', peer_names, (sizeof(peer_names) / sizeof(peer_names[0])));
 	
+		if (caller_channel && !sent_ring && and_argc > 1 && !ringback_data) {
+			switch_channel_ringback(caller_channel);
+			sent_ring = 1;
+		}
+
 		for (i = 0; i < and_argc; i++) {
 		
 			chan_type = peer_names[i];



More information about the Freeswitch-svn mailing list