このプロジェクトについて
Element Callは、Element社が開発したMatrixプロトコルに基づくビデオ会議アプリケーションです。分散型かつフェデレーション対応のビデオ会議ソリューションと説明され、MatrixRTC(MSC4143)とバックエンドとしてのLiveKit(MSC4195)を使用しています。
READMEに記載されている主な機能は以下の通りです:
- Matrixホームサーバー間での分散型・フェデレーション運用が可能で、中央機関は不要です。
- エンドツーエンド暗号化された通話。
- 3つの利用モード:スタンドアロンWebアプリ、Matrixクライアント(Element Web、iOS/Android向けElement X)に埋め込むウィジェット、ホストアプリケーション内にマウントする実験的なReactコンポーネントライブラリ。
- WebRTCベースで、参加者に追加ソフトウェアは不要です。
- 大規模会議向けにLiveKit SFUによるスケーラビリティを提供。
- 挙手や絵文字リアクションなどの機能。
デプロイとパッケージング:フルパッケージはスタンドアロンおよびウィジェットモードを静的Webページとしてサポートします。埋め込みパッケージはメッセンジャーアプリにバンドルされるウィジェットモード向けです。コンポーネントパッケージ(実験的)はElement CallをReactコンポーネントとしてビルドします。コンポーネントビルドはスタイルをルート要素にスコープし、レイアウトにコンテナクエリをサポートし、英語をバンドルして他のロケールをオンデマンドで読み込み、言語とテーマのプロパティを受け入れます。ホストはレンダリング前にinitializeElementCall(config)を呼び出す必要があり、Matrixクライアント、roomId、intent、オプションのconfigとhostBridgeを提供します。ホストはrefハンドルを通じてjoin、hangUp、setDeviceMuteを発行します。このパッケージはまだ公開されておらず、git依存関係としてインストールされます。
セルフホスティング:セルフホスティングガイドが参照されています。各デプロイにはLiveKitサーバーという形のMatrixRTCトランスポートが必要です。トランスポート検出はGET /_matrix/client/unstable/org.matrix.msc4143/rtc/transportsエンドポイントを使用し、livekit_service_urlがMatrixRTC認証サービスを指すタイプlivekitのrtc_transportsエントリを返します。バックエンド選択:参加者は通話メンバー状態イベントのorg.matrix.msc4143.rtc_fociを介して検出されたトランスポートを提案します。LiveKitの場合、最初に参加した参加者がfoci_preferredを介してバックエンドを定義し、認証サービスがLiveKit SFU WebSocket URLとアクセスJWTを提供します。
開発:依存関係にはNode.js、Corepack、バックエンド用のDocker Composeが含まれます。フロントエンドのセットアップはcorepack enable、pnpm install、config/config.devenv.jsonからコピーしたローカル設定、pnpm devを使用します。docker-compose-dev.ymlはSynapseホームサーバー、MatrixRTC認証サービス、LiveKit SFU、localhost証明書認証局、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.