From e98abaff4d9203521a2df31943c73c0d8efa85fc Mon Sep 17 00:00:00 2001 From: Robert Long Date: Fri, 30 Jul 2021 13:58:15 -0700 Subject: [PATCH] Properly handle multiple rooms --- src/ConferenceCallManager.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/ConferenceCallManager.js b/src/ConferenceCallManager.js index 29eed288..61b6f7fe 100644 --- a/src/ConferenceCallManager.js +++ b/src/ConferenceCallManager.js @@ -172,6 +172,10 @@ export class ConferenceCallManager extends EventEmitter { .forEach((member) => this._processMember(member.userId)); for (const { call, onHangup, onReplaced } of this.pendingCalls) { + if (call.roomId !== roomId) { + continue; + } + call.removeListener("hangup", onHangup); call.removeListener("replaced", onReplaced); const userId = call.opponentMember.userId; @@ -237,6 +241,10 @@ export class ConferenceCallManager extends EventEmitter { }; _onMemberChanged = (_event, _state, member) => { + if (member.roomId !== this.roomId) { + return; + } + this._processMember(member.userId); }; @@ -320,6 +328,10 @@ export class ConferenceCallManager extends EventEmitter { return; } + if (call.roomId !== this.roomId) { + return; + } + const userId = call.opponentMember.userId; this._addCall(call, userId); this._setDebugState(userId, "answered");