إصلاح مشكلة انقطاع تسجيل بروتوكول SIP في BigBlueButton FreeSWITCH: دليل تشخيصي عملي

قد يتم تحميل اجتماع BigBlueButton بشكل طبيعي بينما يظل المشاركون عالقين عند محاولة الانضمام إلى الصوت. قد يرى المسؤولون رسائل مثل "انتهت مهلة تسجيل SIP" أو "لم يتم تسجيل FreeSWITCH" أو خطأ في اتصال الصوت في سجل النظام أو أداة المراقبة. لا تشير هذه الرسائل دائمًا إلى نفس العطل. في بيئة BigBlueButton القياسية، قد يكون سبب فشل اتصال الصوت هو توقف عملية FreeSWITCH، أو حظر اتصال SIP أو Event Socket، أو عنوان خاطئ خلف NAT، أو حظر وسائط WebRTC. أما انتهاء مهلة التسجيل الفعلي لمزود الخدمة أو بوابة PBX فهو حالة منفصلة.

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

أولاً، حدد ما المقصود بـ "انقضاء مهلة التسجيل".

تستخدم حزمة الصوت الحالية في BigBlueButton هذه bbb-webrtc-sfuالخدمة لتنسيق الوسائط مع FreeSWITCH. توضح وثائق BigBlueButton كيفية اتصال وحدة SFU بخدمة SIP وطبقة مقابس الأحداث (ESL) الخاصة بـ FreeSWITCH. يختلف هذا عن قيام FreeSWITCH بتسجيل بوابة صادرة لمزود SIP خارجي.

  • مشكلة في اتصال الصوت في BigBlueButton: لا يستطيع المستخدمون الانضمام إلى الصوت، أو أن FreeSWITCH غير متاح، أو أن وحدة التحكم في النظام (SFU) تُبلغ عن انتهاء المهلة. يُرجى التحقق من FreeSWITCH وESL وعنوان SIP والمنفذ المُكوّنين وNAT وبروتوكول WebRTC.
  • مشكلة في تسجيل البوابة الخارجية: يُبلغ FreeSWITCH عن بوابة مُكوّنة على أنها معطلة أو غير مسجلة. تحقق من اسم مضيف المزوّد، وبيانات الاعتماد، وبروتوكول النقل، ومسار جدار الحماية، وحالة حساب المزوّد.

إذا لم تكن متأكدًا من الحالة التي تنطبق، فاحفظ نص الخطأ كاملاً واسم الخدمة التي سجلته. لا يُعدّ ظهور "انتهت مهلة التسجيل" وحده مبررًا كافيًا لتغيير ملف تعريف SIP.

1. قم بتشغيل فحص تكوين BigBlueButton

قم بتشغيل التشخيص الموصى به من قبل BigBlueButton على الخادم:

sudo bbb-conf --check

راجع جميع المخرجات، وخاصة القسم المعنون بـ "التحذيرات" Potential problems. يتحقق هذا القسم من تشغيل العمليات المطلوبة ويُبلغ عن مشاكل التكوين الشائعة. قد يشير التحذير إلى تخصيص مُتعمّد، لذا قارنه بإعداداتك بدلاً من تطبيق كل حل مُقترح تلقائيًا.

ثم افحص حالة الخدمة:

sudo bbb-conf --status
sudo systemctl status freeswitch --no-pager
sudo systemctl status bbb-webrtc-sfu --no-pager

في الإصدارات القديمة من BigBlueButton، قد تختلف أسماء الخدمات أو بنية المكونات. تأكد من الإصدار المُثبّت لديك، sudo bbb-conf --versionواستخدم الوثائق الخاصة به. تشير المسارات والأمثلة أدناه بشكل أساسي إلى وثائق BigBlueButton 4.0، والتي لا تزال قيد التطوير.

2. تأكد من أن برنامج FreeSWITCH يعمل ويقبل الاتصالات المحلية

إذا freeswitch.serviceكان النظام غير نشط، أو فشل، أو يُعاد تشغيله بشكل متكرر، فاقرأ سجل النظام قبل تعديل الإعدادات:

sudo journalctl -u freeswitch.service -b --no-pager -n 100

ابحث عن حالات فشل الربط، وأخطاء تحميل الوحدات، ومشاكل الأذونات، أو أخطاء قاعدة البيانات بالقرب من آخر عملية تشغيل. يوثق دليل استكشاف الأخطاء وإصلاحها من BigBlueButton حالات محددة يتعذر فيها على FreeSWITCH الربط بـ IPv4 أو بمنفذ ESL 8021. كما يُشير إلى تلف قاعدة بيانات FreeSWITCH كسبب محتمل بعد إعادة التشغيل، ولكنه يوصي بتنظيف قاعدة البيانات فقط عند وجود أخطاء قاعدة البيانات المقابلة.

