Commit Graph

780 Commits

Author SHA1 Message Date
Travis Cross c1f1f8b98e Check for too many SRTP errors before warning
We're checking whether we've hit the warning threshold before checking
whether we should just end the call.  This causes an off-by-one error
where we take one SRTP error more than intended.

This commit reverses the order of the tests.
2014-06-29 20:49:46 +00:00
Travis Cross f31641f4bf Allow more SRTP errors before killing call
In a carrier interop we saw the call get killed for SRTP failures
during a reinvite.  We're wondering if the SRTP errors may have been
transitory and if it may have recovered after a few more packets.

It's debatable whether we should kill calls at all for SRTP auth
failures; semantically the right thing to do when a MAC fails is to
ignore the packet completely.  So raising this limit to 100 packets
shouldn't do any harm.  With this change we still warn at 10 errors
and every 10 errors thereafter.
2014-06-28 03:57:20 +00:00
Travis Cross 7406be6927 Relay cause of hangup on SRTP failure
We hangup the channel after receiving 10 SRTP packets in a row with a
bad auth tag or that are replayed.  Prior to this commit we were
indicating a normal clearing.  When doing interop and looking first at
packet traces, this made freeswitch's behavior look surprising.  With
this commit we'll indicate more loudly what's happening.
2014-06-28 01:18:50 +00:00
Travis Cross 52892b312a Fix misspelled function
switch_rtp_set_invalid_handler has been misspelled as
switch_rtp_set_invald_handler going all the way back to the
beginning.  So while it's possible that someone somewhere could be
relying on this misspelling, I think it's more likely that no one has
used it much and that's why it wasn't spotted.  We don't even use it
ourselves anywhere anymore.

Introduced in commit: 828e03715f
2014-06-28 00:32:41 +00:00
Anthony Minessale 3c08104874 remove unused code 2014-06-18 01:17:35 +05:00
Anthony Minessale c0e7e7b88c add reset function to clear some state data in the rtp session 2014-06-14 07:05:00 +05:00
Anthony Minessale c375e336bc add debugging 2014-06-13 06:06:14 -04:00
Anthony Minessale 0eda5cb80f suppress audio flaw tally when coming off hold 2014-06-02 19:09:10 -05:00
Michael Jerris b58bbd18b0 CID:1214233 Pointer to local outside scope 2014-05-16 21:08:53 +00:00
Anthony Minessale be56bbb7ae let relay work if its the only option 2014-05-09 01:14:52 +05:00
Michael Jerris 59734d8e15 add bounds check to keep rtcp packets with > 5 report blocks from creating a buffer overrun 2014-04-28 13:32:01 -04:00
Travis Cross 59fd9b90d0 Correct display of last write timestamp
On start DTMF packets we were showing the last write timestamp as a
signed value when it's an unsigned value, which could result in it
appearing incongruous with later packets where the value was displayed
correctly.
2014-04-19 01:48:49 +00:00
Anthony Minessale 7151d6acea FS-6402 part 2 2014-04-02 03:21:37 +05:00
Anthony Minessale 5c0cff70b3 FS-6402 --resolve 2014-04-02 01:20:19 +05:00
Anthony Minessale aa147fa5fd FS-6412 --resolve 2014-03-31 16:22:33 -05:00
Anthony Minessale 087b2e4f30 revert part of 390e6713cc 2014-03-10 14:42:52 -05:00
Anthony Minessale 804ef7709d change from sqlite hash to newly added one 2014-03-09 00:37:17 +05:00
Anthony Minessale a491df05f1 declinatio mortuus obfirmo! 2014-03-07 03:35:36 +05:00
Anthony Minessale 390e6713cc part of last patch 2014-03-07 02:59:09 +05:00
Anthony Minessale e9847afe22 feed all packets to jitterbuffer when enabled to absorb bursts and improve smoothing and delay protection 2014-03-07 02:48:56 +05:00
Anthony Minessale e5b291514c FS-5755
rtp_secure_media=mandatory
rtp_secure_media=optional
rtp_secure_media=mandatory:AES_CM_256_HMAC_SHA1_80,AES_CM_256_HMAC_SHA1_32
rtp_secure_media=optional:AES_CM_256_HMAC_SHA1_80
rtp_secure_media=forbidden

true implies mandatory
false implies forbidden
not set implies optional

rtp_secure_media_inbound or rtp_secure_media_outbound take precedence and are treated the same way based on leg direction
2014-03-06 07:34:47 +05:00
Travis Cross 411a76020a Improve channel variable name to srtp_allow_idle_gaps
This was momentarily called force_send_silence_when_idle, but that was
non-obvious as you had to set that value to true to be able to not
send silence when idle.  This name describes the purpose much better.
2014-03-04 01:51:04 +00:00
Travis Cross 5a7ea956b9 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.
2014-03-04 00:09:02 +00:00
Travis Cross 20da552564 Preserve value of send_silence_when_idle if possible
In commit 55d01d3def we set
send_silence_when_idle to -1 rather than 400 when SRTP is engaged.
But this left no way to enable white noise silence when desired.

