mirror of
https://github.com/vector-im/element-call.git
synced 2026-08-08 20:09:19 +00:00
Merge pull request #3842 from element-hq/voice-intents
Add intents for group voice calls
This commit is contained in:
@@ -47,8 +47,8 @@ possible to support encryption.
|
|||||||
These parameters are relevant to both [widget](./embedded-standalone.md) and [standalone](./embedded-standalone.md) modes:
|
These parameters are relevant to both [widget](./embedded-standalone.md) and [standalone](./embedded-standalone.md) modes:
|
||||||
|
|
||||||
| Name | Values | Required for widget | Required for SPA | Description |
|
| Name | Values | Required for widget | Required for SPA | Description |
|
||||||
| ---------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| `intent` | `start_call`, `join_existing`, `start_call_dm`, `join_existing_dm. | No, defaults to `start_call` | No, defaults to `start_call` | The intent is a special url parameter that defines the defaults for all the other parameters. In most cases it should be enough to only set the intent to setup element-call. |
|
| `intent` | `start_call`, `join_existing`, `start_call_voice`, `join_existing_voice`, `start_call_dm`, `join_existing_dm`, `start_call_dm_voice`, or `join_existing_dm_voice`. | No, defaults to `start_call` | No, defaults to `start_call` | The intent is a special url parameter that defines the defaults for all the other parameters. In most cases it should be enough to only set the intent to setup element-call. |
|
||||||
| `allowIceFallback` | `true` or `false` | No, defaults to `false` | No, defaults to `false` | Allows use of fallback STUN servers for ICE if the user's homeserver doesn’t provide any. |
|
| `allowIceFallback` | `true` or `false` | No, defaults to `false` | No, defaults to `false` | Allows use of fallback STUN servers for ICE if the user's homeserver doesn’t provide any. |
|
||||||
| `posthogUserId` | Posthog analytics ID | No | No | Available only with user's consent for sharing telemetry in Element Web. |
|
| `posthogUserId` | Posthog analytics ID | No | No | Available only with user's consent for sharing telemetry in Element Web. |
|
||||||
| `appPrompt` | `true` or `false` | No, defaults to `true` | No, defaults to `true` | Prompts the user to launch the native mobile app upon entering a room, applicable only on Android and iOS, and must be enabled in config. |
|
| `appPrompt` | `true` or `false` | No, defaults to `true` | No, defaults to `true` | Prompts the user to launch the native mobile app upon entering a room, applicable only on Android and iOS, and must be enabled in config. |
|
||||||
|
|||||||
@@ -271,7 +271,11 @@ describe("UrlParams", () => {
|
|||||||
computeUrlParams(
|
computeUrlParams(
|
||||||
"?intent=start_call&widgetId=1234&parentUrl=parent.org",
|
"?intent=start_call&widgetId=1234&parentUrl=parent.org",
|
||||||
),
|
),
|
||||||
).toMatchObject({ ...startNewCallDefaults("desktop"), skipLobby: false });
|
).toMatchObject({
|
||||||
|
...startNewCallDefaults("desktop"),
|
||||||
|
skipLobby: false,
|
||||||
|
callIntent: "video",
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it("accepts start_call_dm mobile", () => {
|
it("accepts start_call_dm mobile", () => {
|
||||||
@@ -308,6 +312,29 @@ describe("UrlParams", () => {
|
|||||||
),
|
),
|
||||||
).toMatchObject(joinExistingCallDefaults("desktop"));
|
).toMatchObject(joinExistingCallDefaults("desktop"));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("accepts start_call_voice", () => {
|
||||||
|
expect(
|
||||||
|
computeUrlParams(
|
||||||
|
"?intent=start_call_voice&widgetId=1234&parentUrl=parent.org",
|
||||||
|
),
|
||||||
|
).toMatchObject({
|
||||||
|
...startNewCallDefaults("desktop"),
|
||||||
|
skipLobby: false,
|
||||||
|
callIntent: "audio",
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("accepts join_existing_voice", () => {
|
||||||
|
expect(
|
||||||
|
computeUrlParams(
|
||||||
|
"?intent=join_existing_voice&widgetId=1234&parentUrl=parent.org",
|
||||||
|
),
|
||||||
|
).toMatchObject({
|
||||||
|
...joinExistingCallDefaults("desktop"),
|
||||||
|
callIntent: "audio",
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("skipLobby", () => {
|
describe("skipLobby", () => {
|
||||||
|
|||||||
@@ -29,6 +29,8 @@ interface RoomIdentifier {
|
|||||||
export enum UserIntent {
|
export enum UserIntent {
|
||||||
StartNewCall = "start_call",
|
StartNewCall = "start_call",
|
||||||
JoinExistingCall = "join_existing",
|
JoinExistingCall = "join_existing",
|
||||||
|
StartNewCallVoice = "start_call_voice",
|
||||||
|
JoinExistingCallVoice = "join_existing_voice",
|
||||||
StartNewCallDM = "start_call_dm",
|
StartNewCallDM = "start_call_dm",
|
||||||
StartNewCallDMVoice = "start_call_dm_voice",
|
StartNewCallDMVoice = "start_call_dm_voice",
|
||||||
JoinExistingCallDM = "join_existing_dm",
|
JoinExistingCallDM = "join_existing_dm",
|
||||||
@@ -414,6 +416,15 @@ export const computeUrlParams = (search = "", hash = ""): UrlParams => {
|
|||||||
intentPreset.skipLobby = false;
|
intentPreset.skipLobby = false;
|
||||||
intentPreset.callIntent = "video";
|
intentPreset.callIntent = "video";
|
||||||
break;
|
break;
|
||||||
|
case UserIntent.StartNewCallVoice:
|
||||||
|
intentPreset.skipLobby = false;
|
||||||
|
intentPreset.callIntent = "audio";
|
||||||
|
break;
|
||||||
|
case UserIntent.JoinExistingCallVoice:
|
||||||
|
// On desktop this will be overridden based on which button was used to join the call
|
||||||
|
intentPreset.skipLobby = false;
|
||||||
|
intentPreset.callIntent = "audio";
|
||||||
|
break;
|
||||||
case UserIntent.StartNewCallDMVoice:
|
case UserIntent.StartNewCallDMVoice:
|
||||||
intentPreset.callIntent = "audio";
|
intentPreset.callIntent = "audio";
|
||||||
// Fall through
|
// Fall through
|
||||||
|
|||||||
Reference in New Issue
Block a user