From fa84056418a8de7c942f8a89480e41c3f1babd24 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 18 Dec 2009 15:52:56 +0000 Subject: [PATCH] make cn optional for mute 1 means absolute silence > 1 means generate cn level git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15996 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/applications/mod_dptools/mod_dptools.c | 8 +++++--- src/switch_ivr_async.c | 6 +++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/mod/applications/mod_dptools/mod_dptools.c b/src/mod/applications/mod_dptools/mod_dptools.c index d5bb693bb8..487d9e450d 100644 --- a/src/mod/applications/mod_dptools/mod_dptools.c +++ b/src/mod/applications/mod_dptools/mod_dptools.c @@ -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); diff --git a/src/switch_ivr_async.c b/src/switch_ivr_async.c index 6c3bce19b4..1943c354a4 100644 --- a/src/switch_ivr_async.c +++ b/src/switch_ivr_async.c @@ -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); }