Acabamos de cambiar el nombre de esta función de Voice a Live. El plugin ahora se llama Discourse Live, o simplemente Live.
A finales del año pasado compartimos Resenha, un experimento que añadía salas de voz y video estilo Discord directamente en Discourse. Sin necesidad de aplicaciones externas, solo WebRTC entre pares (peer-to-peer) en tu barra lateral.
El experimento funcionó. Lo hemos estado usando para nuestras propias reuniones desde entonces, y hoy da el salto: Resenha ahora se llama Voice, y se distribuye como un plugin principal incluido con cada instalación de Discourse. ![]()
Lo que obtienes
- Salas centradas en la barra lateral — haz clic para unirte o salir, ve los avatares de los participantes en vivo con indicadores de habla animados, y sigue navegando por el foro mientras hablas. Sin cambio de ruta, sin ventana emergente, y un widget compacto de llamada te acompaña por todo el sitio.
- Video y compartir pantalla — cada sala tiene una página completa con una cuadrícula de mosaicos; la cámara y el compartir pantalla se activan al instante, y la calidad se escala automáticamente según el número de espectadores.
- Desenfoque de fondo — segmentación de personas con MediaPipe ejecutándose completamente en tu navegador, con vista previa en vivo e intensidad ajustable.
- Supresión de ruido — elige entre tres motores de IA (RNNoise, DTLN, DeepFilterNet3) que funcionan como worklets de audio WebAssembly, desde ligeros hasta de grado estudio.
- Subtítulos en vivo — opcionales, subtítulos del lado del espectador impulsados por el reconocimiento de voz NVIDIA Parakeet ejecutado localmente vía WebGPU. Multilingüe, estado del arte, IA local. También puedes grabar una transcripción de la llamada directamente en un borrador de tema.
- Llamadas directas — llama a alguien directamente desde su tarjeta de usuario o perfil.
- Chat de texto por sala — respaldado por el chat real de Discourse: cada llamada tiene su propio hilo en el canal de chat de la sala.
- Permisos y gestión de salas — salas públicas, restringidas por grupo y privadas; creación de salas por usuarios limitada por grupos; silenciar, desactivar audio, volumen por usuario y expulsar.
- Indicadores de audio temáticos — los tonos de entrada/salida y llamada siguen tu paquete de sonidos de notificación de chat, para que Voice suene como el resto de tu sitio.
Cómo funciona
Por defecto, todo es entre pares (peer-to-peer): tu servidor de Discourse solo maneja la señalización, y los medios fluyen directamente entre los participantes con cifrado DTLS-SRTP. Cero infraestructura adicional, ideal para salas de hasta ~50 personas en voz, o hasta 10 con video.
Todo el procesamiento de audio y video (supresión de ruido, desenfoque de fondo, subtítulos) se ejecuta localmente en el dispositivo de cada participante. Nada se envía a terceros.
¿Necesitas llamadas más grandes? Apunta el plugin a un servidor de nube o autoalojado de LiveKit y enruta todas las salas (o solo algunas) a través de él. Cada participante luego publica cada pista exactamente una vez, sin importar el tamaño de la sala. Las salas enrutadas por LiveKit también pueden grabar llamadas, con el control de grabación disponible directamente desde la interfaz de la sala en Discourse.
Cómo activarlo
Voice está disponible en todos nuestros planes de alojamiento. La integración de LiveKit para llamadas más grandes está disponible en nuestros planes Business y Enterprise; quienes alojan sus propios servidores
pueden apuntarlo a su propio servidor LiveKit.
Voice viene incluido con Discourse, por lo que no hay nada que instalar. Actívalo a través de Administración > Ajustes > Plugins > voice enabled. El plugin crea una sala predeterminada “Watercooler” para que haya un lugar donde estar inmediatamente.
Desde ahí, voice_allowed_groups controla quién puede unirse a las salas, y voice_create_room_allowed_groups controla quién puede crearlas (por defecto, administradores, moderadores y TL2). El video está activado por defecto. Las llamadas directas están desactivadas hasta que elijas algunos grupos en voice_direct_calls_allowed_groups, y los subtítulos son opcionales vía voice_subtitles_enabled (requieren WebGPU, y cada usuario descarga el modelo de ~2.5 GB una sola vez).
Si estabas ejecutando el plugin Resenha desde mi repositorio personal, elimínalo de tu app.yml cuando puedas, ya que el plugin Voice incluido lo reemplaza.
Estado
Esto aún está en etapas tempranas. Lo hemos estado probando internamente a diario durante meses y funciona muy bien para grupos pequeños, pero pruébalo con tu equipo antes de abrirlo a toda una comunidad. No hay grabación de llamadas en la ruta predeterminada entre pares, y las herramientas de moderación más allá de banderas de usuario, expulsión y “Terminar llamada” siguen en la hoja de ruta.
Comentarios bienvenidos
Pruébalo y cuéntanos cómo te va. ¡Errores, ideas y preguntas son todos bienvenidos en este tema! También PRs, ahora más fáciles que nunca: el código está en core. ![]()






