📞 diskuz Llamada – Llamadas de voz y video dentro de Discourse (P2P, sin aplicaciones externas)

:information_source: Resumen Añade llamadas de voz y video de igual a igual (WebRTC) dentro de Discourse. Llamadas uno a uno desde un botón flotante o desde el compositor de chat 1:1; widget e interfaz de llamada integrados. Sin aplicaciones externas. Tu servidor de Discourse solo realiza la señalización (sin medios). El audio/video va directamente entre los dos navegadores (P2P) cuando es posible; puedes añadir servidores TURN opcionales en Administración para que cuando falle la P2P directa (ej. NAT/cortafuegos estricto), los medios se transmitan a través de TURN y la llamada siga funcionando.
:hammer_and_wrench: Enlace al Repositorio GitHub - idiskuz/diskuz-call: Voice calls (WebRTC) for Discourse. P2P calls between users, built-in UI. Created for diskuz.com. · GitHub
:open_book: Guía de Instalación Cómo instalar plugins en Discourse
:busts_in_silhouette: Comunidad diskuz Call Comunidad de soporte en diskuz.com para este nuevo plugin.

Características

  • Voz y video P2P (WebRTC) — Discourse solo maneja la señalización (oferta/respuesta, ICE); nunca recibe ni almacena audio/video. STUN (por defecto: Google) ayuda a los dos navegadores a encontrarse; luego los medios fluyen directamente entre ellos (P2P real). TURN (opcional, configurable en Administración → Servidores ICE) es un retransmisor: cuando la P2P directa falla (NAT simétrico, cortafuegos corporativo, etc.), los medios van A → Servidor TURN → B para que la llamada siga funcionando. Añade TURN si los usuarios reportan llamadas fallidas o audio unidireccional.
  • Botón flotante (abajo a la derecha) — Abre un widget para escribir un nombre de usuario e iniciar una llamada. Oculto cuando el compositor de temas o el chat están abiertos. El administrador puede desactivarlo en todo el sitio.
  • Botón de llamada en chat 1:1 — Icono en el compositor de chat para iniciar una llamada con el otro usuario. El administrador puede desactivarlo en todo el sitio. Solo visible para los grupos permitidos cuando está habilitado.
  • Acceso basado en grupos — Solo los usuarios en los grupos configurados ven y usan diskuz Call. Opcional: “el llamado debe seguir al que llama” (requiere Discourse Follow).
  • Grupos separados para “video permitido” — Controla quién puede encender la cámara durante una llamada.
  • Tono de llamada configurable — Sonido cuando llega una llamada: ninguno, predeterminado, ding, campana, chat, personalizado (hasta 10 URL de MP3; el usuario elige uno en el widget), o ajustes preestablecidos alternativos integrados. Por separado, las notificaciones de Discourse (icono de campana) muestran “te está llamando” para las entrantes y “Llamada perdida” con la hora para las llamadas perdidas.
  • Widget — Dos páginas: “Llamar a un amigo” (inicio) y Notificaciones (Recibidas, Enviadas, Recientes, Perdidas; hasta 10 por pestaña; nombres de usuario clicables para volver a llamar). Escritorio: se puede arrastrar desde la barra superior. Móvil: pantalla completa.
  • Durante una llamada — Duración, silenciar, altavoz, video activado/desactivado, desenfoque (escritorio/Android), modo oído en móvil (superposición oscura; toca 3 veces para desbloquear). Estado del usuario (En línea, Ocupado, Desconectado) en el navegador; las llamadas entrantes pueden ser rechazadas automáticamente cuando está Ocupado/Desconectado. Si el usuario cambia a otra pestaña, comienza un temporizador de 60 segundos; si no regresa, la llamada finaliza.
  • Localización — Inglés e Italiano (cliente y servidor).

Estado: Beta. Para llamadas fallidas o audio unidireccional, configura TURN en Administración → Plugins → Servidores ICE.

Configuración

  1. Instalar — Añade el plugin (ej. mediante hooks de app.yml o manualmente en el directorio de plugins):
    • git clone https://github.com/idiskuz/diskuz-call.git
    • Recompila la aplicación (ej. ./launcher rebuild app).
  2. Habilitar — Administración → Plugins: habilita diskuz Call (si aparece en la lista). Administración → Configuración → Plugins: habilita Habilitar diskuz Call.
  3. Acceso — Establece Quién puede ver y usar diskuz Call a los grupos deseados (ej. 1|2|3 para administradores, moderadores, personal).
  4. Opcional — Configura Mostrar botón flotante / Mostrar botón de chat, Requerir que el llamado siga al que llama (con Discourse Follow), Sonido para llamadas entrantes, Tonos de llamada personalizados o Tono de llamada alternativo, Grupos que pueden habilitar video, Color primario y Servidores ICE (JSON TURN) si es necesario para NAT/cortafuegos.

Requisitos: Discourse (utiliza mensajería en tiempo real incorporada para la señalización). Opcional: Discourse Follow (para “el llamado debe seguir al que llama”). Navegador con WebRTC, micrófono (y cámara para video).

Configuración

Nombre Descripción
Habilitar diskuz Call Interruptor principal para el plugin.
Quién puede ver y usar diskuz Call Lista de grupos (ej. administradores, moderadores, personal por ID). Solo estos usuarios ven el plugin y pueden hacer/recibir llamadas.
Requerir que el llamado siga al que llama Cuando está habilitado (con Discourse Follow), el llamado debe seguir al que llama para recibir llamadas.
Mostrar botón flotante ACTIVADO: botón flotante visible solo para los grupos permitidos. DESACTIVADO: oculto para todos.
Mostrar botón de chat ACTIVADO: botón de llamada en chat 1:1 visible solo para los grupos permitidos. DESACTIVADO: oculto para todos.
Grupos que pueden habilitar video Lista de grupos para quién puede usar el botón de Video durante una llamada.
Color primario Color hexadecimal (ej. #13c98c) para el botón y los acentos.
Sonido para llamadas entrantes ninguno, predeterminado, ding, campana, chat, personalizado o alternativo.
Tonos de llamada personalizados 1–10 URL de MP3. Se utilizan cuando el Sonido es personalizado; el usuario elige uno en el widget.
Tono de llamada alternativo Preajuste cuando el Sonido es alternativo (ej. suave, clásico, moderno, festivo, marimba, relax1–5).
Servidores ICE Array JSON opcional para STUN/TURN. Vacío = solo Google STUN.
Registro de depuración Cuando está ACTIVADO, mensajes de \[diskuz-call\] en la consola del navegador (F12). Para soporte; desactivar en producción.

Autores: diskuz.com, Cristian Deraco
Créditos: Concepto, características y diseño por Cristian Deraco (diskuz.com). Implementación con desarrollo asistido por IA.
Versión: 0.4.0-beta

Este no es un plugin oficial de Discourse.

Muy emocionado de compartir esto con todos ustedes: ¡diskuz Call ya está disponible! Tengo muchas ganas de escuchar lo que piensan :star_struck:

2 Me gusta