Sobre el proyecto
Element Call es una aplicación de videoconferencia construida sobre el protocolo Matrix, desarrollada por Element. Se describe como una solución de videoconferencia descentralizada y federada, que utiliza MatrixRTC (MSC4143) con LiveKit como backend (MSC4195).
Capacidades clave descritas en el README:
- Operación descentralizada y federada entre homeservers de Matrix, sin autoridad central.
- Llamadas cifradas de extremo a extremo.
- Tres modos de uso: aplicación web independiente, widget integrado en clientes de Matrix (Element Web, Element X en iOS y Android) y una biblioteca de componentes React experimental para montar dentro de una aplicación anfitriona.
- Basado en WebRTC, sin necesidad de software adicional para los participantes.
- Escalabilidad mediante LiveKit SFU para reuniones más grandes.
- Funciones como levantar la mano y reacciones con emojis.
Despliegue y empaquetado: un paquete completo admite modos independiente y widget como página web estática; un paquete integrado está destinado al modo widget junto con una aplicación de mensajería; un paquete de componentes (experimental) construye Element Call como un componente React. La compilación de componentes limita sus estilos a su elemento raíz, admite consultas de contenedor para el diseño, agrupa inglés y carga otros idiomas bajo demanda, y acepta propiedades de idioma y tema. Un anfitrión debe llamar a initializeElementCall(config) antes de renderizar, y proporciona un cliente de Matrix, roomId, intent, config opcional y hostBridge; el anfitrión emite join, hangUp y setDeviceMute a través de un identificador de referencia. El paquete aún no está publicado y se instala como dependencia de git.
Autoalojamiento: se hace referencia a una guía de autoalojamiento. Cada despliegue necesita un transporte MatrixRTC en forma de servidor LiveKit. El descubrimiento de transporte utiliza el endpoint GET /_matrix/client/unstable/org.matrix.msc4143/rtc/transports, que devuelve entradas rtc_transports de tipo livekit con una livekit_service_url que apunta a un Servicio de Autorización MatrixRTC. Selección de backend: los participantes proponen transportes descubiertos mediante org.matrix.msc4143.rtc_foci en su evento de estado de miembro de llamada; para LiveKit, el primer participante en unirse define el backend mediante foci_preferred; el servicio de autorización proporciona entonces la URL WebSocket del LiveKit SFU y un JWT de acceso.
Desarrollo: las dependencias incluyen Node.js, Corepack y Docker con Compose para el backend. La configuración del frontend usa corepack enable, pnpm install, una configuración local copiada de config/config.devenv.json y pnpm dev. Un docker-compose-dev.yml inicia una pila local con homeservers de Synapse, un servicio de autorización MatrixRTC, LiveKit SFU, una autoridad certificadora localhost y un proxy inverso TLS; usa un secreto de prueba y no debe exponerse a internet pública. Las pruebas usan Vitest (con -u para actualizar instantáneas) y Playwright, con un arnés de componentes en el puerto 3001. Las traducciones se gestionan mediante Localazy, y las nuevas claves de traducción se añaden ejecutando pnpm i18n y editando locales/en/app.json.
Licencia: con doble licencia de New Vector Ltd (Element) bajo AGPL-3.0 o una Licencia Comercial de Element de pago.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.