What's Changed
Version 0.17.0 is a big fundamental change.
Lets start with the TLDR:
- it implements everything required for matrix2.0
- It is fully compatible with v0.16.0 and behaves the same
- if someone sends 2.0 events and uses features like publishing there media on their own SFU, this version will still connect with those users
There is a full refactor of the CallViewModel (a major part of the codebase), an SDK version, and all the matrix2.0 features that cover security, reliability and convenience.
✨ Features
🙌 Improvements
- Avoid gratuitous animations when the speaker changes by @robintown in #3536
CallViewmodelrefactor by @toger5 in #3560- Config: UrlParams to control noiseSuppression and echoCancellation by @BillCarsonFr in #3590
- Simplify computation of analytics ID by @robintown in #3614
- Support MSC4143 RTC Transport endpoint by @Half-Shot in #3629
- Add playwright test for hotswatpping the transport (swap from
oldest_member(singeSFU) tomulti_sfu) by @toger5 in #3681 - Make Element Call widgets compatible with Matrix 2.0 mode by @robintown in #3686
📄 Documentation
- Add another community guide by @fkwp in #3539
- Correct Caddy reverse proxy config example by @alutarius in #3572
- Add Haproxy configuration for element call by @gordnhoo in #3661
🐛 Bugfixes
- Add ring notification to UserIntent.StartNewCallDM by @toger5 in #3499
- Fix: never stop ring feedback on the sender side. by @toger5 in #3502
- Fix: widget hangup action not working by @BillCarsonFr in #3544
- fix: Automatically switch to spotlight if remote screenshare by @BillCarsonFr in #3601
- Fix: Camera is not muted when the earpiece mode is enabled by @BillCarsonFr in #3596
- Fix: Allow to manually switch back to grid mode when there is a screenshare by @BillCarsonFr in #3605
- fix: The handset mode overlay is visible a split second for every call by @BillCarsonFr in #3606
- Fix the wrong layout being used until window size changes by @robintown in #3608
- Dispel confusion about whether media is remote or local by @robintown in #3624
- Don't show 'waiting for media' on connected participants by @robintown in #3626
- Allow user to switch layouts while phone is in landscape by @robintown in #3637
- Start publishing latest docker tags again. by @Half-Shot in #3650
- Fix: Ensure voice and audio intent are respected by @BillCarsonFr in #3659
- Change the livekit alias to just be the room id (for backwards compatibility) by @toger5 in #3669
- Fix Publisher cleanup procedure by @toger5 in #3675
- Fix delayId delegation. Use correct event reemitting types. by @toger5 in #3687
- Fix rejoin EC crash by @toger5 in #3693
💾 Developer Experience
- Android: allow RCs to be published as non-SNAPSHOT versions by @jmartinesp in #3501
- DevX: Add another Matrix site to docker-compose by @fkwp in #3511
- refactor to createCallViewModel$ by @toger5 in #3568
createCallViewModel$function refactor by @toger5 in #3571- Restrict importing src/lib in most cases for matrix- libs by @Half-Shot in #3575
- Refactor local transport testing and local membership initialization by @toger5 in #3576
- Fix reactivity based on localTransport updates (Cleanup for LocalMembership.ts) by @toger5 in #3591
- Unify LiveKit and Matrix connection states by @toger5 in #3611
- Remove all
OpenTelementryrelated code by @toger5 in #3586 - Remove duplicate IntentAndPlatformDerivedConfiguration interface by @Half-Shot in #3658
- Remove deprecated widget layout actions by @toger5 in #3689
- Fix some error log lines that lead to confusion by @toger5 in #3679
Others
- Refactor ring$ observable by @toger5 in #3504
- Never skip lobby for huddles by @toger5 in #3508
- Add media hints for notification events. by @Half-Shot in #3493
- Use updated multi sfu js-sdk by @toger5 in #3516
- Disable call button while the call is connecting. by @Half-Shot in #3531
- Connection State: Error Handling + Cleaning / refactoring / by @BillCarsonFr in #3521
- Fix resource leaks when we stop using a connection by @robintown in #3537
- Add sticky event support by @toger5 in #3513
- A new world: "Multi-SFU" media transport by @toger5 in #3512
- Use the dedicated bug report sub-domain by @benbz in #3557
- Adding more logs by @BillCarsonFr in #3563
- Move one-on-one layout into CallViewModel by @toger5 in #3567
- fix: Send close widget action on auto-leave by @BillCarsonFr in #3547
- Add log to screenshare by @toger5 in #3585
- Add script to check that the tsdoc is correct and up-to-date by @BillCarsonFr in #3644
- Update sdk example by @toger5 in #3662
- Pseudonomous identity and use the new jwt service endpoint (with delayed event delegation) by @toger5 in #3638
- Small refactor: User media alternative by @toger5 in #3664
- Add livekitAlias debugging info by @toger5 in #3670
👒 Dependencies
- Update GitHub Actions by @renovate[bot] in #3517
- Update dependency livekit-client to v2.15.11 by @renovate[bot] in #3532
- Update dependency vite to v7.1.11 [SECURITY] by @renovate[bot] in #3541
- Update LiveKit components by @renovate[bot] in #3533
- Update dependency livekit-client to v2.15.14 by @renovate[bot] in #3552
- Update softprops/action-gh-release digest to 6da8fa9 by @renovate[bot] in #3550
- Update embedded package dependencies to v8.13.0 - autoclosed by @renovate[bot] in #3551
- Update Node.js to v24 by @renovate[bot] in #3556
- Update dependency livekit-client to v2.15.15 by @renovate[bot] in #3564
- Update dependency livekit-client to v2.16.0 by @renovate[bot] in #3574
- Update LiveKit components by @renovate[bot] in #3573
- Update embedded package dependencies by @renovate[bot] in #3599
- Update GitHub Actions by @renovate[bot] in #3598
- Update dependency matrix-widget-api to v1.15.0 by @renovate[bot] in #3565
- Update LiveKit components by @renovate[bot] in #3628
- Update dependency livekit-client to v2.16.1 by @renovate[bot] in #3641
- Update all non-major dependencies by @renovate[bot] in #3518
- Update Compound by @renovate[bot] in #3478
- Update dependency @livekit/components-react to v2.9.17 by @renovate[bot] in #3665
New Contributors
- @benbz made their first contribution in #3557
- @alutarius made their first contribution in #3572
- @gordnhoo made their first contribution in #3661
Full Changelog: v0.16.3...v0.17.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.17.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@
Android AAR
dependencies {
implementation 'io.element.android:element-call-embedded:0.17.0-rc.1'
}
SwiftPM
.package(url: "https://github.com/element-hq/element-call-swift.git", from: "0.17.0-rc.1")