@Falco هل من الممكن إضافة فحص عام في إعدادات الموقع/المُخْرِج (serializer) لمعرفة ما إذا كان LiveKit مُهيّأ، إلى جانب voice_enabled؟
اليوم، voice_enabled مُعرَض للعميل (client)، لكن لا يوجد إشارة عامة لمعرفة ما إذا كان الموقع قادراً على تقديم خدمات LiveKit. الوصفة الوحيدة المرتبطة بـ LiveKit في الموقع، voice_livekit_per_room_available، مرتبطة بخانة اختيار نموذج الغرفة، لذا تُرجع false عند استخدام سياسة all_rooms، ولا يمكن استخدامها للإجابة على سؤال «هل هذا الموقع يدعم LiveKit على الإطلاق؟».
غالباً ما تغطي RoomSerializer#expected_transport حالة كل غرفة بشكل جيد، لكن ذلك يتطلب جلب الغرف أولاً، وتعود فارغة عندما تكون voice_public_access معطلة، حتى في موقع يكون فيه LiveKit مُهيّأ بالكامل.
هل يكون ما يلي مقبولاً؟ إنه مشتق من الحالة الحالية، ولا يُعرَض أي بيانات اعتماد أو تفاصيل سياسة، ولا يتطلب أي نقطة نهاية (endpoint) جديدة.
سيُضاف في plugins/voice/plugin.rb، بعد كتلة voice_livekit_per_room_available وقبل سطر Voice::DefaultRoomSeeder.ensure! مباشرة:
# إشارة عامة، خالية من بيانات الاعتماد، تُظهر أن الموقع يمكنه تقديم خدمات LiveKit على الإطلاق.
add_to_serializer(:site, :voice_livekit_available) do
Voice::Livekit.configured? && SiteSetting.voice_livekit_room_policy != "disabled"
end