When SRTP is engaged we can't simply not send RTP because it breaks
too many devices.  So we need to prevent send_silence_when_idle from
being unset or being set to zero.  This change allows it to be set to
other values so as to feed white noise rather than all zeros into the
codec.
2014-03-03 23:43:29 +00:00
Anthony Minessale 719850e508 FS-5895 --resolve 2014-03-01 04:55:04 +05:00
Travis Cross 55d01d3def Send silent packets when idle with SRTP
Originally we did the same thing with SRTP that we do without SRTP,
which is to simply not send packets when e.g. sleep is called.

At commits d63323977f and
5259814aee we enabled sending silence
packets with comfort noise when SRTP is active.  We appear to have
done this for interop purposes; many devices can't handle gaps in the
stream of SRTP packets.

But our current comfort noise implementation doesn't take the codec
rate into account (FS-6291), so on 16kHz codecs the constant we chose
created an annoying level of static between sound file playback.

With this commit we preserve the sending of SRTP packets during idle
periods, but make those packets completely silent.

Thanks-to: Anthony Minessale <anthm@freeswitch.org>

FS-5053 --resolve
2014-02-28 23:13:37 +00:00
Anthony Minessale 8cee05987e check the jitter stats after the jitter buffer when its enabled 2014-03-01 02:50:17 +05:00
Brian West 7b5d17802f FS-6268 usinga macro to find the rtp_session_name its better on the eyes 2014-02-27 10:42:43 -06:00
Brian West 378caebc9a fix --disable-srtp 2014-02-26 08:05:22 -06:00
Anthony Minessale 5646957c5b FS-5937 2014-02-26 04:06:59 +05:00
Brian West 463f32c4e3 FS-5937: i need to build a test rig for this, go go gadget iphone commit 2014-02-24 23:44:44 -06:00
Jeff Lenk 7aff64b2d2 fix compiler warning vs2010 2014-02-24 23:29:15 -06:00
Marc Olivier Chouinard 780890b5de FS-6240 --resolve 2014-02-24 17:06:01 -05:00
Anthony Minessale a900eadf5b FS-5937 --resolve 2014-02-24 14:56:49 -06:00
Anthony Minessale 97e234048c FS-6204 refactor some dtls code to generate a 1024 bit cert suitable for dtls in all version of chrome 2014-02-19 07:05:37 +05:00
Ken Rice 6e7d5d0897 update copyright header for 2014 2014-02-12 12:08:56 -06:00
Anthony Minessale 03c723cfd1 FS-6195 --resolve 2014-02-06 22:24:05 +05:00
Anthony Minessale 5228e02b19 FS-5544 after going over this with a fine tooth comb, all I could find was some issues behind asymetrical nat. If there is a real problem here, post the flipping logs I asked for days ago....... 2014-02-04 11:56:30 +05:00
Travis Cross 59d10edd79 Fix build on x86/i386 systems 2014-01-31 17:49:44 +00:00
Jeff Lenk 7b44e5b27c compiler warnings 2014-01-29 20:46:38 -06:00
Anthony Minessale 4591088971 remove extra debug 2014-01-30 05:37:05 +05:00
Anthony Minessale 32b2a45efc add more rtp statistics with several new vars for cdr processing in_jitter_min_variance in_jitter_max_variance in_jitter_loss_rate in_jitter_burst_rate in_mean_interval in_flaw_total in_quality_percentage in_mos 2014-01-30 05:08:34 +05:00
Anthony Minessale 0e68325319 only send cng when its setup 2014-01-25 03:51:27 +05:00
Anthony Minessale 358b5db0e4 block all possible routes to write data during ice and dtls negotiation 2014-01-25 03:48:32 +05:00
Anthony Minessale 6fef880f12 FS-5675 --resolve 2014-01-24 00:23:58 +05:00
Peter Olsson 084e245085 Lots of trivial tweaks to minimize compiler warnings, especially on 64-bit platform: Added missing type casts, changed types, added missing NULL checks. 2014-01-22 22:30:23 +01:00
Anthony Minessale 8dfbd91a3d fold version macros into runtime functions to avoid cascade rebuilds when modifying the core 2014-01-17 01:54:47 +05:00
Anthony Minessale f4a4ba1716 FS-5544 --resolve 2014-01-15 21:20:06 +05:00
Anthony Minessale 1b9c21ee88 some webrtc tweaks 2014-01-15 07:04:24 +05:00
Anthony Minessale e71dabae50 FS-6007 2013-12-31 00:21:51 +05:00