مؤتمر فيديو BigBlueButton

يُدمج هذا الإضافة مثيلًا من Discourse مع BigBlueButton، وهي أداة مؤتمرات فيديو مفتوحة المصدر مصممة خصيصًا للتعليم عبر الإنترنت. ستحتاج إلى خادم يعمل بتشغيل مثيل من BBB لاستخدام هذه الإضافة، راجع http://docs.bigbluebutton.org للحصول على تفاصيل أكثر. وبالمقارنة مع Zoom وJitsi وWhereby، يتمتع BigBlueButton بدعم أفضل للمتصفحات؛ ففي اختباراتي، عمل مباشرة على جميع المتصفحات الحديثة، بما في ذلك Safari على iOS وChrome على Android.

لقطات شاشة


لإضافة مؤتمرة فيديو إلى موضوع أو منشور، استخدم زر “إضافة BigBlueButton” من قائمة الخيارات المنسدلة أثناء الكتابة:

الميزات

  • يدعم غرفًا متعددة
  • يتم التعرف على المستخدمين من الطاقم والمستخدمين من مجموعة قابلة للتكوين كمُعدِّلين في اجتماعات BBB
  • يمكن للمسؤولين اختيار تضمين الاجتماع داخل Discourse (عبر iframe) أو إعادة التوجيه إلى صفحة كاملة (مع خيارات منفصلة للهواتف المحمولة وأجهزة سطح المكتب)
  • يعرض صور رمزية للمستخدمين الموجودين بالفعل في مؤتمرة الفيديو بجانب زر الانضمام

ملاحظات

أود أن أشكر @Stephen على توجيهي إلى BigBlueButton وعلى الاختبار وتقديم الملاحظات للإصدارات المبكرة من الإضافة.

41 إعجابًا

عمل مذهل حقًا هنا. هناك العديد من المؤسسات التعليمية التي تستخدم BBB، وتوقيت هذا التكامل مثالي.

15 إعجابًا

في وقت مناسب جداً. لقد استخدمنا منتدى openmod كشاشة لعروضنا الجديدة الندوات التفاعلية عبر الإنترنت من خلال الإعلان عن روابط الندوات فقط في المواضيع الخاصة. الأمر ليس محصناً تماماً، لكننا نبذل قصارى جهدنا للحفاظ على نقاء مجتمع المنتدى. لذلك أنا مهتم جداً بهذه التطورات. @pmusaraj: شكرًا لك!

4 إعجابات

جميع مجموعات المتطوعين الثلاث التي أساعد فيها حاليًا خلال هذه الفترة الصعبة انتقلت إلى استخدام BigBlueButton.

كانت هذه الإضافة جزءًا كبيرًا من عملية هذا التحول. الانتقال من موضوع في Discourse إلى المؤتمر سلس تمامًا، ولا نواجه أيًا من المشاكل المعتادة.

أصبحت حياتي أسهل ألف مرة لأنني لم أعد بحاجة لتقديم الدعم التقني.

شكرًا مجددًا @pmusaraj!

9 إعجابات

شكرًا جزيلاً على العمل في هذا. لقد قمت باختباره وهو يعمل بشكل رائع.

لكنني أقدم لك هنا بعض الاقتراحات لتبسيط استخدامه. أفترض سيناريو الاستخدام حيث يكون موظف المنتدى غير معتاد على التفاصيل الداخلية لـ BigBlueButton، وأن تجربته السابقة الوحيدة هي استخدام واجهة BigBlueButton لإنشاء الغرف (Greenlight).

