Revision
15996
Author
anthm
Date
2009-12-18 09:52:56 -0600 (Fri, 18 Dec 2009)

Log Message

make cn optional for mute 1 means absolute silence > 1 means generate cn level

Modified Paths

Diff

Modified: freeswitch/trunk/src/mod/applications/mod_dptools/mod_dptools.c (15995 => 15996)


--- freeswitch/trunk/src/mod/applications/mod_dptools/mod_dptools.c	2009-12-17 23:25:49 UTC (rev 15995)
+++ freeswitch/trunk/src/mod/applications/mod_dptools/mod_dptools.c	2009-12-18 15:52:56 UTC (rev 15996)
@@ -443,7 +443,7 @@
 	
 }
 
-#define SET_MUTE_SYNTAX "[read|write] [true|false]"
+#define SET_MUTE_SYNTAX "[read|write] [[true|cn level]|false]"
 SWITCH_STANDARD_APP(set_mute_function)
 {
 	char *argv[2] = { 0 };
@@ -459,9 +459,11 @@
 						  switch_core_session_get_name(session), SET_MUTE_SYNTAX);
 		return;
 	}
-
-	level = switch_true(argv[1]);
 	
+	if ((level = atoi(argv[1])) <= 0) {
+		level = switch_true(argv[1]);
+	}
+	
 	switch_ivr_session_audio(session, "mute", argv[0], level);
 	
 }

Modified: freeswitch/trunk/src/switch_ivr_async.c (15995 => 15996)


--- freeswitch/trunk/src/switch_ivr_async.c	2009-12-17 23:25:49 UTC (rev 15995)
+++ freeswitch/trunk/src/switch_ivr_async.c	2009-12-18 15:52:56 UTC (rev 15996)
@@ -1391,7 +1391,11 @@
 
 	if (frame) {
 		if (mute) {
-			switch_generate_sln_silence(frame->data, frame->datalen / 2, 400);
+			if (mute > 1) {
+				switch_generate_sln_silence(frame->data, frame->datalen / 2, mute);
+			} else {
+				memset(frame->data, 0, frame->datalen);
+			}
 		} else if (level) {
 			switch_change_sln_volume(frame->data, frame->datalen / 2, level);
 		}