تحقق من العناوين والمنافذ التي تستمع:

sudo ss -luntp | grep -E ':(5060|5066|8021)\b'

يعتمد مُستمع SIP المُحدد على إصدار BigBlueButton وإعداداته. يشير عدم وجود مُستمع إلى فشل FreeSWITCH في بدء تشغيل هذا الملف التعريفي أو ربطه بعنوان مختلف. المنفذ 8021 هو واجهة التحكم المحلية لـ ESL في التثبيت المُجمّع النموذجي؛ ويجب أن يبقى مُقيدًا عادةً على المضيف المحلي أو شبكة خاصة موثوقة. لا تُعرّضه للإنترنت العام.

إذا كان FreeSWITCH مُفعّلاً، يمكنك فحص حالة ملف تعريف SIP باستخدام واجهة سطر الأوامر الخاصة به. الأمر القياسي لـ FreeSWITCH هو `<اسم sofia statusملف التعريف>`؛ استخدم أسماء ملفات التعريف التي يعرضها خادمك بدلاً من افتراض أن جميع عمليات النشر تستخدم نفس الأسماء. RUNNINGيُشير ملف التعريف المُعلّم إلى بدء تشغيل ملف التعريف، ولكنه لا يُثبت أن المتصفحات البعيدة يُمكنها الوصول إلى مسار وسائط الصوت.

3. قم بمطابقة الخطأ مع مسار الشبكة المعطل

يُفرّق دليل جدار الحماية الخاص بـ BigBlueButton بين فشل إشارات WebSocket وفشل ICE/media. هذا التمييز يُضيّق نطاق البحث.

  • خطأ WebRTC رقم 1002: تعذر على المتصفح إنشاء اتصال WebSocket. تحقق مما إذا كان FreeSWITCH قيد التشغيل، ومسار SIP عبر WebSocket، وإعدادات الخادم الوكيل العكسي، وأي قواعد جدار حماية تؤثر على مسار الإشارة هذا.
  • خطأ WebRTC رقم 1007: تم الاتصال عبر WebSocket، لكن المتصفح لم يتمكن من إنشاء اتصال باستخدام عناوين IP المُعادة. يُرجى التحقق من عنوان IP المُعلن عنه وإمكانية الوصول ثنائي الاتجاه عبر UDP.

بالنسبة لإعدادات جدار الحماية الافتراضية لـ BigBlueButton، يُدرج الدليل الرسمي منافذ UDP 16384–32768للوسائط في الوقت الفعلي. اسمح بالنطاق المطلوب في كلٍ من مجموعة أمان السحابة أو جدار الحماية المحيطي وجدار حماية المضيف. اجعل القاعدة محصورة بالخادم وحركة المرور المطلوبة؛ ففتح منافذ SIP غير ذات الصلة على نطاق واسع لا يُغني عن التكوين الصحيح لـ NAT وWebRTC.

على سبيل المثال، إذا كنت تستخدم UFW وتأكدت من أن هذا النطاق مناسب لتثبيتك، فقم بفحص القواعد الحالية وأضف نطاق الوسائط:

sudo ufw status numbered
sudo ufw allow 16384:32768/udp

يجب أن تسمح جدران الحماية السحابية ومجموعات أمان مزود الخدمة بمرور البيانات. لا يمكن لقاعدة على مستوى المضيف تجاوز جدار حماية محظور في الشبكة الرئيسية. إذا فشل اتصال المستخدمين على شبكة مقيدة فقط بينما يتصل مستخدمون آخرون، فابحث في مسار الشبكة أو إعدادات TURN الخاصة بهم بدلاً من إعادة تشغيل FreeSWITCH بشكل متكرر.

4. تحقق من NAT وعناوين IP المعلن عنها

قد يمتلك خادمٌ خلف جدار حماية NAT مُستمعًا محليًا صحيحًا، ومع ذلك يُعلن عن عنوان خاص غير قابل للوصول للمتصفحات. تأكد من تطابق عنوان IP الخارجي، وإعادة توجيه المنفذ، وإعدادات FreeSWITCH. يستخدم دليل جدار الحماية BigBlueButton 4.0 /opt/freeswitch/conf/vars.xmlمثال /opt/freeswitch/conf/sip_profiles/external.xmlNAT الخاص به، ويشير إلى /etc/bigbluebutton/bbb-webrtc-sfu/production.ymlتجاوزات SFU ذات الصلة.

