Add force_send_silence_when_idle channel variable

If set to true, this prevents us from overriding the value of
send_silence_when_idle.  When that is unset or set to zero and SRTP is
engaged, we typically override the value because many devices can't
handle gaps in the SRTP stream.

This variable is mostly for testing whether particular devices can
handle this behavior.  Use at your own risk.
This commit is contained in:
Travis Cross 2014-03-03 18:33:25 +00:00
parent 8fe324c404
commit 6f11c1636b

View File

@ -1796,8 +1796,10 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_add_crypto_key(switch_rtp_t *rtp_sess
memset(policy, 0, sizeof(*policy)); memset(policy, 0, sizeof(*policy));
/* many devices can't handle gaps in SRTP streams */ /* many devices can't handle gaps in SRTP streams */
if (!(var = switch_channel_get_variable(channel, "send_silence_when_idle")) if (!((var = switch_channel_get_variable(channel, "force_send_silence_when_idle"))
|| !(atoi(var))) { && switch_true(var))
&& (!(var = switch_channel_get_variable(channel, "send_silence_when_idle"))
|| !(atoi(var)))) {
switch_channel_set_variable(channel, "send_silence_when_idle", "-1"); switch_channel_set_variable(channel, "send_silence_when_idle", "-1");
} }