]> 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>
Mon, 3 Mar 2014 23:21:58 +0000 (23:21 +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 b18a67ace89ce0235bf5df52332f6454be9619ed..87ea8af4b515ca830d0cabb07909a681be3b2510 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);
        }