diff --git a/src/models/Call.ts b/src/models/Call.ts index c45bf94925..5b27f53766 100644 --- a/src/models/Call.ts +++ b/src/models/Call.ts @@ -654,6 +654,7 @@ export class ElementCall extends Call { analyticsID, }); + if (client.isRoomEncrypted(groupCall.room.roomId)) params.append("perParticipantE2EE", ""); if (SettingsStore.getValue("fallbackICEServerAllowed")) params.append("allowIceFallback", ""); if (SettingsStore.getValue("feature_allow_screen_share_only_mode")) params.append("allowVoipWithNoMedia", ""); diff --git a/src/stores/widgets/StopGapWidgetDriver.ts b/src/stores/widgets/StopGapWidgetDriver.ts index 8ae9196241..7b40272228 100644 --- a/src/stores/widgets/StopGapWidgetDriver.ts +++ b/src/stores/widgets/StopGapWidgetDriver.ts @@ -149,6 +149,12 @@ export class StopGapWidgetDriver extends WidgetDriver { WidgetEventCapability.forStateEvent(EventDirection.Receive, "org.matrix.msc3401.call.member").raw, ); + const sendRecvRoomEvents = ["io.element.call.encryption_key"]; + for (const eventType of sendRecvRoomEvents) { + this.allowedCapabilities.add(WidgetEventCapability.forRoomEvent(EventDirection.Send, eventType).raw); + this.allowedCapabilities.add(WidgetEventCapability.forRoomEvent(EventDirection.Receive, eventType).raw); + } + const sendRecvToDevice = [ EventType.CallInvite, EventType.CallCandidates,