diff --git a/src/api/client/well_known.rs b/src/api/client/well_known.rs index a727aa03..95297e22 100644 --- a/src/api/client/well_known.rs +++ b/src/api/client/well_known.rs @@ -26,7 +26,7 @@ pub(crate) async fn well_known_client( // Add RTC transport configuration if available (MSC4143 / Element Call) // Element Call has evolved through several versions with different field // expectations - let rtc_foci = services + let mut rtc_foci: Vec<_> = services .server .config .well_known @@ -51,6 +51,10 @@ pub(crate) async fn well_known_client( }) .inspect_err(inspect_log)?; + if let Some(livekit_url) = &services.config.well_known.livekit_url { + rtc_foci.push(RtcFocusInfo::livekit(livekit_url.clone())); + } + Ok(discover_homeserver::Response { rtc_foci, ..discover_homeserver::Response::new(homeserver) diff --git a/src/core/config/mod.rs b/src/core/config/mod.rs index a54b4f1e..effca79a 100644 --- a/src/core/config/mod.rs +++ b/src/core/config/mod.rs @@ -2363,14 +2363,26 @@ pub struct WellKnownConfig { /// example "@admin:example.com" pub support_mxid: Option, - /// Element Call / MatrixRTC configuration (MSC4143). - /// Configures the LiveKit SFU server for voice/video calls. - /// - /// Requires a LiveKit server with JWT authentication. - /// The `livekit_service_url` should point to your LiveKit JWT endpoint. + /// LiveKit JWT endpoint. + /// Required for Element Call / MatrixRTC (MSC4143). /// /// Note: You must also set `client` above to your homeserver URL. /// + /// default: "" + #[serde(default)] + pub livekit_url: Option, + + /// Custom MatrixRTC transports. + /// + /// If you're looking to setup Element Call / MatrixRTC with Livekit, + /// you should not use this option and instead set `livekit_url`. + /// This is only required if you want to configure a non-livekit MatrixRTC + /// transport. There are no known client implementations that support any + /// other transport types. + /// + /// This option was previously the only way to configure a Livekit + /// transport. It has been superseded by `livekit_url`. + /// /// Example: /// ```toml /// [global.well_known] diff --git a/tuwunel-example.toml b/tuwunel-example.toml index 0307f2db..7a2ae8c9 100644 --- a/tuwunel-example.toml +++ b/tuwunel-example.toml @@ -2017,14 +2017,24 @@ # #support_mxid = -# Element Call / MatrixRTC configuration (MSC4143). -# Configures the LiveKit SFU server for voice/video calls. -# -# Requires a LiveKit server with JWT authentication. -# The `livekit_service_url` should point to your LiveKit JWT endpoint. +# LiveKit JWT endpoint. +# Required for Element Call / MatrixRTC (MSC4143). # # Note: You must also set `client` above to your homeserver URL. # +#livekit_url = "" + +# Custom MatrixRTC transports. +# +# If you're looking to setup Element Call / MatrixRTC with Livekit, +# you should not use this option and instead set `livekit_url`. +# This is only required if you want to configure a non-livekit MatrixRTC +# transport. There are no known client implementations that support any +# other transport types. +# +# This option was previously the only way to configure a Livekit +# transport. It has been superseded by `livekit_url`. +# # Example: # ```toml # [global.well_known]