وبهذا، إليك اقتراحاتي:

  1. شرح كيفية إنشاء أزرار “بدء المؤتمر” في المنشور الأصلي
    بعد التثبيت، استغرق الأمر مني وقتًا طويلاً لاكتشاف أنه لإضافة زر BigBlueButton، يجب القيام بذلك من خلال “الخيارات” (أيقونة الترس) في محرر النصوص. ربما ذكر ذلك في التعليمات قد يتجنب بعض الارتباك.

  2. تسهيل إنشاء كلمات المرور

    • أزرار لتوليد كلمات مرور عشوائية: نحن نعلم أن الناس كسولون وسيختارون على الأرجح كلمة مرور ضعيفة. لذا، يمكن منح المستخدم خيارًا أكثر كسلًا في الواقع يجعله أكثر أمانًا.
    • تسمية كلمات المرور بـ “(اختياري)” (حل بديل)، وعند عدم تعيينها، يتم توليد كلمة مرور عشوائية. ولكن يجب إخبار المستخدم بملاحظة أنه سيتم إنشاء كلمة مرور عشوائية بدلاً من ذلك.
  3. النظر في إخفاء خيارات كلمات المرور تحت “متقدم”
    أعتقد أنه يمكن حتى إخفاء هذه الخيارات لأن معظم الناس سيودون على الأرجح إنشاء غرفة من داخل Discourse فقط دون ربطها بغرفة تم إنشاؤها باستخدام تطبيق آخر.

  4. عدم استخدام المصطلحات التقنية

  • أعرف أن Discourse تذكر دائمًا “iframe”، لكن المستخدم العادي لا يعرف ما هو. إذا تم تغيير التسمية إلى “إظهار داخل المنشور” بدلاً من ذلك، فسيكون ذلك أكثر وضوحًا.
  • “معرف الاجتماع” هو مصطلح تقني خاص بـ BigBlueButton. بالنسبة لمعظم المستخدمين، أعتقد أن “اسم الاجتماع” سيكون أفضل. وربما إضافة تعليمات رمادية اللون في الأسفل توضح أن هذا هو “معرف الاجتماع”.

الصورة أدناه توضح بعض “الميزات” المذكورة أعلاه. (هي مجرد نموذج أولي بدون وظائف فعلية)

ولكن مرة أخرى، إنه بالفعل إضافة ممتازة جدًا، خاصة للأشخاص العاملين في مجال التعليم. لذا شكرًا مرة أخرى!

6 إعجابات

لقد أرسلت للتو بريدًا إلكترونيًا إلى BigBlueButton لمعرفة ما إذا كان يمكن إدراج هذه التكاملات على موقعهم الإلكتروني BigBlueButton LMS Integrations | Designed for Schools | BigBlueButton.

إذا كان لدي أي تحديثات، سأشاركها هنا.

إعجابَين (2)

شكرًا لك على الملاحظات @core (والتغطية الإعلامية)، لقد قمت بتطبيق بعض العناصر المدروسة التي اقترحتها في منشورك.

أصبح إنشاء كلمة المرور عشوائيًا الآن ومخفيًا عن المستخدم. (يمكن للمستخدمين المتقدمين تعديل النص المنسق وتغيير كلمات المرور إذا رغبوا في ذلك.) كما قمت بتحديث المنشور الأصلي بإضافة لقطة شاشة ووصف لكيفية الوصول إلى الزر في قائمة الخيارات.

لن أقوم بإجراء هذا التغيير، فأنا أعلم أن iframe مصطلح تقني، لكن في هذه الحالة لا أعتقد أن تغييره مفيد، بل أجد أن استخدام “داخل المنشور” سيكون أكثر إرباكًا. ومع ذلك… يمكنك تخصيص هذه التسمية في نسختك الخاصة، تحت “تخصيص” > “النص”، مع تصفية “bbb.modal”. مثلما هو موضح في لقطة الشاشة التالية:

5 إعجابات

حلولك تبدو مثالية بالنسبة لي. البساطة حقًا تُحدث فرقًا. وشكرًا لك على وقتك :slight_smile:

هذا حل وسط رائع. شكرًا لك!

إعجاب واحد (1)

@pmusaraj لم يتم الرد حتى الآن بشأن إضافة إضافة discourse إلى موقع BBB. سأحاول حظي في قائمة البريد الخاصة بهم في الأيام القادمة.

إعجاب واحد (1)

@pmusaraj تم رفض طلبي للانضمام إلى قائمة البريد الإلكتروني (لا أعرف السبب). لذا، لدي خيارات محدودة للتواصل معهم بشأن التكامل. فكرت أيضًا في فتح مشكلة على GitHub، لكن ذلك قد يكون مزعجًا بعض الشيء لأن الأمر لا يتعلق ببنية كود BBB.


تعديل: يبدو أن هذا كان يجب أن يُنشر في قائمة مستخدمين BigBlueButton. هذا هو السبب في أنني تم رفض طلبي على الأرجح.

إعجاب واحد (1)

هل اتبعت التعليمات في نص الوصف؟ لقد قمت بتدوين تكاملك، وأنا أضيفه إلى قائمة بالأمثلة المماثلة التي شاهدتها. خطتي هي إنشاء صفحة مجتمعية في التوثيق حيث يمكننا مشاركة الأشياء التي قمنا بصنعها.

إعجابَين (2)

لقد فاتني ذلك. آسف. لكن من الرائع أن نرى أنه وصل إلى المساهمين على أي حال! شكرًا لك على التحقق!

