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");