Releases: element-hq/element-call
v0.16.1
v0.16.0
What's Changed
β¨ Features
- Add "wait for pickup" overlay with sound. Leave on decline/timeout by @toger5 in #3489
- Add sounds for ringing by @Half-Shot in #3490
- Add drum/joke reaction by @davidegirardi in #3217
π Improvements
- Migrate from js-sdk's
deferin test by @AndrewFerr in #3470 - Add dialing/ringing state to CallViewModel (
callPickupState$) by @toger5 in #3466 - Prefer showing the reaction button at small screen widths by @robintown in #3400
- View model for decline logic by @toger5 in #3467
- default mute states (unmuted!) in widget mode (embedded + intent) by @toger5 in #3494
π Bugfixes
- Fix the reconnect button by @robintown in #3479
- Prevent showing calling view when disconnected from Livekit. by @Half-Shot in #3491
- Fix the interactivity of buttons while reconnecting or in earpiece mode by @robintown in #3486
- Backport: Never skip lobby for huddles (#3508) by @toger5 in #3509
πΎ Developer Experience
- Add Caddy configuration example and fix ConfigOptions.ts link by @tayeh in #3476
- docker compose: always pull latest image by @AndrewFerr in #3475
- Backport: Misc/android allow rcs to be published as non snapshot versions by @fkwp in #3506
Others
- Do not use preload mode by default in embedded mode by @Half-Shot in #3488
- Log when a track is unpublished or runs into an error by @Half-Shot in #3495
- Backport: Add ring notification to UserIntent.StartNewCallDM by @toger5 in #3498
- Backport: Fix: never stop ring feedback on the sender side by @toger5 in #3503
π Dependencies
- Update dependency livekit-client to v2.15.6 by @renovate[bot] in #3468
- Update dependency vite to v6.3.6 [SECURITY] by @renovate[bot] in #3482
- Update dependency livekit-client to v2.15.7 by @renovate[bot] in #3496
New Contributors
Full Changelog: v0.15.0...v0.16.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.16.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/[email protected]
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.16.0'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.16.0")
v0.16.0-rc.4
What's Changed since rc.3
π Bugfixes
πΎ Developer Experience
Full Changelog: v0.16.0-rc.3...v0.16.0-rc.4
What's Changed since v0.15.0
β¨ Features
- Add "wait for pickup" overlay with sound. Leave on decline/timeout by @toger5 in #3489
- Add sounds for ringing by @Half-Shot in #3490
- Add drum/joke reaction by @davidegirardi in #3217
π Improvements
- Migrate from js-sdk's
deferin test by @AndrewFerr in #3470 - Add dialing/ringing state to CallViewModel (
callPickupState$) by @toger5 in #3466 - Prefer showing the reaction button at small screen widths by @robintown in #3400
- View model for decline logic by @toger5 in #3467
- default mute states (unmuted!) in widget mode (embedded + intent) by @toger5 in #3494
π Bugfixes
- Fix the reconnect button by @robintown in #3479
- Prevent showing calling view when disconnected from Livekit. by @Half-Shot in #3491
- Fix the interactivity of buttons while reconnecting or in earpiece mode by @robintown in #3486
- Backport: Never skip lobby for huddles (#3508) by @toger5 in #3509
πΎ Developer Experience
- Add Caddy configuration example and fix ConfigOptions.ts link by @tayeh in #3476
- docker compose: always pull latest image by @AndrewFerr in #3475
- Backport: Misc/android allow rcs to be published as non snapshot versions by @fkwp in #3506
Others
- Do not use preload mode by default in embedded mode by @Half-Shot in #3488
- Log when a track is unpublished or runs into an error by @Half-Shot in #3495
- Backport: Add ring notification to UserIntent.StartNewCallDM by @toger5 in #3498
- Backport: Fix: never stop ring feedback on the sender side by @toger5 in #3503
π Dependencies
- Update dependency livekit-client to v2.15.6 by @renovate[bot] in #3468
- Update dependency vite to v6.3.6 [SECURITY] by @renovate[bot] in #3482
- Update dependency livekit-client to v2.15.7 by @renovate[bot] in #3496
New Contributors
Full Changelog: v0.15.0...v0.16.0-rc.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.16.0-rc.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/[email protected]
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.16.0-rc.4'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.16.0-rc.4")
v0.16.0-rc.3
What's Changed since rc.2
Others
Full Changelog: v0.16.0-rc.2...v0.16.0-rc.3
What's Changed since v0.15.0
β¨ Features
- Add "wait for pickup" overlay with sound. Leave on decline/timeout by @toger5 in #3489
- Add sounds for ringing by @Half-Shot in #3490
- Add drum/joke reaction by @davidegirardi in #3217
π Improvements
- Migrate from js-sdk's
deferin test by @AndrewFerr in #3470 - Add dialing/ringing state to CallViewModel (
callPickupState$) by @toger5 in #3466 - Prefer showing the reaction button at small screen widths by @robintown in #3400
- View model for decline logic by @toger5 in #3467
- default mute states (unmuted!) in widget mode (embedded + intent) by @toger5 in #3494
π Bugfixes
- Fix the reconnect button by @robintown in #3479
- Prevent showing calling view when disconnected from Livekit. by @Half-Shot in #3491
- Fix the interactivity of buttons while reconnecting or in earpiece mode by @robintown in #3486
πΎ Developer Experience
- Add Caddy configuration example and fix ConfigOptions.ts link by @tayeh in #3476
- docker compose: always pull latest image by @AndrewFerr in #3475
Others
- Do not use preload mode by default in embedded mode by @Half-Shot in #3488
- Log when a track is unpublished or runs into an error by @Half-Shot in #3495
- Backport: Add ring notification to UserIntent.StartNewCallDM by @toger5 in #3498
- Backport: Fix: never stop ring feedback on the sender side by @toger5 in #3503
π Dependencies
- Update dependency livekit-client to v2.15.6 by @renovate[bot] in #3468
- Update dependency vite to v6.3.6 [SECURITY] by @renovate[bot] in #3482
- Update dependency livekit-client to v2.15.7 by @renovate[bot] in #3496
New Contributors
Full Changelog: v0.15.0...v0.16.0-rc.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.16.0-rc.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/[email protected]
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.16.0-rc.3-SNAPSHOT'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.16.0-rc.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@
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.16.0-rc.3-SNAPSHOT'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "")
v0.16.0-rc.2
What's Changed since RC.1
Others
Full Changelog: v0.16.0-rc.1...v0.16.0-rc.2
What's Changed
β¨ Features
- Add "wait for pickup" overlay with sound. Leave on decline/timeout by @toger5 in #3489
- Add sounds for ringing by @Half-Shot in #3490
- Add drum/joke reaction by @davidegirardi in #3217
π Improvements
- Migrate from js-sdk's
deferin test by @AndrewFerr in #3470 - Add dialing/ringing state to CallViewModel (
callPickupState$) by @toger5 in #3466 - Prefer showing the reaction button at small screen widths by @robintown in #3400
- View model for decline logic by @toger5 in #3467
- default mute states (unmuted!) in widget mode (embedded + intent) by @toger5 in #3494
π Bugfixes
- Fix the reconnect button by @robintown in #3479
- Prevent showing calling view when disconnected from Livekit. by @Half-Shot in #3491
- Fix the interactivity of buttons while reconnecting or in earpiece mode by @robintown in #3486
πΎ Developer Experience
- Add Caddy configuration example and fix ConfigOptions.ts link by @tayeh in #3476
- docker compose: always pull latest image by @AndrewFerr in #3475
Others
- Do not use preload mode by default in embedded mode by @Half-Shot in #3488
- Log when a track is unpublished or runs into an error by @Half-Shot in #3495
- Backport: Add ring notification to UserIntent.StartNewCallDM by @toger5 in #3498
π Dependencies
- Update dependency livekit-client to v2.15.6 by @renovate[bot] in #3468
- Update dependency vite to v6.3.6 [SECURITY] by @renovate[bot] in #3482
- Update dependency livekit-client to v2.15.7 by @renovate[bot] in #3496
New Contributors
Full Changelog: v0.15.0...v0.16.0-rc.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.16.0-rc.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/[email protected]
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.16.0-rc.2-SNAPSHOT'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.16.0-rc.2")
v0.16.0-rc.1
What's Changed
This version of Element Call introduces the Telephone use-case for In-App Calling which is available in DM rooms.
Starting a Call in a DM room
- Users have a call-setup indication that notifies theyβre waiting for the other party to pick-up.
- Users are able to abandon the call before the other user has accepted or rejected
- Users placing a call where the other user has not accepted or rejected will timeout and be shown a basic βcall failedβ screen.
- UX feedback for a declined call
Receiving Side
- Users receiving a call are able to decline it
β¨ Features
- Add "wait for pickup" overlay with sound. Leave on decline/timeout by @toger5 in #3489
- Add sounds for ringing by @Half-Shot in #3490
- Add drum/joke reaction by @davidegirardi in #3217
π Improvements
- Migrate from js-sdk's
deferin test by @AndrewFerr in #3470 - Add dialing/ringing state to CallViewModel (
callPickupState$) by @toger5 in #3466 - Prefer showing the reaction button at small screen widths by @robintown in #3400
- View model for decline logic by @toger5 in #3467
- default mute states (unmuted!) in widget mode (embedded + intent) by @toger5 in #3494
π Bugfixes
- Fix the reconnect button by @robintown in #3479
- Prevent showing calling view when disconnected from Livekit. by @Half-Shot in #3491
- Fix the interactivity of buttons while reconnecting or in earpiece mode by @robintown in #3486
πΎ Developer Experience
- Add Caddy configuration example and fix ConfigOptions.ts link by @tayeh in #3476
- docker compose: always pull latest image by @AndrewFerr in #3475
Others
- Do not use preload mode by default in embedded mode by @Half-Shot in #3488
- Log when a track is unpublished or runs into an error by @Half-Shot in #3495
π Dependencies
- Update dependency livekit-client to v2.15.6 by @renovate[bot] in #3468
- Update dependency vite to v6.3.6 [SECURITY] by @renovate[bot] in #3482
- Update dependency livekit-client to v2.15.7 by @renovate[bot] in #3496
New Contributors
Full Changelog: v0.15.0...v0.16.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.16.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/[email protected]
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.16.0-rc.1-SNAPSHOT'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.16.0-rc.1")
v0.15.0
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_mstoconfig.jsonby @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
.tsfor 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/[email protected]
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")
v0.15.0-rc.1
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_mstoconfig.jsonby @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
.tsfor 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
π 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-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.15.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/[email protected]
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.15.0-rc.1-SNAPSHOT'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.15.0-rc.1")
v0.14.1
This minor release fixes an issue with the rageshake logging. Additionally it fixes one issue that results in missing audio streams on Safari.
What's Changed
π Bugfixes
- Backport: Set available devices to empty map on safari. by @toger5 in #3427
- Backport: missing logs in rageshake by @toger5 in #3435
Others
Full Changelog: v0.14.0...v0.14.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.14.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/[email protected]
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.14.1'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.14.1")
v0.14.0
What's Changed
β¨ Features
- Send notification events when starting a call by @robintown in #3248
π Improvements
- Reduce timeout after network error down to 100 ms for resetting delayed events by @fkwp in #3365
- Increase opacity of the EarpieceOverlay background for better visibility by @toger5 in #3369
- Update earpiece overlay button text for clarity by @toger5 in #3370
π Bugfixes
- Touch up some error screens by @robintown in #3337
- Request capability to send call notifications by @robintown in #3421
Others
- Fix bluetooth iOS issue (device auto switches from Bluetooth to speaker) by @toger5 in #3388
- Earpiece follow up: Change labels and icons by @toger5 in #3401
- Backport: bump js-sdk version 28/07/2025 (disable encryption manager in unencrypted rooms) by @toger5 in #3423
π Dependencies
- Update dependency livekit-client to v2.14.0 by @renovate[bot] in #3371
- Update embedded package dependencies by @renovate[bot] in #3378
- Update all non-major dependencies by @renovate[bot] in #3377
- Update dependency livekit-client to v2.15.2 by @renovate[bot] in #3396
- Update dependency @vector-im/compound-design-tokens to v4.0.5 by @renovate[bot] in #3392
- Update dependency @livekit/components-react to v2.9.13 by @renovate[bot] in #3395
- Update dependency livekit-client to v2.15.3 by @renovate[bot] in #3406
- Update LiveKit components by @renovate[bot] in #3407
- Update dependency @vector-im/compound-web to v8.2.0 by @renovate[bot] in #3410
- Update dependency @vector-im/compound-design-tokens to v5 by @renovate[bot] in #3411
Full Changelog: v0.13.1...v0.14.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.14.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/[email protected]
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.14.0'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.14.0")