# Exposición del estado de LiveKit en el serializador de la configuración del sitio

**URL:** https://meta.discourse.org/t/exposing-livekit-status-in-site-settings-serializer/411428
**Category:** Support
**Tags:** voice
**Created:** [1 Septiembre, 2026 23:23 UTC](https://meta.discourse.org/t/exposing-livekit-status-in-site-settings-serializer/411428 "2026-09-01T23:23:01Z")
**Posts on this page:** 1
**Showing post:** 2

<div class="post-metadata">

### Author: ![nicolsdennis](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nicolsdennis/32/545883_2.png) [@nicolsdennis](https://meta.discourse.org/u/nicolsdennis)
#### Post date: [2 Septiembre, 2026 08:49 UTC](https://meta.discourse.org/t/exposing-livekit-status-in-site-settings-serializer/411428/2 "2026-09-02T08:49:31Z")

</div>

voice\_enabled no es accesible en absoluto desde la API JSON: /site.json no incluye la clave site\_settings. Por lo tanto, la única señal pública de que el audio está activo en un sitio es la presencia de voice\_assets\_path.

Lo que solicito son dos booleanos públicos, sin credenciales, para que un cliente pueda decidir si mostrar el audio antes de obtener las salas. Ambos se derivan de un estado existente y no requieren un nuevo punto de acceso, en plugins/voice/plugin.rb:

En la línea 141, por encima de voice\_public\_access:

```ruby
#Señales públicas, sin credenciales, para los clientes de la API de que el audio está habilitado.

add_to_serializer(:site, :voice_available) { SiteSetting.voice_enabled }

```

En la línea 152, por encima de voice\_livekit\_per\_room\_available:

```ruby
# Si las uniones pueden usar LiveKit en absoluto. Una simple respuesta sí/no: sin URL, clave o
# valor de política. El atributo por sala siguiente solo controla la casilla de verificación SFU del
# formulario de la sala, y se lee como falso bajo la política all_rooms.

  add_to_serializer(:site, :voice_livekit_available) do

    Voice::Livekit.configured? && SiteSetting.voice_livekit_room_policy != "disabled"

  end

```

Esto no expone nada nuevo: expected\_transport es un atributo sin control en RoomSerializer (línea 30, definido en la 150) y rooms#index omite el inicio de sesión (rooms\_controller.rb:18), por lo que “livekit” / “mesh” ya es legible de forma anónima por sala. Esto simplemente responde a la pregunta sin una solicitud de sala que podría regresar vacía.

---

_[View the full topic](https://meta.discourse.org/t/exposing-livekit-status-in-site-settings-serializer/411428)._
