This allows the "broken ptime" detection to work correctly when packet
loss is present on the wire. In addition to the timestamps this patch
adds frame sequence tracking and corrects the timestamp difference
only as needed and according to the number of lost packets.
FS-6898 #resolve
VARIABLE: bypass_media_sdp_filter
Can be set globally or per leg on the inbound side of a bypass_media bridge.
VALID FILTERS:
remove(): Removes the specified codec if it exists in the SDP.
only(): Removes all codecs besides the one specified (providing that it exists in the sdp) (will not remove telephone-event))
EXAMPLE 1 (remove everything leaving only g729):
<action application="set" data="bypass_media_sdp_filter=only(g729)"/>
<action application="set" data="bypass_media=true"/>
<action application="bridge" data="sofia/internal/1238@conference.freeswitch.org"/>
EXAMPLE 2 (remove everything leaving only g729 and also remove dtmf):
<action application="set" data="bypass_media_sdp_filter=only(g729)|remove(telephone-event)"/>
<action application="set" data="bypass_media=true"/>
<action application="bridge" data="sofia/internal/1238@conference.freeswitch.org"/>
EXAMPLE 3 (remove alaw and speex):
<action application="set" data="bypass_media_sdp_filter=remove(pcma)|remove(speex)"/>
<action application="set" data="bypass_media=true"/>
<action application="bridge" data="sofia/internal/1238@conference.freeswitch.org"/>
Freeswitch tries to fix timing issues (wrong ptime) on re-invite the same way
it does for the initial invite. This results in small audio glitches, while it
sends a couple of packets with different ptime, before the timing detection
logic figures out the remote (broken) endpoint true ptime.
In order to avoid unnecessary timing changes, this patch overwrites the
advertised ptime from known broken endpoints with the ptime, which was detected
by freeswitch. It does this by checking if the sip_h_X-Broken-PTIME (1.2.x) or
rtp_h_X-Broken-PTIME (master) variables are set.
FS-6644 #resolve
* commit '1affff9db4aaa29ab66f9f5db76f575eeabd86b5':
Fixed a clang-3.5 missing-prototype warning and added doxygen documentation for switch_channel_set_presence_data_vals. #doxygen
Fixed dead code.
Fixed trucation of value warning.
Removed a useless called to abs.
Removed an autological-pointer-compare from src/switch_utils.c.
Fixed trucation of value warning.
There was a parameter mismatch between abs(), which expects an int,
and atol() which returns a long. Since max_drift is defined as an int,
there is no need to pars q as a long rather than an int.