Releases: element-hq/element-call
Release list
v0.21.0-rc.1
What's Changed
We are making a small but significant change in Element Call. With this EC release, we will be using the multi-SFU approach for our video and voice calls.
The big advantage is that it mitigates any negotiation over which SFU users in a call connect to. Instead, everyone connects to the SFU associated with their homeserver. No negotiation required. If you want to subscribe to a stream from someone on a different homeserver, Element Call will connect to that SFU in subscribe-only mode. You still have the option to switch back to legacy mode (negotiate on one SFU) using the developer settings tab.
EC has been compatible with this mode for 6 months already, so the whole ecosystem should be updated by now and this should not lead to any incompatibilities.
Of course, this requires every call participant to have an SFU associated with their homeserver if they want to participate in a session. Since we already have checks in place so only users with an SFU can join a call, this should not make a difference for anyone already on the latest versions.
β¨ Features
- Default to compatibilty mode (multi sfu) - non breaking, as multi-sfu is compatible with all versions younger 6 month by @toger5 in #4066
π Improvements
- Move ringing status indicator to header on mobile by @robintown in #4046
- Invert the colors of the speaker toggle button by @robintown in #4060
- Show the subtitle of the app bar on small screens by @robintown in #4061
- Add PiP border in 1on1 layouts by @Johennes in #4054
- Hide local tile from mobile voice calls in landscape orientation by @robintown in #4068
π Bugfixes
- Add primary button icon configuration and set it left arrow in lobby by @toger5 in #4032
- fix(voice): Default to earpiece for voice only call by @BillCarsonFr in #4064
πΎ Developer Experience
- Fix docs for autoLeave URL param by @robintown in #4052
- Add lint rule to prevent ObservableScope resource leaks by @robintown in #4040
π Dependencies
Full Changelog: v0.20.2...v0.21.0-rc.1
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.21.0-rc.1
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.21.0-rc.1
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.21.0-rc.1'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.21.0-rc.1")
v0.20.3
What's Changed
π Security Fixes
- Restrain logging of URL properties by @Johennes in #4071 (GHSA-wpww-g4f9-vg8x)
Full Changelog: v0.20.2...v0.20.3
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.20.3
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.20.3'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.20.3")
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.20.3
v0.20.2
What's Changed
β¨ Features
π Improvements
- Fix corner radius on screenshare overlay in widget mode by @Johennes in #4000
- feat(errors): Report livekit error as such instead of generic unknown errors by @BillCarsonFr in #4012
- Show typed error when matrix_2_0 mode is forced without homeserver MSC4354 support by @fkwp in #4017
- Controls api
onPipMediaOrientationby @toger5 in #4004
π Bugfixes
- Show the right labels in device switcher menus by @robintown in #4003
- Add Promise.withResolvers polyfill for older WebViews (Chrome < 119) by @manfrommedan in #3905
- Fix play of second leave sound by @toger5 in #3995
- feat(mute): add syncing state and disable toggle during async mute by @BillCarsonFr in #4013
- Fix missing text color for remote raised hand duration by @Johennes in #4009
- Fix Logging indexDB EC/EW collision by @toger5 in #4038
- Fix a minor resource leak with display names and avatars by @robintown in #4036
πΎ Developer Experience
- dev-tool: Add option to enable extended livekit logs by @BillCarsonFr in #3924
- devx: Allow to run local dev EC on mobile in same wifi by @BillCarsonFr in #3973
π Dependencies
- Update Gradle to v8.14.5 by @renovate[bot] in #3999
- Update all non-major dependencies by @renovate[bot] in #3998
- Update dependency @vector-im/compound-design-tokens to v10.2.0 by @renovate[bot] in #3987
- Update dependency livekit-client to v2.19.0 by @renovate[bot] in #3988
- Update LiveKit client to v2.19.1 by @renovate[bot] in #4023
- Update Compound by @renovate[bot] in #4022
- Update LiveKit client to v2.19.2 by @renovate[bot] in #4031
- Update Compound to v10.2.2 by @renovate[bot] in #4041
- Update dependency vite to v8.0.16 [SECURITY] by @renovate[bot] in #4045
New Contributors
- @manfrommedan made their first contribution in #3905
Full Changelog: v0.20.0...v0.20.2
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.20.2
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.20.2
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.20.2'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.20.2")
v0.20.2-rc.1
What's Changed
β¨ Features
π Improvements
- Fix corner radius on screenshare overlay in widget mode by @Johennes in #4000
- feat(errors): Report livekit error as such instead of generic unknown errors by @BillCarsonFr in #4012
- Show typed error when matrix_2_0 mode is forced without homeserver MSC4354 support by @fkwp in #4017
- Controls api
onPipMediaOrientationby @toger5 in #4004
π Bugfixes
- feat(mute): add syncing state and disable toggle during async mute by @BillCarsonFr in #4013
- Fix missing text color for remote raised hand duration by @Johennes in #4009
- Fix Logging indexDB EC/EW collision by @toger5 in #4038
- Fix a minor resource leak with display names and avatars by @robintown in #4036
π Dependencies
- Update LiveKit client to v2.19.1 by @renovate[bot] in #4023
- Update Compound by @renovate[bot] in #4022
- Update LiveKit client to v2.19.2 by @renovate[bot] in #4031
- Update Compound to v10.2.2 by @renovate[bot] in #4041
- Update dependency vite to v8.0.16 [SECURITY] by @renovate[bot] in #4045
Full Changelog: v0.20.1-rc.1...v0.20.2-rc.1
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.20.2-rc.1
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.20.2-rc.1
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.20.2-rc.1'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.20.2-rc.1")
v0.20.1
What's Changed
π Bugfixes
- Show the right labels in device switcher menus by @robintown in #4003
- Add Promise.withResolvers polyfill for older WebViews (Chrome < 119) by @manfrommedan in #3905
- Fix play of second leave sound by @toger5 in #3995
- Fix several click to unmute bug (feat(mute): add syncing state and disable toggle during async mute) by @BillCarsonFr in #4016
πΎ Developer Experience
- dev-tool: Add option to enable extended livekit logs by @BillCarsonFr in #3924
- devx: Allow to run local dev EC on mobile in same wifi by @BillCarsonFr in #3973
π Dependencies
- Update Gradle to v8.14.5 by @renovate[bot] in #3999
- Update all non-major dependencies by @renovate[bot] in #3998
- Update dependency @vector-im/compound-design-tokens to v10.2.0 by @renovate[bot] in #3987
- Update dependency livekit-client to v2.19.0 by @renovate[bot] in #3988
New Contributors
- @manfrommedan made their first contribution in #3905
Full Changelog: v0.20.0...v0.20.1
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.20.1
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.20.1'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.20.1")
v0.20.1-rc.1
What's Changed
π Bugfixes
- Show the right labels in device switcher menus by @robintown in #4003
- Add Promise.withResolvers polyfill for older WebViews (Chrome < 119) by @manfrommedan in #3905
- Fix play of second leave sound by @toger5 in #3995
πΎ Developer Experience
- dev-tool: Add option to enable extended livekit logs by @BillCarsonFr in #3924
- devx: Allow to run local dev EC on mobile in same wifi by @BillCarsonFr in #3973
π Dependencies
- Update Gradle to v8.14.5 by @renovate[bot] in #3999
- Update all non-major dependencies by @renovate[bot] in #3998
- Update dependency @vector-im/compound-design-tokens to v10.2.0 by @renovate[bot] in #3987
- Update dependency livekit-client to v2.19.0 by @renovate[bot] in #3988
New Contributors
- @manfrommedan made their first contribution in #3905
Full Changelog: v0.20.0...v0.20.1-rc.1
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.20.1-rc.1
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.20.1-rc.1
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.20.1-rc.1'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.20.1-rc.1")
v0.20.0
What's Changed
β¨ Features
- [Feature] Support delayed event delegation for legacy JWT request by @fkwp in #3946
- Implement fast switcher (+ ViewModel with snapshot example) by @toger5 in #3961
π Improvements
- Add
MediaMuteAndSwitchButtoncomponent (storybook only) by @toger5 in #3938 - Create a proper one-on-one call layout for portrait screens by @robintown in #3916
π Documentation
π Bugfixes
- bugfix: When starting muted, have to click twice to unmute in call by @BillCarsonFr in #3962
- Fix tap-to-show call controls on iOS by @fkwp in #3966
- Stop the settings button from appearing while footer is fading out by @robintown in #3979
πΎ Developer Experience
- [fix] nginx config as the missing 50x.html escalates 502 errors to 404 by @fkwp in #3947
- Add storybook to CI by @toger5 in #3948
- List additional dependencies needed for development by @Johennes in #3975
- Use vite storybook plugin for storybook tests by @toger5 in #3960
π Dependencies
- Update dependency livekit-client to v2.18.9 by @renovate[bot] in #3958
- Update dependency @livekit/components-react to v2.9.21 by @renovate[bot] in #3957
- Update dependency @vector-im/compound-design-tokens to v10.1.1 by @renovate[bot] in #3942
- Update GitHub Actions by @renovate[bot] in #3939
- Update dependency livekit-client to v2.18.10 by @renovate[bot] in #3969
Full Changelog: v0.19.4...v0.20.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.20.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.20.0
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.20.0'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.20.0")
v0.20.0-rc.1
What's Changed
β¨ Features
- [Feature] Support delayed event delegation for legacy JWT request by @fkwp in #3946
- Implement fast switcher (+ ViewModel with snapshot example) by @toger5 in #3961
π Improvements
- Add
MediaMuteAndSwitchButtoncomponent (storybook only) by @toger5 in #3938 - Create a proper one-on-one call layout for portrait screens by @robintown in #3916
π Documentation
π Bugfixes
- bugfix: When starting muted, have to click twice to unmute in call by @BillCarsonFr in #3962
- Fix tap-to-show call controls on iOS by @fkwp in #3966
- Stop the settings button from appearing while footer is fading out by @robintown in #3979
πΎ Developer Experience
- [fix] nginx config as the missing 50x.html escalates 502 errors to 404 by @fkwp in #3947
- Add storybook to CI by @toger5 in #3948
- List additional dependencies needed for development by @Johennes in #3975
- Use vite storybook plugin for storybook tests by @toger5 in #3960
π Dependencies
- Update dependency livekit-client to v2.18.9 by @renovate[bot] in #3958
- Update dependency @livekit/components-react to v2.9.21 by @renovate[bot] in #3957
- Update dependency @vector-im/compound-design-tokens to v10.1.1 by @renovate[bot] in #3942
- Update GitHub Actions by @renovate[bot] in #3939
- Update dependency livekit-client to v2.18.10 by @renovate[bot] in #3969
Full Changelog: v0.19.3...v0.20.0-rc.1
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.20.0-rc.1
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.20.0-rc.1'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.20.0-rc.1")
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.20.0-rc.1
v0.19.4
What's Changed
This is a hotfix release.
π Security Fixes
- Prevent Element Call from reporting full URLs of visited pages to analytics server (#3968, ELEMENTSEC-2026-1713, GHSA-6vhh-4xw6-h2h2, CVE-2026-48007)
Full Changelog: v0.19.3...v0.19.4
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.19.4
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.19.4'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.19.4")
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.19.4
v0.19.3
What's Changed
This release brings the possibility for edge-to-edge display, a grace period for sync errors, and fixes to exiting modals.
β¨ Features
π Improvements
- Invert the microphone and video button colors again by @robintown in #3900
- Allow Android native back gesture/button to close settings in EC (only if settings are closed EC will go into pip) by @toger5 in #3908
- Allow calls to display edge-to-edge on mobile by @robintown in #3903
πΎ Developer Experience
- Only send posthog callEnded Event if the user has joined the call. by @toger5 in #3852
- Fix race in playwright sticky test by @toger5 in #3877
- setup SFU webhooks for local dev environment to be compatible with delegation of delayed events by @fkwp in #3717
π Dependencies
- Update dependency livekit-client to v2.18.4 by @renovate[bot] in #3895
- Update dependency livekit-client to v2.18.5 by @renovate[bot] in #3912
- Update dependency uuid to v14 [SECURITY] by @renovate[bot] in #3918
- Update dependency livekit-client to v2.18.6 by @renovate[bot] in #3919
- Update dependency livekit-client to v2.18.8 by @renovate[bot] in #3934
- Update all non-major dependencies by @renovate[bot] in #3940
Full Changelog: v0.19.2...v0.19.3
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.19.3
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.19.3'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.19.3")
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.19.3