Sfoglia il codice sorgente

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>
pull/5555/head
Slavi Pantaleev 8 ore fa
parent
commit
2a71b7aeee
5 ha cambiato i file con 35 aggiunte e 21 eliminazioni
  1. +6
    -16
      CHANGELOG.md
  2. +8
    -0
      group_vars/matrix_servers
  3. +17
    -0
      roles/custom/matrix-static-files/defaults/main.yml
  4. +0
    -5
      roles/custom/matrix-static-files/tasks/validate_config.yml
  5. +4
    -0
      roles/custom/matrix-static-files/templates/public/.well-known/matrix/client.j2

+ 6
- 16
CHANGELOG.md Vedi File

@@ -1,26 +1,16 @@
# 2026-08-19
# 2026-08-20

## MatrixRTC transports are no longer advertised in the client well-known
## MatrixRTC transports are advertised in the client well-known again

This only affects you if you have the [Matrix RTC stack](docs/configuring-playbook-matrix-rtc.md) or [Element Call](docs/configuring-playbook-element-call.md) enabled.

Your MatrixRTC transport (the URL of your [LiveKit JWT Service](docs/configuring-playbook-livekit-jwt-service.md)) used to be advertised in two places: the `org.matrix.msc4143.rtc_foci` property of the `/.well-known/matrix/client` file, and the homeserver's own `/_matrix/client/unstable/org.matrix.msc4143/rtc/transports` API ([MSC4143](https://github.com/matrix-org/matrix-spec-proposals/pull/4143)).
Yesterday's changelog entry announced that the `org.matrix.msc4143.rtc_foci` property was gone from the `/.well-known/matrix/client` file. That turned out to be premature and has been reverted, so the property is published again as it always was.

The well-known property has since been dropped from the spec proposal and [Element Call v0.24.0](https://github.com/element-hq/element-call/releases/tag/v0.24.0) has stopped reading it, so the playbook stops publishing it as well. The homeserver API is now the single source of truth. Every homeserver that the playbook can point at a MatrixRTC stack (Synapse, continuwuity and tuwunel) already announces your transport there, so calls keep working.
The property is indeed dropped from [MSC4143](https://github.com/matrix-org/matrix-spec-proposals/pull/4143) and [Element Call v0.24.0](https://github.com/element-hq/element-call/releases/tag/v0.24.0) no longer reads it, but Element Web (and likely other clients who move slowly or are otherwise outdated) does not ship that version of Element Call yet. Element Web v1.12.26 bundles Element Call v0.22.0, which still discovers your transport through the well-known property. It cannot use the homeserver's `/_matrix/client/unstable/org.matrix.msc4143/rtc/transports` API instead, because Element Call runs as a widget there and a widget holds no access token, while that API requires authentication. Newer Element Call versions ask their host client for the transports over the widget API ([MSC4515](https://github.com/matrix-org/matrix-spec-proposals/pull/4515)), which is what will eventually make the property unnecessary.

If your configuration defines `matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci_custom` or one of its companion variables, the playbook will tell you about it. Should you wish to keep publishing the property regardless, you can do so yourself:
Dropping the property therefore broke Element Call for Element Web and Element Desktop users, with a `MISSING_MATRIX_RTC_TRANSPORT` error when starting a call. Re-running the playbook (`just install-all`) brings the property back and fixes calls.

```yaml
matrix_static_files_file_matrix_client_configuration_extension_json: |
{
"org.matrix.msc4143.rtc_foci": [
{
"type": "livekit",
"livekit_service_url": "https://matrix.example.com/livekit-jwt-service"
}
]
}
```
If you worked around this by publishing the property yourself via `matrix_static_files_file_matrix_client_configuration_extension_json`, you can drop that from your `vars.yml` file now. The `matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci_custom` variable and its companions are back as well.

# 2026-08-13



+ 8
- 0
group_vars/matrix_servers Vedi File

@@ -6286,6 +6286,14 @@ matrix_static_files_file_matrix_client_property_m_tile_server_map_style_url: "{{
# We set this regardless of whether Ketesa is enabled, because people may wish to use a hosted (externally) Ketesa installation and still have it auto-configured.
matrix_static_files_file_matrix_client_property_cc_etke_ketesa_auto: "{{ matrix_ketesa_configuration if matrix_homeserver_implementation == 'synapse' else {} }}"

matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci_enabled: "{{ matrix_livekit_jwt_service_enabled }}"
matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci_auto: |-
{{
(
[{'type': 'livekit', 'livekit_service_url': matrix_livekit_jwt_service_public_url}] if matrix_livekit_jwt_service_enabled else []
)
}}

# Advertise all enabled and exposed mautrix bridges for auto-discovery by tools like Mautrix Manager.
# A bridge's public address is only reachable when the playbook attaches its Traefik labels and emits the exposure router,
# so we gate on these in addition to the bridge being enabled.


+ 17
- 0
roles/custom/matrix-static-files/defaults/main.yml Vedi File

@@ -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.
#


+ 0
- 5
roles/custom/matrix-static-files/tasks/validate_config.yml Vedi File

@@ -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)'}

+ 4
- 0
roles/custom/matrix-static-files/templates/public/.well-known/matrix/client.j2 Vedi File

@@ -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 %}
}

Caricamento…
Annulla
Salva