إضافة رائعة، شكرًا لك!
كيف يمكنني فتح اجتماع موجود (تم تخطيطه بواسطة أداة أخرى)؟ كيف أعرف معرف الاجتماع؟ مهما أدخلت في هذا الحقل، يتم دائمًا بدء اجتماع جديد.

يبدو هذا أكثر كسؤال موجه إلى BBB، لكن نظريًا، إذا استخدمت نفس معرف الغرفة كما في الأداة الأخرى، فستتم تحميل نفس الاجتماع.

إعجاب واحد (1)

لقد قمت بذلك من قبل، لكنه كان معقدًا بعض الشيء. يجب عليك استخدام واجهة برمجة تطبيقات BBB.

سأحاول إعداد دليل حول هذا الأمر خلال بضعة أيام.

المشكلة الرئيسية ربما تكمن في أن الأداة الأكثر استخدامًا (Greenlight) لا تعرض حقًا هذه المعلومات على المستوى المنخفض.

3 إعجابات

شكرًا لك، سيكون ذلك رائعًا!

إعجاب واحد (1)

“إضافة BigBlueButton” إلى مؤتمر موجود بالفعل

تقوم هذه الإضافة بإنشاء غرفة تلقائيًا لك عند النقر على “إضافة BigBlueButton”. ولكن قد ترغب في استخدام غرفة موجودة مسبقًا بدلاً من ذلك (تم إنشاؤها قبل أن تحصل على هذه الإضافة). إليك مثالان يوضحان سبب رغبتك في ذلك.

  • لقد أنشأت غرفة بالفعل - (باستخدام Greenlight، على سبيل المثال) وتريد السماح للناس بالانضمام أيضًا من خلال Discourse

  • السماح للناس بالانضمام عبر رابط أيضًا - عند استخدام Greenlight (واجهة المستخدم الأمامية الافتراضية)، يتم إنشاء رابط قابل للمشاركة للانضمام إلى المكالمة. وبهذه الطريقة يمكن للناس الانضمام من خلال Discourse أو عبر الرابط.

:warning: هذه عملية غازية إلى حد كبير، لذا تأكد تمامًا من فهمك لما تفعله

التعليمات

على الأرجح أن واجهة المستخدم الأمامية التي تستخدمها (Greenlight؟) لا تمنحك معلومات منخفضة المستوى مثل معرف الاجتماع أو attendeePW (وهو مختلف عن رمز الوصول إلى الغرفة - أعلم، الأمر محير). لذا، للحصول على هذه المعلومات، سنضطر إلى استخدام واجهة برمجة التطبيقات (API) الخاصة بـ BBB لعرض جميع معلومات الاجتماعات.

ملاحظة: قد تكون هناك طريقة أفضل للقيام بذلك، لكنني لست على علم بها. فقط أخبرني إذا كان الأمر كذلك.

المتطلبات الأساسية

  • الوصول إلى خادم BBB عبر طرفية (عن طريق SSH، على سبيل المثال)
  • معرفة أساسية بلغة بايثون (للتحقق من كودي)
  • فهم مخاطر الأمان لاستخدام واجهة برمجة التطبيقات الخاصة بـ BBB

1. الحصول على سر واجهة برمجة التطبيقات (API secret) ونقطة النهاية (API endpoint)

قم بالدخول إلى قشرة (Shell) (عبر SSH) حيث يعمل خادم BBB وقم بتشغيل الأمر التالي:

sudo bbb-conf --secret

ستظهر لك URL و Secret. ستكونان مفيدتين لاحقًا.

:warning: أي شخص يمتلك هذا السر يمكنه القيام بأشياء سيئة جدًا بخدمة خادمك! لذا احتفظ به بأمان.

2. إنشاء سكريبت Python3 للحصول على معلومات الاجتماع

فيما يلي سكريبت بسيط بلغة بايثون 3 يأخذ عنوان URL والسر الخاصين بك (المُعطى في الخطوة 1) ويولد واجهة برمجة التطبيقات للحصول على معلومات الاجتماعات:

:warning: لا تقم بلصق سكريبتات عشوائية تجدها على الإنترنت (بما في ذلك هذا)! تحقق منها لترَ ما إذا كانت منطقية، وإذا لزم الأمر راجع توثيق واجهة برمجة التطبيقات.

import hashlib
from urllib.parse import urljoin

# أدخل متغيراتي هنا
base_url = "PASTE_HERE_YOUR_URL" + "api/"
secret = "PASTE_HERE_YOUR_SECRET"

