From 6b5c8c500a412424ace5924f48513a384b98f234 Mon Sep 17 00:00:00 2001 From: damencho Date: Thu, 27 Jun 2024 10:56:18 +0300 Subject: [PATCH] feat(visitors): Adds flag to enable live room feature. By default is disabled. --- jicofo-selector/src/main/resources/reference.conf | 4 ++++ .../main/kotlin/org/jitsi/jicofo/visitors/VisitorsConfig.kt | 5 +++++ .../main/kotlin/org/jitsi/jicofo/xmpp/ConferenceIqHandler.kt | 3 ++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/jicofo-selector/src/main/resources/reference.conf b/jicofo-selector/src/main/resources/reference.conf index ecd6d4038c..5f5b5b11f6 100644 --- a/jicofo-selector/src/main/resources/reference.conf +++ b/jicofo-selector/src/main/resources/reference.conf @@ -386,6 +386,10 @@ jicofo { # Whether to require the "visitorsEnabled" flag in the MUC config form before enabling visitors for a conference. # This allows the visitors option to be controlled per-conference. require-muc-config-flag = false + + # Whether to evaluate visitorsLive room flag, which can be controlled server-side + # via the room-metadata service + enable-live-room = false } xmpp { diff --git a/jicofo/src/main/kotlin/org/jitsi/jicofo/visitors/VisitorsConfig.kt b/jicofo/src/main/kotlin/org/jitsi/jicofo/visitors/VisitorsConfig.kt index b5d6c4bacb..38c60e39e2 100644 --- a/jicofo/src/main/kotlin/org/jitsi/jicofo/visitors/VisitorsConfig.kt +++ b/jicofo/src/main/kotlin/org/jitsi/jicofo/visitors/VisitorsConfig.kt @@ -43,6 +43,11 @@ class VisitorsConfig private constructor() { val requireMucConfigFlag: Boolean by config { "jicofo.visitors.require-muc-config-flag".from(newConfig) } + + val enableLiveRoom: Boolean by config { + "jicofo.visitors.enable-live-room".from(newConfig) + } + companion object { @JvmField val config = VisitorsConfig() diff --git a/jicofo/src/main/kotlin/org/jitsi/jicofo/xmpp/ConferenceIqHandler.kt b/jicofo/src/main/kotlin/org/jitsi/jicofo/xmpp/ConferenceIqHandler.kt index 802e347f4c..beaa9917af 100644 --- a/jicofo/src/main/kotlin/org/jitsi/jicofo/xmpp/ConferenceIqHandler.kt +++ b/jicofo/src/main/kotlin/org/jitsi/jicofo/xmpp/ConferenceIqHandler.kt @@ -22,6 +22,7 @@ import org.jitsi.jicofo.TaskPools import org.jitsi.jicofo.auth.AuthenticationAuthority import org.jitsi.jicofo.auth.ErrorFactory import org.jitsi.jicofo.metrics.JicofoMetricsContainer +import org.jitsi.jicofo.visitors.VisitorsConfig import org.jitsi.utils.OrderedJsonObject import org.jitsi.utils.logging2.createLogger import org.jitsi.xmpp.extensions.jitsimeet.ConferenceIq @@ -97,7 +98,7 @@ class ConferenceIqHandler( val visitorSupported = query.properties.any { it.name == "visitors-version" } val visitorRequested = query.properties.any { it.name == "visitor" && it.value == "true" } - if (visitorRequested && conference?.chatRoom?.visitorsLive != true) { + if (visitorRequested && VisitorsConfig.config.enableLiveRoom && conference?.chatRoom?.visitorsLive != true) { response.isReady = false response.addProperty(ConferenceIq.Property("live", "false")) return response