Об этом проекте
Element Call — это приложение для видеоконференций, построенное на протоколе Matrix и разработанное компанией Element. Описывается как децентрализованное и федеративное решение для видеоконференций, использующее MatrixRTC (MSC4143) с LiveKit в качестве бэкенда (MSC4195).
Ключевые возможности, описанные в README:
- Децентрализованная и федеративная работа между домашними серверами Matrix без центрального органа управления.
- Сквозное шифрование звонков.
- Три режима использования: автономное веб-приложение, виджет, встраиваемый в клиенты Matrix (Element Web, Element X на iOS и Android), и экспериментальная библиотека React-компонентов для монтирования внутри хост-приложения.
- На базе WebRTC, не требует дополнительного ПО от участников.
- Масштабируемость через LiveKit SFU для крупных встреч.
- Функции вроде поднятия руки и эмодзи-реакций.
Развёртывание и упаковка: полный пакет поддерживает автономный режим и режим виджета в виде статической веб-страницы; встроенный пакет предназначен для режима виджета, поставляемого в комплекте с мессенджер-приложением; пакет компонентов (экспериментальный) собирает Element Call как React-компонент. Сборка компонентов ограничивает стили корневым элементом, поддерживает container queries для вёрстки, включает английскую локаль и подгружает остальные по требованию, а также принимает пропсы language и theme. Хост должен вызвать initializeElementCall(config) перед рендерингом и предоставить Matrix-клиент, roomId, intent, необязательный config и hostBridge; хост вызывает join, hangUp и setDeviceMute через ref-handle. Пакет ещё не опубликован и устанавливается как git-зависимость.
Self-hosting: упоминается руководство по самостоятельному развёртыванию. Каждому развёртыванию требуется транспорт MatrixRTC в виде сервера LiveKit. Обнаружение транспорта использует эндпоинт GET /_matrix/client/unstable/org.matrix.msc4143/rtc/transports, возвращающий записи rtc_transports типа livekit с livekit_service_url, указывающим на сервис авторизации MatrixRTC. Выбор бэкенда: участники предлагают обнаруженные транспорты через org.matrix.msc4143.rtc_foci в событии состояния участника звонка; для LiveKit первый участник, присоединившийся к звонку, определяет бэкенд через foci_preferred; затем сервис авторизации предоставляет WebSocket-URL LiveKit SFU и access JWT.
Разработка: зависимости включают Node.js, Corepack и Docker с Compose для бэкенда. Настройка фронтенда использует corepack enable, pnpm install, локальный конфиг, копируемый из config/config.devenv.json, и pnpm dev. Файл docker-compose-dev.yml запускает локальный стек с домашними серверами Synapse, сервисом авторизации MatrixRTC, LiveKit SFU, локальным центром сертификации и TLS-обратным прокси; он использует тестовый секрет и не должен быть доступен из публичного интернета. Тесты используют Vitest (с -u для обновления снапшотов) и Playwright, с тестовым окружением компонентов на порту 3001. Переводы управляются через Localazy, а новые ключи перевода добавляются запуском pnpm i18n и редактированием locales/en/app.json.
Лицензирование: двойная лицензия от New Vector Ltd (Element) — AGPL-3.0 или платная Element Commercial License.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.