]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Fix handling of send_silence_when_idle==0 in switch_ivr_sleep
authorTravis Cross <tc@traviscross.com>
Mon, 3 Mar 2014 23:21:58 +0000 (23:21 +0000)
committerTravis Cross <tc@traviscross.com>
Tue, 4 Mar 2014 02:06:32 +0000 (02:06 +0000)
When the channel variable send_silence_when_idle was set to zero,
switch_ivr_sleep was calling SWITCH_IVR_VERIFY_SILENCE_DIVISOR on it
anyway, causing it to be set to 400.  The only way to get the behavior
of not sending silence when idle was to unset the variable completely.

This corrects the behavior such that setting the value to zero has the
same effect as leaving it unset.

src/switch_ivr.c

index 3090942df59742998825988ecb7f191d4f1c80b0..987796941b185c272d8bc39a6c5f7c3b98c69412 100644 (file)
@@ -166,9 +166,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_sleep(switch_core_session_t *session,
                switch_goto_status(SWITCH_STATUS_SUCCESS, end);
        }
 
-       var = switch_channel_get_variable(channel, SWITCH_SEND_SILENCE_WHEN_IDLE_VARIABLE);
-       if (var) {
-               sval = atoi(var);
+       if ((var = switch_channel_get_variable(channel, SWITCH_SEND_SILENCE_WHEN_IDLE_VARIABLE))
+               && (sval = atoi(var))) {
                SWITCH_IVR_VERIFY_SILENCE_DIVISOR(sval);
        }