Revert "Stop advertising MatrixRTC transports in the client well-known"

This reverts commit 421b592690.

The org.matrix.msc4143.rtc_foci property is indeed gone from MSC4143 and
Element Call v0.24.0 no longer reads it, but Element Web does not ship that
version of Element Call yet. v1.12.26 embeds Element Call v0.22.0, which
discovers transports through the well-known property.

That embedded copy cannot consult the homeserver's RTC transports API
instead: it runs as a widget, a widget holds no access token and the API
requires authentication, so its own discovery code skips the API branch
outright. Newer Element Call versions ask their host client over the widget
API (MSC4515) and Element Web already implements that side of it, but the
widget has to speak it too.

Dropping the property therefore left Element Web and Element Desktop users
with MISSING_MATRIX_RTC_TRANSPORT when starting a call.

The restored variables carry a comment about why the property stays, and the
changelog entry is rewritten to announce the revert.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Slavi Pantaleev
2026-08-20 13:13:48 +03:00
co-authored by Claude Opus 5
parent 0bd1fa7cb8
commit 2a71b7aeee
5 changed files with 35 additions and 21 deletions
@@ -201,6 +201,23 @@ matrix_static_files_file_matrix_client_property_cc_etke_ketesa_auto: {}
matrix_static_files_file_matrix_client_property_cc_etke_ketesa_custom: {}
# The `org.matrix.msc4143.rtc_foci` property has been dropped from MSC4143 in favor of the homeserver's own RTC transports API,
# but remains the only way to reach clients which cannot consult that API.
# Element Call running as a widget (which is how Element Web and Element Desktop invoke it) is one such client,
# because a widget holds no access token of its own and the API requires authentication.
# Newer Element Call versions ask their host client for the transports over the widget API (MSC4515) instead,
# so this property can go away once such versions are widely deployed.
#
# Controls whether `org.matrix.msc4143.rtc_foci`-related entries should be added to the client well-known.
# By default, if there are entries in `matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci`, we show them (by enabling this).
matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci_enabled: "{{ matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci | default({}) | dict2items | length > 0 }}"
# Controls the org.matrix.msc4143.rtc_foci property in the /.well-known/matrix/client file.
# See `matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci_enabled`
matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci: "{{ matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci_auto + matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci_custom }}"
matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci_auto: []
matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci_custom: []
# Default /.well-known/matrix/client configuration template which covers the generic use case.
# You can customize it by controlling the various variables inside it.
#
@@ -28,8 +28,3 @@
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_static_files_container_image_force_pull', 'new': '<removed> (the new community.docker.docker_image_pull module handles this natively)'}
- {'old': 'matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci_enabled', 'new': '<removed> (the client well-known no longer advertises MatrixRTC transports; the homeserver announces them over its /_matrix/client/unstable/org.matrix.msc4143/rtc/transports API)'}
- {'old': 'matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci', 'new': '<removed> (the client well-known no longer advertises MatrixRTC transports; the homeserver announces them over its /_matrix/client/unstable/org.matrix.msc4143/rtc/transports API)'}
- {'old': 'matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci_auto', 'new': '<removed> (the client well-known no longer advertises MatrixRTC transports; the homeserver announces them over its /_matrix/client/unstable/org.matrix.msc4143/rtc/transports API)'}
- {'old': 'matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci_custom', 'new': '<removed> (the client well-known no longer advertises MatrixRTC transports; the homeserver announces them over its /_matrix/client/unstable/org.matrix.msc4143/rtc/transports API)'}
@@ -55,4 +55,8 @@
{% if matrix_static_files_file_matrix_client_property_cc_etke_ketesa_enabled %},
"cc.etke.ketesa": {{ matrix_static_files_file_matrix_client_property_cc_etke_ketesa | to_json }}
{% endif %}
{% if matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci_enabled %},
"org.matrix.msc4143.rtc_foci": {{ matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci | to_json }}
{% endif %}
}