From b59275b3e1c22c2eb6463227567ed8b61c963325 Mon Sep 17 00:00:00 2001 From: Half-Shot Date: Mon, 27 Oct 2025 11:37:56 +0000 Subject: [PATCH] Add ability to specify sticky events in URI. --- src/UrlParams.ts | 6 ++++++ src/state/CallViewModel.ts | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/UrlParams.ts b/src/UrlParams.ts index 4eb69298..33bf0d02 100644 --- a/src/UrlParams.ts +++ b/src/UrlParams.ts @@ -141,6 +141,11 @@ export interface UrlProperties { * can be "light", "dark", "light-high-contrast" or "dark-high-contrast". */ theme: string | null; + /** + * Whether or not the call should be held using the sticky event implementation, + * where possible. + */ + preferStickyEvents: boolean; } /** @@ -501,6 +506,7 @@ export const computeUrlParams = (search = "", hash = ""): UrlParams => { sentryDsn: parser.getParam("sentryDsn"), sentryEnvironment: parser.getParam("sentryEnvironment"), e2eEnabled: parser.getFlagParam("enableE2EE", true), + preferStickyEvents: parser.getFlagParam("preferStickyEvents", false), }; const configuration: Partial = { diff --git a/src/state/CallViewModel.ts b/src/state/CallViewModel.ts index d7735b26..e7b58a3e 100644 --- a/src/state/CallViewModel.ts +++ b/src/state/CallViewModel.ts @@ -1834,7 +1834,9 @@ export class CallViewModel { await enterRTCSession(this.matrixRTCSession, advertised.transport, { encryptMedia: this.options.encryptionSystem.kind !== E2eeType.NONE, useMultiSfu: advertised.multiSfu, - preferStickyEvents: advertised.preferStickyEvents, + preferStickyEvents: + this.urlParams.preferStickyEvents && + advertised.preferStickyEvents, }); } catch (e) { logger.error("Error entering RTC session", e);