Fix handling of send_silence_when_idle==0 in switch_ivr_sleep

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.
This commit is contained in:
Travis Cross 2014-03-03 23:21:58 +00:00
parent 3dd36873b5
commit 11ca1a2b2e

View 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);
}