1.18.0 (April 23, 2019)
New Features
- You can now use the Network Quality API to receive Network Quality levels for RemoteParticipants in a Group Room. You can also control the verbosity of the network quality information that is reported. A Participant will now have an additional property
networkQualityStats
which contains the network quality statistics used to calculate thenetworkQualityLevel
. (JSDK-2255)
You can specify the verbosity levels of the network quality information in ConnectOptions while joining the Room:
const { connect } = require('twilio-video');
const room = await connect(token, {
networkQuality: {
local: 1, // Verbosity level for LocalParticipant [1 - 3]
remote: 2 // Verbosity level for RemoteParticipants [0 - 3]
}
});
// Set up reporting of network quality statistics for the LocalParticipant.
setupNetworkQualityStats(room.localParticipant);
// Set up reporting of network quality statistics for RemoteParticipants in the Group Room.
room.participants.forEach(setupNetworkQualityStats);
// Set up reporting of network quality statistics for RemoteParticipants that will join the Group Room.
room.on('participantConnected', setupNetworkQualityStats);
function logNetworkQualityStats(participant, networkQualityLevel, networkQualityStats) {
console.log(`Network quality level for ${participant.identity}:`, networkQualityLevel);
if (networkQualityStats) {
// Verbosity is in the range [2 - 3].
console.log('Network quality statistics used to compute the level:', networkQualityStats);
}
}
function setupNetworkQualityStats(participant) {
// Log current network quality statistics of the Participant.
logNetworkQualityStats(participant, participant.networkQualityLevel, participant.networkQualityStats);
// Listen to changes in the Participant's network quality level.
participant.on('networkQualityLevelChanged', (networkQualityLevel, networkQualityStats) => {
logNetworkQualityStats(participant, networkQualityLevel, networkQualityStats);
});
}
You can also change the verbosity levels of the network quality information after
joining the Room:
room.localParticipant.setNetworkQualityConfiguration({
local: 3,
remote: 1
});