testConnectionQuality()Deprecated
testConnectionQuality({ videoTrack: MediaStreamTrack, duration?: number }): Promise;
This method is deprecated. Please use testCallQuality()
instead.
The testConnectionQuality()
method assesses the quality of a WebRTC connection using a given video track. Connecting to Daily's TURN servers, it captures the max round trip time and
packet loss to determine the quality of a user's connection. The longer the test runs for, the more accurate the results will be. By default, the test runs for 15 seconds. You can customize how long it runs for, up to a maximum of 30 seconds. This method is particularly useful during precall checks when
a room has not yet been joined. For in-depth network stats during a call, refer to getNetworkStats()
.
It returns a Promise that resolves to an object providing information about the connection quality test results:
result
: A string indicating the connection quality. Can be"good"
,"bad"
,"warning"
,"aborted"
or"failed"
.data
: An object containing the data gathered during the trip: max round trip time (maxRTT
) and packet loss percentage (packetLoss
). This data is used to determine theresult
.secondsElapsed
: A number indicating how long the test has run for.
Also see:
stopTestConnectionQuality()
: This method can be used to interrupt the test.test-completed
: This event is emitted when the test completes or is stopped.
Test results in detail
An example test result looks like this:
maxRTT
(ms) is calculated based on an array of currentRoundTripTime values. Every second of the test, we gather a new currentRoundTripTime
value, and at the end of the rest, return the highest value in this array.
packetLoss
(percentage) is calculated based on RTCReceivedRtpStreamStatspacketsLost
and packetsReceived
.
Meaning of result
:
The result
is returned when any one of these conditions is met:
"good"
:packetLoss
< 5%maxRTT
< 300ms
"warning"
:packetLoss
>= 5% and < 10%maxRTT
>= 300ms and < 600ms
"bad"
:packetLoss
>= 10%maxRTT
>= 600ms
"failed"
: a connection to Daily's TURN servers could not be made. Our suggestion is to refer users to our network debugger for a more in-depth test."aborted"
: test aborted before data gathering could start. SeestopTestConnectionQuality()
.
Example usage of testConnectionQuality()
:
Related methods and events
test-completed
testNetworkConnectivity
testWebsocketConnectivity
stopTestConnectionQuality
abortTestNetworkConnectivity
abortTestWebsocketConnectivity