diff --git a/src/matrix/calls/group/GroupCall.ts b/src/matrix/calls/group/GroupCall.ts index 3a28c9a7..886cb53a 100644 --- a/src/matrix/calls/group/GroupCall.ts +++ b/src/matrix/calls/group/GroupCall.ts @@ -330,6 +330,7 @@ export class GroupCall extends EventEmitter<{change: never}> { if (!deviceInfo) { deviceInfo = { ["device_id"]: this.options.ownDeviceId, + ["session_id"]: this.options.sessionId, feeds: [{purpose: "m.usermedia"}] }; devicesInfo.push(deviceInfo); diff --git a/src/matrix/calls/group/Member.ts b/src/matrix/calls/group/Member.ts index 2929e26c..4086d060 100644 --- a/src/matrix/calls/group/Member.ts +++ b/src/matrix/calls/group/Member.ts @@ -138,6 +138,11 @@ export class Member { /** @internal */ handleDeviceMessage(message: SignallingMessage, deviceId: string, syncLog: ILogItem) { syncLog.refDetached(this.logItem); + const destSessionId = message.content.dest_session_id; + if (destSessionId !== this.options.sessionId) { + this.logItem.log({l: "ignoring to_device event with wrong session_id", destSessionId, type: message.type}); + return; + } if (message.type === EventType.Invite && !this.peerCall) { this.peerCall = this._createPeerCall(message.content.call_id); }