Add a URL parameter for allowing fallback ICE servers

This commit is contained in:
Robin Townsend 2023-06-05 15:52:05 -04:00
parent b1a5417b63
commit 5ef0486eff
2 changed files with 15 additions and 1 deletions

View File

@ -79,6 +79,11 @@ export interface UrlParams {
* The Posthog analytics ID. It is only available if the user has given consent for sharing telemetry in element web.
*/
analyticsID: string | null;
/**
* Whether the app is allowed to use fallback STUN servers for ICE in case the
* user's homeserver doesn't provide any.
*/
allowIceFallback: boolean;
}
/**
@ -135,6 +140,7 @@ export const getUrlParams = (
fonts: getAllParams("font"),
fontScale: Number.isNaN(fontScale) ? null : fontScale,
analyticsID: getParam("analyticsID"),
allowIceFallback: hasParam("allowIceFallback"),
};
};

View File

@ -101,7 +101,14 @@ export const widget: WidgetHelpers | null = (() => {
// We need to do this now rather than later because it has capabilities to
// request, and is responsible for starting the transport (should it be?)
const { roomId, userId, deviceId, baseUrl, e2eEnabled } = getUrlParams();
const {
roomId,
userId,
deviceId,
baseUrl,
e2eEnabled,
allowIceFallback,
} = getUrlParams();
if (!roomId) throw new Error("Room ID must be supplied");
if (!userId) throw new Error("User ID must be supplied");
if (!deviceId) throw new Error("Device ID must be supplied");
@ -148,6 +155,7 @@ export const widget: WidgetHelpers | null = (() => {
deviceId,
timelineSupport: true,
useE2eForGroupCall: e2eEnabled,
fallbackICEServerAllowed: allowIceFallback,
}
);
const clientPromise = client.startClient().then(() => client);