# توليد رمز التحقق الأمني
plaintext = "getMeetings" + secret
sha1 = hashlib.sha1()
sha1.update(plaintext.encode('utf-8'))
checksum = sha1.hexdigest()

# الحصول على عنوان URL لواجهة برمجة التطبيقات لعرض معلومات الاجتماعات
url = urljoin(base_url, "getMeetings?checksum=" + checksum)
print("افتح عنوان URL التالي لعرض معلومات الاجتماع")
print(url)

استبدل PASTE_HERE_YOUR_URL بعنوان URL الخاص بواجهة برمجة التطبيقات الذي حصلت عليه سابقًا، واستبدل PASTE_HERE_YOUR_SECRET بالسر، ثم قم بتشغيل السكريبت.

بعد ذلك، يجب أن يطبع عنوان URL مثل https://example.com/bigbluebutton/api/getMeetings?checksum=20e928e8928e8e9f919928e829d999df82882818

:warning: أي شخص يمتلك هذا العنوان URL يمكنه القيام بأشياء سيئة!

يمكنهم رؤية جميع الاجتماعات الجارية، وعدد المستخدمين في كل منها، بالإضافة إلى الحصول على بيانات الاعتماد للانضمام إليها.

3. فتح عنوان URL

افتحه في وضع التصفح الخاص للتأكد من عدم تخزين عنوان URL في سجل المتصفح بسبب التحذير المذكور أعلاه.

ابدأ الاجتماع الذي تنوي إضافته وقم بتحديث الصفحة التي تحتوي على عنوان URL الخاص بواجهة برمجة التطبيقات. ثم يجب أن ترى شيئًا مثل:

<response>
<returncode>SUCCESS</returncode>
<meetings>
<meeting>
<meetingName>اسم غرفتك</meetingName>
<meetingID>XXXXXXXXXXXXXXXXXXXXXXXXXXX</meetingID>
...
<attendeePW>YYYYYYY</attendeePW>
<moderatorPW>ZZZZZZZ</moderatorPW>
...

ابحث ببساطة عن الأسطر أسفل الاجتماع الذي تريده واستخرج:

  • meetingID
  • attendeePW
  • moderatorPW

بعد الحصول على هذه المعلومات، امسح جميع الملفات وأغلق جميع التبويبات التي تحتوي على وصول إلى واجهة برمجة التطبيقات.
لا نريد أي حوادث أمنية!

4. “إضافة BigBlueButton” إلى منشورك

بدلاً من الإضافة عبر واجهة “إضافة BigBlueButton” العادية، ما عليك سوى لصق التالي في منشورك:

[wrap=discourse-bbb meetingID="XXXXX" attendeePW="YYYYY" moderatorPW="ZZZZZ"  mobileIframe="false" desktopIframe="false"][/wrap] 

واستبدل القيم بما حصلت عليه في الخطوة 3:

  • XXXXX بمحتوى meetingID
  • YYYYY بمحتوى attendeePW
  • ZZZZZZ بمحتوى moderatorPW

ثم احفظ المنشور.

6. يجب أن يعمل الآن \o/

يجب أن تكون قادرًا الآن على الانضمام من خلال Discourse ومن خلال واجهة المستخدم الأمامية الأخرى التي كنت تستخدمها. إذا كانت Greenlight، يمكنك أيضًا الانضمام عبر الرابط الآن.}

3 إعجابات

مرحباً،

عمل رائع مع الإضافة، نحن نعشقها حقاً!

لاحظت بعض الأمور التي لا تزال بحاجة إلى تحسين، لذا قمت بتوثيقها هنا:

  1. مشاركة الشاشة لا تعمل
    (لا تظهر نافذة منبثقة لطلب الأذونات، وتفشل العملية ببساطة)

  2. عند تضمين الجلسة عبر iframe، لا تتوفر لديك إمكانية تسجيل الاجتماع

تساءلت عما إذا كان هناك مكان للإبلاغ عن هذه المشكلات؟ يبدو أن مستودع GitHub معطل فيه خاصية المشكلات

مشاركة الشاشة تعمل بالفعل، فنحن نستخدمها على نطاق واسع. لكن كروم لا يفضل مشاركة الشاشة داخل إطار مضمن (iFrame) لأسباب تتعلق بالخصوصية والأمان.

لا يحب كروم مشاركة الشاشة داخل إطار مضمن (iFrame) لأسباب تتعلق بالخصوصية والأمان.

أظن أن هذا هو السبب في أنه لا يعمل في فايرفوكس أيضًا..