المكالمات الجماعية
المكالمة الجماعية غرفة حتى 10 مشاركين. أنشئها بـ type: group، وأصدر رمزاً لكل من يجب أن يكون داخلها، ويبقي الـ SDK قائمة المشاركين متزامنة.
01إنشاء الغرفة
تبدأ المكالمات الجماعية عادة بلا رنين: المشاركون على الشاشة أصلاً (درس، اجتماع صباحي، قناة توزيع). أنشئ المكالمة مرة واحدة واحتفظ بـ call_id ما دامت الغرفة حيّة.
02إضافة المشاركين
أصدر رمزاً لكل مشارك بـ POST /calls/{call_id}/tokens لحظة ضغطه على «انضمام» — لا مسبقاً، فالرموز تنتهي خلال 5 دقائق. تنتقل المكالمة إلى in_progress مع الرمز الثاني.
تتسع الغرفة لعشرة مشاركين نشطين. الطلب الحادي عشر يردّ بـ 422 Call is full؛ وحين يغادر أحدهم يتحرّر مقعده. كل رمز يرسل participant.joined إلى الـ webhooks، فتستطيع عكس القائمة عندك.
03في التطبيق
يعرض كائن المكالمة participants ويطلق حدثاً كلما انضم أحد أو غادر أو كتم صوته. في Flutter، ترسم GroupCallScreen من عدّة الواجهة البلاطات بعمودين وتبرز المتحدث النشط من القائمة نفسها.
04الفوترة
تُحتسب المكالمات الجماعية كغيرها: دقائق الاتصال مقرّبة للأعلى مضروبة في عدد المشاركين. غرفة 10 دقائق بثلاثة أشخاص = 30 دقيقة مشارك؛ والغرفة نفسها بثمانية = 80. القاعدة كاملة في صفحة دقائق المشاركين.
05الحدود
الحدود الحالية التي يفرضها الـ API.
| العنصر | الحد |
|---|---|
| المشاركون النشطون في مكالمة فردية |
2
|
| المشاركون النشطون في مكالمة جماعية |
10
|
المفاتيح في metadata
|
20
|
| عمر رمز الانضمام |
60 – 3600 s
|
| طلبات الـ API لكل مفتاح سري |
120 / min
|