Skip to content

Commit e8f0398

Browse files
authored
Merge pull request #3165 from element-hq/fkwp/update_readme
Update readme
2 parents a7dc289 + db10903 commit e8f0398

File tree

4 files changed

+74
-33
lines changed

4 files changed

+74
-33
lines changed

README.md

Lines changed: 70 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -45,30 +45,35 @@ organize the flow of the meeting.
4545
**Emoji Reactions** – Users can react with emojis 👍️ 🎉 👏 🤘, adding
4646
engagement and interactivity to the conversation.
4747

48-
## 🚀 Deployment Options
48+
## 🚀 Deployment & Packaging Options
4949

50-
Element Call can be packaged in two ways:
50+
Element Call is developed using the
51+
[Matrix js-sdk](https://github.com/matrix-org/matrix-js-sdk) with Matroska mode.
52+
This allows the app to run either as a Standalone App directly connected to a
53+
homeserver with login interfaces or it can be used as a widget within a Matrix
54+
client.
5155

52-
**Full Package** – Supports both **Standalone** and **Widget** mode. Hosted as
53-
a static web page and accessed via a URL when used as a widget.
56+
### 🖥️ Standalone Mode
5457

55-
**Embedded Package** – Designed for **Widget mode** only. Bundled with a
56-
messenger app for seamless integration. This is the recommended method for
57-
embedding Element Call into a messenger app.
58+
<p align="center">
59+
<img src="./docs/element_call_standalone.drawio.png" alt="Element Call in Standalone Mode">
60+
</p>
5861

59-
See the [here](./docs/embedded-standalone.md) for more information on the packages.
60-
61-
### Standalone mode
62-
63-
![Element Call in Standalone Mode](./docs/element_call_standalone.drawio.png)
64-
65-
In Standalone mode Element Call operates as an independent, full-featured video
66-
conferencing web application, allowing users to join or host calls without
62+
In Standalone mode, Element Call operates as an independent, full-featured video
63+
conferencing web application, enabling users to join or host calls without
6764
requiring a separate Matrix client.
6865

69-
### Widget mode embedded in Messenger Apps
66+
### 📲 In-App Calling (Widget Mode in Messenger Apps)
67+
68+
When used as a widget 🧩, Element Call is solely responsible on the core calling
69+
functionality (MatrixRTC). Authentication, event handling, and room state
70+
updates (via the Client-Server API) are handled by the hosting client.
71+
Communication between Element Call and the client is managed through the widget
72+
API.
7073

71-
![Element Call in Widget Mode](./docs/element_call_widget.drawio.png)
74+
<p align="center">
75+
<img src="./docs/element_call_widget.drawio.png" alt="Element Call in Widget Mode">
76+
</p>
7277

7378
Element Call can be embedded as a widget inside apps like
7479
[**Element Web**](https://github.com/element-hq/element-web) or **Element X
@@ -80,6 +85,30 @@ and voice calls within Matrix rooms.
8085
> [!IMPORTANT]
8186
> Embedded packaging is recommended for Element Call in widget mode!
8287
88+
### 📦 Element Call Packaging
89+
90+
Element Call offers two packaging options: one for standalone or widget
91+
deployment, and another for seamless widget-based integration into messenger
92+
apps. Below is an overview of each option.
93+
94+
**Full Package** – Supports both **Standalone** and **Widget** mode. It is
95+
hosted as a static web page and can be accessed via a URL when used as a widget.
96+
97+
<p align="center">
98+
<img src="./docs/full_package.drawio.png" alt="Element Call Full Package">
99+
</p>
100+
101+
**Embedded Package** – Designed specifically for **Widget mode** only. It is
102+
bundled with a messenger app for seamless integration and this is the
103+
recommended method for embedding Element Call.
104+
105+
<p align="center">
106+
<img src="./docs/embedded_package.drawio.png" alt="Element Call Embedded Package">
107+
</p>
108+
109+
For more details on the packages, see the
110+
[Embedded vs. Standalone Guide](./docs/embedded-standalone.md).
111+
83112
## 🛠️ Self-Hosting
84113

85114
For operating and deploying Element Call on your own server, refer to the
@@ -91,13 +120,15 @@ For proper Element Call operation each site deployment needs a MatrixRTC backend
91120
setup as outlined in the [Self-Hosting](#self-hosting). A typical federated site
92121
deployment for three different sites A, B and C is depicted below.
93122

94-
![Element Call federated setup](./docs/Federated_Setup.drawio.png)
123+
<p align="center">
124+
<img src="./docs/Federated_Setup.drawio.png" alt="Element Call federated setup">
125+
</p>
95126

96127
### Backend Discovery
97128

98129
MatrixRTC backend (according to
99-
[MSC4143](https://github.com/matrix-org/matrix-spec-proposals/pull/4143))
100-
is announced by the Matrix site's `.well-known/matrix/client` file and discovered
130+
[MSC4143](https://github.com/matrix-org/matrix-spec-proposals/pull/4143)) is
131+
announced by the Matrix site's `.well-known/matrix/client` file and discovered
101132
via the `org.matrix.msc4143.rtc_foci` key, e.g.:
102133

103134
```json
@@ -130,8 +161,11 @@ points them to a Matrix LiveKit JWT Auth Service via `livekit_service_url`.
130161
The example below illustrates how backend selection works across **Matrix
131162
federation**, using the setup from sites A, B, and C. It demonstrates backend
132163
selection for **Matrix rooms 123 and 456**, which include users from different
133-
homeservers.
134-
![Element Call SFU selection over Matrix federation](./docs/SFU_selection.drawio.png)
164+
homeservers.
165+
166+
<p align="center">
167+
<img src="./docs/SFU_selection.drawio.png" alt="Element Call SFU selection over Matrix federation">
168+
</p>
135169

136170
## 🌍 Translation
137171

@@ -198,21 +232,23 @@ yarn backend
198232

199233
### Playwright tests
200234

201-
Our Playwright tests run automatically as part of our CI along with our other tests,
202-
on every pull request.
235+
Our Playwright tests run automatically as part of our CI along with our other
236+
tests, on every pull request.
203237

204-
You may need to follow instructions to set up your development environment for running
205-
Playwright by following <https://playwright.dev/docs/browsers#install-browsers> and
238+
You may need to follow instructions to set up your development environment for
239+
running Playwright by following
240+
<https://playwright.dev/docs/browsers#install-browsers> and
206241
<https://playwright.dev/docs/browsers#install-system-dependencies>.
207242

208-
However the Playwright tests are run, an element-call instance must be running on
209-
https://localhost:3000 (this is configured in `playwright.config.ts`) - this is what will
210-
be tested.
243+
However the Playwright tests are run, an element-call instance must be running
244+
on https://localhost:3000 (this is configured in `playwright.config.ts`) - this
245+
is what will be tested.
211246

212247
The local backend environment should be running for the test to work:
213248
`yarn backend`
214249

215-
There are a few different ways to run the tests yourself. The simplest is to run:
250+
There are a few different ways to run the tests yourself. The simplest is to
251+
run:
216252

217253
```shell
218254
yarn run test:playwright
@@ -237,8 +273,8 @@ to test visibility, text content and clicking.
237273

238274
##### Investigate a failed test from the CI
239275

240-
In the failed action page, click on the failed job, then scroll down to the `upload-artifact` step.
241-
You will find a link to download the zip report, as per:
276+
In the failed action page, click on the failed job, then scroll down to the
277+
`upload-artifact` step. You will find a link to download the zip report, as per:
242278

243279
```
244280
Artifact playwright-report has been successfully uploaded! Final size is 1360358 bytes. Artifact ID is 2746265841
@@ -252,7 +288,8 @@ npx playwright show-report ~/Downloads/playwright-report/
252288
```
253289

254290
Under the failed test there is a small icon looking like "3 columns" (next to
255-
the test name file name), click on it to see the live screenshots/console output.
291+
the test name file name), click on it to see the live screenshots/console
292+
output.
256293

257294
### Test Coverage
258295

docs/embedded_package.drawio.png

302 KB
Loading

docs/full_package.drawio.png

1.18 MB
Loading

docs/self-hosting.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Self-Hosting Element Call
22

3+
> [!NOTE]
4+
> For In-App calling (Element X, Element Web, Element Desktop) use-case only
5+
> section [Prerequisites](#Prerequisites) is required.
6+
37
## Prerequisites
48

59
> [!IMPORTANT]

0 commit comments

Comments
 (0)