mirror of
https://github.com/vector-im/element-call.git
synced 2026-02-17 04:47:02 +00:00
Publish embedded package for releases of Element Call
Part of https://github.com/element-hq/element-call/issues/2994 This PR: - Publishes embedded builds as Tarball, NPM, AAR, SwiftPM for releases - Publishes full builds as Tarball for releases - Adds comments to release notes with the built artifact locations
This commit is contained in:
@@ -1,9 +1,24 @@
|
||||
## Embedded vs standalone mode
|
||||
## Element Call packages
|
||||
|
||||
Element call is developed using the js-sdk with matroska mode. This means the app can run either as a standalone app directly connected to a homeserver providing login interfaces or it can be used as a widget.
|
||||
Element Call is available as two different packages: Full Package and Embedded Package. The Full Package is designed for standalone use, while the Embedded Package is designed for widget mode only. The table below provides a comparison of the two packages:
|
||||
|
||||
As a widget the app only uses the core calling (MatrixRTC) parts. The rest (authentication, sending events, getting room state updates about calls) is done by the hosting client.
|
||||
Element Call and the hosting client are connected via the widget api.
|
||||
| | Full Package | Embedded Package |
|
||||
| ------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------- |
|
||||
| **Supports use as standalone** | ✅ | ❌ |
|
||||
| **Supports use as widget** | ✅ | ✅ |
|
||||
| **Deployment mode** | Hosted as a static web page and accessed via a URL when used as a widget | Bundled within a messenger app for seamless integration |
|
||||
| **Release artifacts** | Docker Image, Tarball | Tarball, NPM for Web, Android AAR, SwiftPM for iOS |
|
||||
| **Recommended for** | Standalone/guest access usage | Embedding within messenger apps |
|
||||
|
||||
Element call detects that it is run as a widget if a widgetId is defined in the url parameters. If `widgetId` is present element call will try to connect to the client via the widget postMessage api using the parameters provided in [Url Format and parameters
|
||||
For examples of how to use the platform specific release artifacts (e.g. Android AAR) see
|
||||
the Element Messenger apps for: [Web](https://github.com/element-hq/element-web), [iOS](https://github.com/element-hq/element-x-ios) and [Android](https://github.com/element-hq/element-x-android).
|
||||
|
||||
## Widget vs standalone mode
|
||||
|
||||
Element Call is developed using the [js-sdk](https://github.com/matrix-org/matrix-js-sdk) with matroska mode. This means the app can run either as a standalone app directly connected to a homeserver providing login interfaces or it can be used as a widget within a Matrix client.
|
||||
|
||||
As a widget, the app only uses the core calling (MatrixRTC) parts. The rest (authentication, sending events, getting room state updates about calls) is done by the hosting client.
|
||||
Element Call and the hosting client are connected via the widget API.
|
||||
|
||||
Element Call detects that it is run as a widget if a widgetId is defined in the url parameters. If `widgetId` is present then Element Call will try to connect to the client via the widget postMessage API using the parameters provided in [Url Format and parameters
|
||||
](./url-params.md).
|
||||
|
||||
@@ -1,34 +1,44 @@
|
||||
# Url Format and parameters
|
||||
# URL Format and parameters
|
||||
|
||||
There are two formats for Element Call urls.
|
||||
There are two formats for Element Call URLs.
|
||||
|
||||
- **Current Format**
|
||||
## Link for sharing
|
||||
|
||||
```text
|
||||
https://element_call.domain/room/#
|
||||
/<room_name_alias>?roomId=!id:domain&password=1234&<other params see below>
|
||||
```
|
||||
Requires Element Call to be deployed in [standalone](./embedded-standalone.md) mode.
|
||||
|
||||
The url is split into two sections. The `https://element_call.domain/room/#`
|
||||
contains the app and the intend that the link brings you into a specific room
|
||||
(`https://call.element.io/#` would be the homepage). The fragment is used for
|
||||
query parameters to make sure they never get sent to the element_call.domain
|
||||
server. Here we have the actual matrix roomId and the password which are used
|
||||
to connect all participants with e2ee. This allows that `<room_name_alias>` does
|
||||
not need to be unique. Multiple meetings with the label weekly-sync can be created
|
||||
without collisions.
|
||||
```text
|
||||
https://element_call.domain/room/#
|
||||
/<room_name_alias>?roomId=!id:domain&password=1234&<other params see below>
|
||||
```
|
||||
|
||||
- **deprecated**
|
||||
The URL is split into two sections. The `https://element_call.domain/room/#`
|
||||
contains the app and the intend that the link brings you into a specific room
|
||||
(`https://call.element.io/#` would be the homepage). The fragment is used for
|
||||
query parameters to make sure they never get sent to the element_call.domain
|
||||
server. Here we have the actual Matrix room ID and the password which are used
|
||||
to connect all participants with E2EE. This allows that `<room_name_alias>` does
|
||||
not need to be unique. Multiple meetings with the label weekly-sync can be created
|
||||
without collisions.
|
||||
|
||||
```text
|
||||
https://element_call.domain/<room_name>
|
||||
```
|
||||
Additionally the following **deprecated** format is supported:
|
||||
|
||||
With this format the livekit alias that will be used is the `<room_name>`.
|
||||
All people connecting to this URL will end up in the same unencrypted room.
|
||||
This does not scale, is super unsecure
|
||||
(people could end up in the same room by accident) and it also is not really
|
||||
possible to support encryption.
|
||||
```text
|
||||
https://element_call.domain/<room_name>
|
||||
```
|
||||
|
||||
With this format the livekit alias that will be used is the `<room_name>`.
|
||||
All people connecting to this URL will end up in the same unencrypted room.
|
||||
This does not scale, is super unsecure
|
||||
(people could end up in the same room by accident) and it also is not really
|
||||
possible to support encryption.
|
||||
|
||||
## Widget within a messenger app
|
||||
|
||||
| Package | Deployment | URL |
|
||||
| -------- | ----------------------------- | ----------------------------------------------------------------------------- |
|
||||
| Full | All | `https://element_call.domain/room` |
|
||||
| Embedded | Remote URL | `https://element_call.domain/` n.b. no `/room` part |
|
||||
| Embedded | Embedded within messenger app | Platform dependent, but you load the `index.html` file without a `/room` part |
|
||||
|
||||
## Parameters
|
||||
|
||||
|
||||
Reference in New Issue
Block a user