عن المشروع

Element Call هو تطبيق مؤتمرات فيديو مبني على بروتوكول Matrix، طورته شركة Element. ويُوصف بأنه حل لمؤتمرات الفيديو لامركزي واتحادي، يستخدم MatrixRTC (MSC4143) مع LiveKit كخلفية (MSC4195). القدرات الرئيسية الموضحة في README: - تشغيل لامركزي واتحادي عبر خوادم Matrix المنزلية، دون سلطة مركزية. - مكالمات مشفرة من طرف إلى طرف. - ثلاثة أوضاع استخدام: تطبيق ويب مستقل، وأداة مدمجة في عملاء Matrix (Element Web، Element X على iOS وAndroid)، ومكتبة مكوّنات React تجريبية للتركيب داخل تطبيق مضيف. - معتمد على WebRTC، ولا يتطلب برمجيات إضافية للمشاركين. - قابلية التوسع عبر LiveKit SFU للاجتماعات الأكبر. - ميزات مثل رفع اليد والتفاعلات بالرموز التعبيرية. النشر والتغليف: حزمة كاملة تدعم وضعي الاستقلال والأداة كصفحة ويب ثابتة؛ وحزمة مدمجة مخصصة لوضع الأداة المدمجة مع تطبيق مراسلة؛ وحزمة مكوّنات (تجريبية) تبني Element Call كمكوّن React. يقوم بناء المكوّن بتحديد نطاق أنماطه على عنصره الجذري، ويدعم استعلامات الحاوية للتخطيط، ويرفق اللغة الإنجليزية ويحمّل لغات أخرى عند الطلب، ويتقبل خصائص اللغة والسمة. يجب على المضيف استدعاء initializeElementCall(config) قبل العرض، وتوفير عميل Matrix وroomId وintent وconfig اختيارية وhostBridge؛ ويصدر المضيف أوامر join وhangUp وsetDeviceMute من خلال مقبض ref. الحزمة غير منشورة بعد وتُثبّت كتبعية git. الاستضافة الذاتية: توجد إشارة إلى دليل الاستضافة الذاتية. يحتاج كل نشر إلى ناقل 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؛ ثم تقدم خدمة التفويض عنوان 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 التجاري المدفوع.