]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
make cn optional for mute 1 means absolute silence > 1 means generate cn level
authorAnthony Minessale <anthony.minessale@gmail.com>
Fri, 18 Dec 2009 15:52:56 +0000 (15:52 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Fri, 18 Dec 2009 15:52:56 +0000 (15:52 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15996 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/applications/mod_dptools/mod_dptools.c
src/switch_ivr_async.c

index d5bb693bb824157818c075f03ea329825c66267c..487d9e450dc0f99dc49a168af7b7510dab322735 100644 (file)
@@ -443,7 +443,7 @@ SWITCH_STANDARD_APP(set_audio_level_function)
        
 }
 
-#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,8 +459,10 @@ SWITCH_STANDARD_APP(set_mute_function)
                                                  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);
        
index 6c3bce19b44e97dda4a0a59aa584bc1e34b98218..1943c354a46c6cb2c3c925db914955a1422a7336 100644 (file)
@@ -1391,7 +1391,11 @@ static switch_bool_t session_audio_callback(switch_media_bug_t *bug, void *user_
 
        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);
                }