لا تنسخ عنوان IP كمثال، ولا تفترض أن عنوان IP العام يجب أن يُدرج في كل حقل. في إعدادات NAT، قد يختلف العنوان الذي يربطه FreeSWITCH محليًا عن العنوان العام الذي يُعلنه. طبّق التعليمات الخاصة بإصدارك وفقًا لبنية شبكتك، ثم تحقق من توجيه جدار الحماية ذي الصلة. إذا تغيّر عنوان الخادم الخارجي مؤخرًا، فتحقق من نظام أسماء النطاقات (DNS) وأي قيم عناوين مُخزّنة في إعدادات BigBlueButton.

عندما يحتاج خادم إلى الوصول إلى اسم مضيفه العام، قد يكون استخدام تقنية NAT الحلقية أو حل اسم المضيف المحلي أمرًا مهمًا. يناقش دليل جدار الحماية الرسمي ربط اسم المضيف العام بعنوان جدار الحماية في /etc/hostsهذه الحالة. اختبر هذا الحل فقط عندما يشير نمط الفشل إلى استخدام عنوان المضيف الخارجي؛ فهو ليس حلاً شاملاً لمشاكل مهلة التسجيل.

5. إذا كان السجل يشير إلى بوابة SIP خارجية

إذا كان العنصر المعطل هو بوابة مزود خدمة مُسماة بدلاً من مسار الصوت الداخلي لـ BigBlueButton، فافحص حالة البوابة بشكل منفصل. راجع وثائق FreeSWITCH sofia status gateway <name>الخاصة بحالة البوابة sofia statusوالملف الشخصي المُحمّل وحالة البوابة. تأكد من أن اسم مضيف المزوّد يُحلّل من الخادم، وأن اسم مستخدم وكلمة مرور SIP المُكوّنين متطابقان، وأن وسيلة النقل والمنفذ المُختارين يتطابقان مع متطلبات المزوّد، وأن قواعد جدار الحماية الصادرة تسمح بحركة مرور الإشارات.

لا تقم بإعادة ضبط ملفات تعريف SIP المدمجة في BigBlueButton لإصلاح حساب مزود الخدمة. تجنب مشاركة سجلات SIP الكاملة علنًا، فقد تحتوي على أرقام هواتف أو عناوين IP أو أسماء حسابات أو تفاصيل متعلقة بالمصادقة. قم بإخفاء القيم الحساسة قبل طلب مراجعة السجلات من مزود الخدمة أو المسؤول.

6. قم بتطبيق تغيير مُستهدف وأعد التشغيل مرة أخرى

بعد تصحيح مشكلة مؤكدة في الخدمة أو العنوان أو جدار الحماية، أعد تشغيل BigBlueButton باستخدام الأمر المدعوم منه:

sudo bbb-conf --restart

استخدم هذا الحل sudo bbb-conf --cleanفقط عندما تتطلبه وثائق الإصدار أو الأدلة التشخيصية. فهو ليس حلاً عاماً لكل حالات انتهاء مهلة بروتوكول SIP. كذلك، تجنب حذف ملفات قاعدة بيانات FreeSWITCH إلا إذا ظهرت أعراض تلف قاعدة البيانات الموثقة؛ واحتفظ بسجلات النظام ونسخ احتياطية من الإعدادات قبل أي عملية إصلاح تؤدي إلى حذف البيانات.

تحقق من الإصلاح

أعد تشغيل sudo bbb-conf --checkالبرنامج وتأكد من bbb-webrtc-sfuسلامة FreeSWITCH. انضم إلى اجتماع تجريبي من متصفح خارج شبكة الخادم، واختر الميكروفون أو الصوت للاستماع فقط، وتأكد من اكتمال الاتصال. في حال إجراء تغييرات على NAT أو جدار الحماية، اختبر الاتصال من شبكة واحدة على الأقل سبق أن فشل فيها. لا يُعدّ ظهور حالة الخدمة باللون الأخضر دليلاً كافياً على إمكانية مرور وسائط UDP عبر الشبكة.

إذا استمرت مهلة الاتصال، فاجمع إصدار BigBlueButton، ونص الخطأ الكامل، bbb-conf --checkوالمخرجات ذات الصلة، وحالة الخدمة، وإدخالات سجلات FreeSWITCH وSFU الأخيرة، وبنية الشبكة. احجب البيانات السرية وبيانات المستخدم العامة. تساعد هذه الأدلة في التمييز بين حالة المستمع المتوقف، ومهلة ESL، وعنوان مُعلن عنه خاطئ، ونطاق وسائط محظور، وفشل تسجيل بوابة SIP حقيقي.

المراجع الرسمية

