@@ -48,76 +48,40 @@ organize the flow of the meeting.
4848engagement and interactivity to the conversation.
4949
5050
51- ``` sh
52- cp config/config.sample.json public/config.json
53- # edit public/config.json
54- ```
51+ ## 🚀 Deployment Options
5552
56- The sample needs editing to contain the homeserver and LiveKit backend that you
57- are using.
53+ Element Call can be packaged in two ways:
5854
59- Because Element Call uses client-side routing, your server must be able to route
60- any requests to non-existing paths back to ` /index.html ` . For example, in Nginx
61- you can achieve this with the ` try_files ` directive:
55+ ** Full Package** – Supports both ** Standalone** and ** Widget** mode. Hosted as
56+ a static web page and accessed via a URL when used as a widget.
6257
63- ``` jsonc
64- server {
65- ...
66- location / {
67- ...
68- try_files $uri / $uri / index .html ;
69- }
70- }
71- ```
58+ ** Embedded Package** – Designed for ** Widget mode** only. Bundled with a
59+ messenger app for seamless integration. This is the recommended method for
60+ embedding Element Call into a messenger app.
7261
73- Element Call requires a homeserver with registration enabled without any 3pid or
74- token requirements, if you want it to be used by unregistered users.
75- Furthermore, it is not recommended to use it with an existing homeserver where
76- user accounts have joined normal rooms, as it may not be able to handle those
77- yet and it may behave unreliably.
78-
79- Therefore, to use a self-hosted homeserver, this is recommended to be a new
80- server where any user account created has not joined any normal rooms anywhere
81- in the Matrix federated network. The homeserver used can be setup to disable
82- federation, so as to prevent spam registrations (if you keep registrations open)
83- and to ensure Element Call continues to work in case any user decides to log in
84- to their Element Call account using the standard Element app and joins normal
85- rooms that Element Call cannot handle.
86-
87- ## Configuration
88-
89- There are currently two different config files. ` .env ` holds variables that are
90- used at build time, while ` public/config.json ` holds variables that are used at
91- runtime. Documentation and default values for ` public/config.json ` can be found
92- in [ ConfigOptions.ts] ( src/config/ConfigOptions.ts ) .
93-
94- If you're using [ Synapse] ( https://github.com/element-hq/synapse/ ) , you'll need
95- to additionally add the following to ` homeserver.yaml ` or Element Call won't
96- work:
97-
98- ``` yaml
99- experimental_features :
100- # MSC3266: Room summary API. Used for knocking over federation
101- msc3266_enabled : true
102- # MSC4222 needed for syncv2 state_after. This allow clients to
103- # correctly track the state of the room.
104- msc4222_enabled : true
105-
106- # The maximum allowed duration by which sent events can be delayed, as
107- # per MSC4140.
108- max_event_delay_duration : 24h
109-
110- rc_message :
111- # This needs to match at least the heart-beat frequency plus a bit of headroom
112- # Currently the heart-beat is every 5 seconds which translates into a rate of 0.2s
113- per_second : 0.5
114- burst_count : 30
115- ` ` `
62+ ### Standalone mode
63+
64+ ![ Element Call in Standalone Mode] ( ./docs/element_call_standalone.drawio.png )
65+
66+ In Standalone mode Element Call operates as an independent, full-featured video
67+ conferencing web application, allowing users to join or host calls without
68+ requiring a separate Matrix client.
69+
70+
71+ ### Widget mode embedded in Messenger Apps
72+
73+ ![ Element Call in Widget Mode] ( ./docs/element_call_widget.drawio.png )
74+
75+ Element Call can be embedded as a widget inside apps like
76+ [ ** Element Web** ] ( https://github.com/element-hq/element-web ) or ** Element X
77+ ([ iOS] ( https://github.com/element-hq/element-x-ios ) ,
78+ [ Android] ( https://github.com/element-hq/element-x-android ) )** , bringing
79+ ** MatrixRTC** capabilities to messenger apps for seamless decentralized video
80+ and voice calls within Matrix rooms.
81+
82+ > [ !IMPORTANT]
83+ > Embedded packaging is recommended for Element Call in widget mode!
11684
117- MSC3266 allows to request a room summary of rooms you are not joined. The
118- summary contains the room join rules. We need that to decide if the user gets
119- prompted with the option to knock ("Request to join call"), a cannot join error or the
120- join view.
12185
12286MSC4222 allow clients to opt-in to a change of the sync v2 API that allows them
12387to correctly track the state of the room. This is required by Element Call to
0 commit comments