Stability and Spec work
This release introduces a key part of the MatrixRTC spec that was previously missing from Element Call. The state key of call member events is now distinct per MatrixRTC session type (application), allowing an Element Call m.call session to run alongside other session types.
Element Call now also supports MatrixRTC Authorization Service v0.3.0, which adds a key infrastructure control by restricting automatic LiveKit SFU room creation to users on selected (trusted) homeservers, helping ensure that SFU resources are used efficiently and remain available for their intended communities. Note this does NOT break calls across federation.
Calls also now have a dedicated "Reconnecting" state. This enhances both stability and security: Element Call stops publishing and subscribing media when you are disconnected from the room state. This prevents downloading media you cannot decrypt and uploading media unnecessarily when others are not aware you are in the call.
What's Changed
🛠 Breaking Changes
- Stop reading deprecated config options (DONT USE:
membership_keep_alive_period
,membership_server_side_expiry_timeout
,key_rotation_on_leave_delay
) by @toger5 in #3416
✨ Features
- Allow multiple MatrixRTC sessions per room by @fkwp in #3451
- Pause media tracks and show a message when reconnecting to MatrixRTC by @robintown in #3453
🙌 Improvements
- Expose
delayed_leave_event_restart_local_timeout_ms
toconfig.json
by @toger5 in #3415 - Reset LiveKit connection timeouts to their defaults by @robintown in #3436
- Set available devices to empty map on safari. Safari does not allow changing output devices so the output device dialog is confusing. by @toger5 in #3426
- Localazy Download by @RiotRobot in #3441
- Add intents for DM by @toger5 in #3445
- Move the switch camera button to the local user's tile by @robintown in #3336
📄 Documentation
- Cleanup self-hosting guide by @fkwp in #3437
- Improve Matrix site setup diagram by @fkwp in #3440
- Doc: Use new naming of jwt auth service by @fkwp in #3455
🐛 Bugfixes
- Trim extra characters from roomId parameter in URL by @Half-Shot in #3412
- Request capability to send call notifications by @robintown in #3418
💾 Developer Experience
- UrlParams: Intent system update, split into configuration and propreties by @toger5 in #3376
- Use
.ts
for remaining js config files by @toger5 in #3443
Others
- DevX: update dev backend to support jwt-token v3 by @BillCarsonFr in #3429
- Display a custom error for restricted SFU config error by @BillCarsonFr in #3428
- Fix: missing logs in rageshake by @toger5 in #3434
- Add a fullscreen button that uses the element request Fullscreen browser api by @toger5 in #3447
- Hangup when last person in call (based on url params) by @toger5 in #3372
- Localazy Download by @RiotRobot in #3462
👒 Dependencies
- Update all non-major dependencies by @renovate[bot] in #3433
- Update embedded package dependencies by @renovate[bot] in #3432
- Update dependency livekit-client to v2.15.4 by @renovate[bot] in #3425
- Update dependency @vector-im/compound-design-tokens to v6 by @renovate[bot] in #3438
- Update dependency livekit-client to v2.15.5 by @renovate[bot] in #3452
Full Changelog: v0.14.1...v0.15.0
Docker full package
Element Call is available as a Docker image from the GitHub Container Registry.
The image provides a full build of Element Call that can be used both in standalone and as a widget (on a remote URL).
docker pull ghcr.io/element-hq/element-call:v0.15.0
Embedded packages
This release includes the following embedded packages that allow Element Call to be used as an embedded widget
within another application.
NPM
npm install @element-hq/element-call-embedded@0.15.0
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.15.0'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.15.0")