From 4c2240261e2feeab3a93206faef9f6c3c20723db Mon Sep 17 00:00:00 2001 From: Robin Date: Fri, 16 Jan 2026 18:26:21 +0100 Subject: [PATCH] Make Element Call widgets compatible with Matrix 2.0 mode This gives Element Call widgets the ability to send and receive sticky RTC membership events. --- locales/en/app.json | 2 +- package.json | 4 ++-- src/widget.ts | 3 +++ yarn.lock | 20 ++++++++++---------- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/locales/en/app.json b/locales/en/app.json index c70a0a49..0b0ac7b4 100644 --- a/locales/en/app.json +++ b/locales/en/app.json @@ -116,7 +116,7 @@ "matrix_rtc_transport_missing": "The server is not configured to work with {{brand}}. Please contact your server admin (Domain: {{domain}}, Error Code: {{ errorCode }}).", "membership_manager": "Membership Manager Error", "membership_manager_description": "The Membership Manager had to shut down. This is caused by many consequtive failed network requests.", - "no_matrix_2_authorization_service": "Your authorization service for you media server (SFU) is not on the newest version", + "no_matrix_2_authorization_service": "The authorization service for your media server (SFU) is out of date.", "open_elsewhere": "Opened in another tab", "open_elsewhere_description": "{{brand}} has been opened in another tab. If that doesn't sound right, try reloading the page.", "room_creation_restricted": "Failed to create call", diff --git a/package.json b/package.json index 04308630..1ee8ff04 100644 --- a/package.json +++ b/package.json @@ -104,8 +104,8 @@ "livekit-client": "^2.13.0", "lodash-es": "^4.17.21", "loglevel": "^1.9.1", - "matrix-js-sdk": "matrix-org/matrix-js-sdk#develop", - "matrix-widget-api": "^1.14.0", + "matrix-js-sdk": "matrix-org/matrix-js-sdk#robin/sticky-embedded", + "matrix-widget-api": "^1.16.0", "node-stdlib-browser": "^1.3.1", "normalize.css": "^8.0.1", "observable-hooks": "^4.2.3", diff --git a/src/widget.ts b/src/widget.ts index 7862df33..37d3f507 100644 --- a/src/widget.ts +++ b/src/widget.ts @@ -110,6 +110,7 @@ export const widget = ((): WidgetHelpers | null => { EventType.RoomRedaction, ElementCallReactionEventType, EventType.RTCDecline, + EventType.RTCMembership, ]; const sendState = [ @@ -154,6 +155,8 @@ export const widget = ((): WidgetHelpers | null => { turnServers: false, sendDelayedEvents: true, updateDelayedEvents: true, + sendSticky: true, + receiveSticky: true, }, roomId, { diff --git a/yarn.lock b/yarn.lock index 167ab618..a810222c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8364,8 +8364,8 @@ __metadata: livekit-client: "npm:^2.13.0" lodash-es: "npm:^4.17.21" loglevel: "npm:^1.9.1" - matrix-js-sdk: "matrix-org/matrix-js-sdk#develop" - matrix-widget-api: "npm:^1.14.0" + matrix-js-sdk: "matrix-org/matrix-js-sdk#robin/sticky-embedded" + matrix-widget-api: "npm:^1.16.0" node-stdlib-browser: "npm:^1.3.1" normalize.css: "npm:^8.0.1" observable-hooks: "npm:^4.2.3" @@ -11452,9 +11452,9 @@ __metadata: languageName: node linkType: hard -"matrix-js-sdk@matrix-org/matrix-js-sdk#develop": - version: 39.4.0 - resolution: "matrix-js-sdk@https://github.com/matrix-org/matrix-js-sdk.git#commit=4d0d32307eb4f1ce1fb65080fcca704f5bdedc31" +"matrix-js-sdk@matrix-org/matrix-js-sdk#robin/sticky-embedded": + version: 40.0.0 + resolution: "matrix-js-sdk@https://github.com/matrix-org/matrix-js-sdk.git#commit=fafa85ddae9b1989573beac0ef71897ba69f1df3" dependencies: "@babel/runtime": "npm:^7.12.5" "@matrix-org/matrix-sdk-crypto-wasm": "npm:^17.0.0" @@ -11470,17 +11470,17 @@ __metadata: sdp-transform: "npm:^3.0.0" unhomoglyph: "npm:^1.0.6" uuid: "npm:13" - checksum: 10c0/59c9d81ccf823584dc783502cb5c928562e3490c63f5ce98ee3232a603545d6278e90dc951c1fd0bae2792ba732ec5171e03596fd396bb2150d596cebb7fbac9 + checksum: 10c0/b59206fbb2e19293791e680c773c99ee122ac2e5791baf966dd718745015e733d5953bc92506c0de2f148162a7ea9fd285a7ff6b863defd020271fd832c0497b languageName: node linkType: hard -"matrix-widget-api@npm:^1.14.0": - version: 1.15.0 - resolution: "matrix-widget-api@npm:1.15.0" +"matrix-widget-api@npm:^1.14.0, matrix-widget-api@npm:^1.16.0": + version: 1.16.0 + resolution: "matrix-widget-api@npm:1.16.0" dependencies: "@types/events": "npm:^3.0.0" events: "npm:^3.2.0" - checksum: 10c0/1c08b5284cd98aed312d95594335e1391d937dfad70ef862a1f90fdbaaa27709e1c44dcda37f8045e4814779d8d5816d240aee396d52cfd9b37fbf243a6baf6a + checksum: 10c0/261aba7c5a4e8e00e7bfb3df9c5d3786c245035a6adf4f864fba0352ccaf4a14d68243d98f4fe6ffcbd28cd61bcf453047804cb9e9dd867eed06fd97db2e62e3 languageName: node linkType: hard