Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
5.3.0
June 3rd, 2020
API Changes
Call.Listener
callbackonCallQualityWarningsChanged()
is introduced.The
Set
that contain the warnings are consisted ofenum
with values of the newly introducedCallQualityWarning
The trigger conditions for the warnings defined in the enumeration are defined as follows:
WARN_HIGH_RTT
- Round Trip Time (RTT) > 400 ms for 3 out of last 5 samples.WARN_HIGH_JITTER
- Jitter > 30 ms for 3 out of last 5 samples.WARN_HIGH_PACKET_LOSS
- Raised when average packet loss > 3% in last 7 samples. Cleared when average packet loss <= 1% in last 7 samples.WARN_LOW_MOS
- Mean Opinion Score (MOS) < 3.5 for 3 out of last 5 samples.WARN_CONSTANT_AUDIO_IN_LEVEL
- Raised when the standard deviation of audio input levels for last 10 samples is less than or equals 1% of the maximum possible audio input level (32767) i.e. 327.67 and the call is not in the muted state and the call is not on hold. Cleared when the standard deviation of audio input levels for last 10 samples is greater than 3% of the maximum possible audio input level.A new method
getCallQualityWarnings()
is added toCall
to retrieve the present set of call quality related warnings.This release also adds the Mean Opinion Score (MOS) measurement
mos
toRemoteAudioTrackStats
. UseCall.getStats()
API during a call to retrieve the score. Themos
is computed once per second. Since the MOS is calculated from network performance measurements, it can be used to indicate the current network condition to the user to provide better usability. See API Docs for more information.Example:
Voice.edge
. This new property supersedes the now deprecatedVoice.region
. See the new Edge names and how they map to the old region names.Here is an example
Below are the new methods signatures introduced in
Voice
class.The following APIs have been deprecated in favor of the new methods.
enableIceGatheringOnAnyAddressPorts
inCallOptions
that allows gathering of ICE candidates from "any address" ports. This allows applications to work in certain VPN environments.Reference the following code snippet to enable or disable this feature. Note,
enableIceGatheringOnAnyAddressPorts
is disabled by default.Configure
enableIceGatheringOnAnyAddressPorts
withConnectOptions
Configure
enableIceGatheringOnAnyAddressPorts
withAcceptOptions
enableIceGatheringOnAnyAddressPorts
inCallOptions
allows the gathering of ICE candidates from all available interfaces. This should be used in those networks where the default does not work. See AcceptOptions.Builder.enableIceGatheringOnAnyAddressPorts or ConnectOptions.Builder.enableIceGatheringOnAnyAddressPorts for more information.Library Size Report
Things to Note
ConnectOptions.Builder.iceOptions(...)
orAcceptOptions.Builder.iceOptions(...)
. ICE servers can be obtained from Twilio Network Travarsal Service.AsyncTask
of registration/unregistration and eventpublishing. The crash has only been observed on API 18 devices and results from a
thread safety bug in Android. Similar crashes
have been reported in the popular networking library OkHttp
#1520
#1338. If this bug is impacting your applications,
please open an issue on our quickstart and
we will investigate potential fixes.
Contributing to Twilio