From 6f11c1636bb67c1a1986e0facfb07f1a11e54cb1 Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Mon, 3 Mar 2014 18:33:25 +0000 Subject: [PATCH] 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. --- src/switch_rtp.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/switch_rtp.c b/src/switch_rtp.c index fc4b6a6019..7cbfb7089e 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -1796,8 +1796,10 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_add_crypto_key(switch_rtp_t *rtp_sess memset(policy, 0, sizeof(*policy)); /* many devices can't handle gaps in SRTP streams */ - if (!(var = switch_channel_get_variable(channel, "send_silence_when_idle")) - || !(atoi(var))) { + if (!((var = switch_channel_get_variable(channel, "force_send_silence_when_idle")) + && 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"); }