@Falco È possibile esporre un controllo pubblico nelle impostazioni del sito/serializer per verificare se LiveKit è configurato, accanto a voice_enabled?
Attualmente voice_enabled è esposto al client, ma non esiste un segnale pubblico per sapere se un sito può servire LiveKit. L’unico attributo del sito relativo a LiveKit, voice_livekit_per_room_available, è limitato alla casella di controllo del modulo della stanza, quindi restituisce false con la policy all_rooms e non può essere usato per rispondere alla domanda “questo sito usa LiveKit in assoluto?”.
RoomSerializer#expected_transport gestisce bene il caso per stanza, ma richiede di recuperare prima le stanze e restituisce vuoto quando voice_public_access è disattivato, anche su un sito dove LiveKit è completamente configurato.
Qualcosa del genere sarebbe accettabile? È derivato dallo stato esistente, non espone credenziali né dettagli di policy e non richiede nuovi endpoint.
Andrebbe inserito in plugins/voice/plugin.rb, dopo il blocco voice_livekit_per_room_available e subito prima della riga Voice::DefaultRoomSeeder.ensure!:
# Segnale pubblico, senza credenziali, che il sito può servire LiveKit in assoluto.
add_to_serializer(:site, :voice_livekit_available) do
Voice::Livekit.configured? && SiteSetting.voice_livekit_room_policy != "disabled"
end