From cc2bad7d50ad4fc9b8a93ec1fb45988a9737b5a1 Mon Sep 17 00:00:00 2001 From: prlanzarin <4529051+prlanzarin@users.noreply.github.com> Date: Fri, 27 May 2022 21:40:24 +0000 Subject: [PATCH] fix(core): set local descriptor after remote counterpart Fixed an issue where, in glare scenarios, the negotiation role would be flagged as OFFERER incorrectly. The whole things sucks all around, but the tldr rationale is: remote descriptors *may* be undefined at media unit creation time, but local ones *will not be undefined* if a remote descriptor is unset - so local descriptors must be processed first if they exist (for scenarios where both local and remote are provided at the same time). That guarantees the negotiation role will be properly flagged as ANSWERER in this specific scenario. --- lib/mcs-core/lib/model/sdp-media.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/mcs-core/lib/model/sdp-media.js b/lib/mcs-core/lib/model/sdp-media.js index c98f4bfa..6d3b4d91 100644 --- a/lib/mcs-core/lib/model/sdp-media.js +++ b/lib/mcs-core/lib/model/sdp-media.js @@ -32,14 +32,14 @@ module.exports = class SDPMedia extends Media { this._localDescriptor; this.negotiationRole = ''; - if (localDescriptor) { - this.localDescriptor = localDescriptor; - } - if (remoteDescriptor) { this.remoteDescriptor = remoteDescriptor; } + if (localDescriptor) { + this.localDescriptor = localDescriptor; + } + Logger.info("SDP media: created", this.getMediaInfo()); }