Video SDK Web and Version
Zoom Web Video SDK 1.11.5
Description
When I try to join a video session on a specific Chromium version (71.0.3545.0) I receive a error message on processing ICE candidate.
Error:
Uncaught (in promise) DONException: Failed to execute 'addIceCandidate on 'RTCPeerConnection': Error processing ICE candidate
Troubleshooting Routes
I’ve tried on a different newer Chromium version (127.0.6496.0) and it worked, I would like to understand if Zoom is not available on such old version of Chromium or is something we can fix. We have a specific use case so that’s why we’re using such an old Chromium version.
// This is the method that is being called to join the session.
connectCall() {
const vueThis = this;
this.loading = true;
this.$refs.audioRing.pause();
this.$emit('cancel-modal-timeout');
this.captionTimeout = null;
// before a user enters a new room,
// disconnect the user from they joined already
this.leaveRoomIfJoined();
// remove any remote track when joining a new room
this.$refs.remoteTrack.innerHTML = '';
vueThis.activeRoom = ZoomVideo.createClient();
vueThis.activeRoom.init('en-US', 'Global', { patchJsMedia: true, enforceMultipleVideos: true }).then(() => {
vueThis.activeRoom.join(this.callData.session, this.callData.token, 'Patient', null).then(async () => {
if (this.callData.enableLiveTranscription) {
// Initializing the live transcription
vueThis.activeRoom.on('caption-message',(payload)=>{
if (payload.userId !== vueThis.activeRoom.getCurrentUserInfo().userId) {
vueThis.liveTranscriptionText = payload.text;
window.clearTimeout(this.captionTimeout);
this.captionTimeout = setTimeout(() => {
vueThis.liveTranscriptionText = '';
}, 5000);
};
});
const lttClient = vueThis.activeRoom.getLiveTranscriptionClient();
lttClient.startLiveTranscription();
}
this.stream = vueThis.activeRoom.getMediaStream();
this.loading = false;
this.stream.startAudio();
// Render the self view video
if (this.stream.isRenderSelfViewWithVideoElement()) {
this.stream
.startVideo({ videoElement: document.getElementById('self-view-video') })
.then(() => {
let element = document.getElementById('self-view-video');
element.style.display = 'block';
});
} else {
this.stream.startVideo().then(() => {
this.stream
.renderVideo(
document.getElementById('self-view-canvas'),
vueThis.activeRoom.getCurrentUserInfo().userId,
1920,
1080,
0,
0,
3
)
.then(() => {
let element = document.getElementById('self-view-canvas');
element.style.display = 'block';
});
});
}
// Checks for active participants and render their video on the canvas
let callUsers = await vueThis.activeRoom.getAllUser();
callUsers.forEach(user => {
if (user.bVideoOn && !document.querySelector(`video-player[node-id="${user.userId}"]`)) {
this.stream.attachVideo(user.userId, 3).then((userVideo) => {
document.querySelector('video-player-container').appendChild(userVideo);
});
}
});
// When a participan changes the video state
vueThis.activeRoom.on('peer-video-state-change', payload => {
if (payload.action === 'Start' && document.querySelector(`video-player[node-id="${payload.userId}"]`) === null) {
// a user turned on their video, render it
this.stream.attachVideo(payload.userId, 3).then((userVideo) => {
document.querySelector('video-player-container').appendChild(userVideo);
});
} else if (payload.action === 'Stop') {
// a user turned off their video, stop rendering it
this.stream.detachVideo(payload.userId);
document.querySelector(`video-player[node-id="0"]`).remove();
}
});
});
});
}
How To Reproduce
Steps to reproduce the behavior including:
- Use the specific chrome version
- Try to run a video session on it
- The error will occur