From 13a20a0ef06719b823958520420481b8a54d3a8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=A9grier?= Date: Thu, 18 Feb 2021 11:52:30 +0100 Subject: [PATCH] Fixing screensharing Coturn credentials When screensharing is initiated by the user, we previously did not send the correct Coturn credentials. We now send the last credentials received from the Video stream. --- front/src/WebRtc/SimplePeer.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/front/src/WebRtc/SimplePeer.ts b/front/src/WebRtc/SimplePeer.ts index 34e4b3f8..2baeef11 100644 --- a/front/src/WebRtc/SimplePeer.ts +++ b/front/src/WebRtc/SimplePeer.ts @@ -42,6 +42,8 @@ export class SimplePeer { private readonly stopLocalScreenSharingStreamCallback: StopScreenSharingCallback; private readonly peerConnectionListeners: Array = new Array(); private readonly userId: number; + private lastWebrtcUserName: string|undefined; + private lastWebrtcPassword: string|undefined; constructor(private Connection: RoomConnection, private enableReporting: boolean, private myName: string) { // We need to go through this weird bound function pointer in order to be able to "free" this reference later. @@ -142,6 +144,9 @@ export class SimplePeer { mediaManager.addActiveVideo(user, name); + this.lastWebrtcUserName = user.webRtcUser; + this.lastWebrtcPassword = user.webRtcPassword; + const peer = new VideoPeer(user, user.initiator ? user.initiator : false, this.Connection); //permit to send message @@ -191,6 +196,12 @@ export class SimplePeer { mediaManager.addScreenSharingActiveVideo("" + user.userId); } + // Enrich the user with last known credentials (if they are not set in the user object, which happens when a user triggers the screen sharing) + if (user.webRtcUser === undefined) { + user.webRtcUser = this.lastWebrtcUserName; + user.webRtcPassword = this.lastWebrtcPassword; + } + const peer = new ScreenSharingPeer(user, user.initiator ? user.initiator : false, this.Connection); this.PeerScreenSharingConnectionArray.set(user.userId, peer);