تمت مراجعة الوثائق في 6 أكتوبر 2026. تشير وثائق BigBlueButton 4.0 إلى أن هذا الإصدار قيد التطوير؛ تأكد من المسارات والأوامر مقابل الإصدار المثبت على خادمك.

اترك تعليقاً

كيفية تقييد تواريخ انتهاء صلاحية الروابط العامة في خادم ownCloud

كيفية تقييد تواريخ انتهاء صلاحية الروابط العامة في خادم ownCloud

حدد تاريخ انتهاء صلاحية أقصى للروابط العامة لخادم ownCloud، وافهم المشاركات التي يؤثر عليها، وتحقق من السياسة دون إغفال الروابط القديمة.

كيفية إعداد مزامنة قائمة العناوين العامة (GAL) في Zimbra والتحقق من أنها تعمل

كيفية إعداد مزامنة قائمة العناوين العامة (GAL) في Zimbra والتحقق من أنها تعمل

قم بتكوين المزامنة التلقائية لـ Zimbra GAL، واضبط فاصل الاستطلاع، وقم بفرض مزامنة اختبارية، وتحقق من الطوابع الزمنية، وقم باستكشاف أخطاء جهات اتصال LDAP الداخلية أو الخارجية القديمة وإصلاحها.

كيفية تكوين مصادقة LDAP في ownCloud Infinite Scale

كيفية تكوين مصادقة LDAP في ownCloud Infinite Scale

قم بتكوين تسجيل الدخول المدعوم بـ LDAP لـ ownCloud Infinite Scale، وقم بتعيين المستخدمين والمجموعات، واختر OIDC المدمج أو الخارجي، وقم بحماية بيانات الاعتماد، وتحقق من المصادقة بأمان.

كيفية الترقية من ownCloud 10 Classic إلى ownCloud Infinite Scale

كيفية الترقية من ownCloud 10 Classic إلى ownCloud Infinite Scale

خطط لعملية نقل البيانات من ownCloud Classic 10 إلى Infinite Scale باستخدام تطبيق migrate-to-ocis المدعوم. تعرّف على ما يتم نقله وما لا يتم نقله، ومتطلبات LDAP، والأوامر، وفحوصات الانتقال.

كيفية إعداد قواعد SpamAssassin المخصصة في Zimbra (بأمان)

كيفية إعداد قواعد SpamAssassin المخصصة في Zimbra (بأمان)

تعرف على مكان تحميل Zimbra لقواعد SpamAssassin المخصصة، وكيفية كتابة قاعدة .cf والتحقق من صحتها، وإعادة تشغيل Amavis، واختبار رؤوس الرسائل، والتراجع بأمان.

كيفية نسخ واستعادة صناديق البريد الفردية في Zimbra CE

كيفية نسخ واستعادة صناديق البريد الفردية في Zimbra CE

قم بعمل نسخة احتياطية واستعادة صندوق بريد Zimbra CE فردي باستخدام zmmailbox. قم بتصدير أرشيف ZIP مع البيانات الوصفية، وتحقق منه، واختبر الاستعادة بأمان في حساب تجريبي.

كيفية تكوين حصص التخزين للمستخدمين في ownCloud oCIS

كيفية تكوين حصص التخزين للمستخدمين في ownCloud oCIS

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

إصلاح مشكلة انقطاع تسجيل بروتوكول SIP في BigBlueButton FreeSWITCH: دليل تشخيصي عملي

إصلاح مشكلة انقطاع تسجيل بروتوكول SIP في BigBlueButton FreeSWITCH: دليل تشخيصي عملي

قم بتشخيص حالات انقطاع تسجيل SIP في BigBlueButton FreeSWITCH عن طريق التحقق من حالة الخدمة، ومستمعي SIP وESL، وعناوين NAT، وقواعد جدار الحماية، والسجلات.

كيفية إصلاح خطأ "تم رفض الاتصال" في تطبيق ownCloud للهواتف المحمولة

كيفية إصلاح خطأ "تم رفض الاتصال" في تطبيق ownCloud للهواتف المحمولة

قم بإصلاح أخطاء رفض اتصال تطبيق ownCloud للهواتف المحمولة عن طريق التحقق من عنوان URL للخادم، ومنفذ HTTPS، وخادم الويب، وجدار الحماية، والوكيل، وTLS، والنطاقات الموثوقة.

كيفية تقييد تسجيل المستخدمين على خادم مصفوفة مُستضاف ذاتيًا

كيفية تقييد تسجيل المستخدمين على خادم مصفوفة مُستضاف ذاتيًا

قارن بين طرق التحكم في حسابات Matrix الجديدة على Synapse، بدءًا من تعطيل التسجيل العام وحتى إصدار رموز محدودة الاستخدام، مع أمثلة على التكوين والتحقق.