From 5a7ea956b969d3ebbccf9c58b16a25b4e59d10ac 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 b84795b91b..b8da56b984 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -3042,8 +3042,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"); }