Skip to content

[Story] Make Element Call widget URL configurable #2441

Closed
@manuroe

Description

@manuroe

Description

  • As a homeserver admin
  • I want to make EX use a different EC widget URL than the default one
  • So that EC works within my infrastructure.

Note: This is a temporary solution. In the future, the EC web app content will be fully embedded within the EX app. There will no more need to load it from the Internet. This setting will be then no more required.

The proposal is to use a new .well-known file: .well-known/element/element.json with the following JSON format:

{
    "call": {
        "widget_url": "https://call.server.com"
   }
}

Acceptance criteria

  • if the server provides a .well-known/element/element.json with the widget_url field, the app must use the provided URL to load the EC widget
  • else, the app behaves as currently and loads https://call.element.io
  • On EXA and EXI, we have a developer setting to use a custom call url. If such URL is set, it will be used and no call will be done to retrieve a custom URL from the .well-know file.
  • error 404 should be consider as no custom url available (as described), but any other error (network error, etc.) should be treated as an error.
  • .well-known url is built from the userId's domain, for instance @alice:domain.org -> https://domain.org/.well-known/element/element.json
  • there is no cache to implement, as a first iteration, so the .well-known file is retrieved for each call.

Leads

Size estimate

S

Dependencies

  • None

Out of scope

  • Later element.json will be used for other EC configurations or other Element Service. We focus here on widget_url as an initial step.

Open questions

### Questions
- [x] Should EW follow this configuration? -> Yes. We need it for ED
- [x] What about call.element.io links? They open the EX app if a user taps on such link. This is a build setting that cannot be changed at runtime --> We keep the default behavior. Let's see what we can do later

Subtasks

### Android
- [ ] https://github.com/element-hq/element-x-android/issues/3009
- [ ] https://github.com/element-hq/element-x-android/issues/3124
### iOS
- [ ] https://github.com/element-hq/element-x-ios/issues/2911
### Web
- [ ] https://github.com/element-hq/element-web/issues/27555
### Rust
- [ ] https://github.com/matrix-org/matrix-rust-sdk/pull/3617
### Other

Sign-off

Android

  • QA sign-off on completion
  • Product sign-off on completion

iOS

  • QA sign-off on completion
  • Product sign-off on completion

Web

  • QA sign-off on completion
  • Product sign-off on completion

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions