دليل عمليات بث الخلايا
تقوم OmniLCS بتنفيذ مركز بث الخلايا (CBC) الذي يدعم شبكات 2G عبر CBSP، وشبكات 3G UTRAN عبر SABP، وشبكات 4G LTE عبر SBC-AP. يمكن لـ CBC إرسال وتحديث وإيقاف رسائل البث عبر جميع عناصر شبكة الوصول الراديوي المتصلة في نفس الوقت.

الهيكلية
عمليات CBSP لشبكة 2G
نموذج الاتصال
يستخدم CBSP نقل TCP وفقًا لمعيار 3GPP TS 48.049. يستمع CBC على منفذ TCP 48049 (مسجل لدى IANA) وتقوم BSCs بإنشاء اتصالات واردة.
- كل اتصال مقبول ينشئ معالج اتصال تحت DynamicSupervisor
- يتم تتبع الاتصالات في جدول ETS
:cbsp_connections - يتم بث حالة الاتصال عبر PubSub إلى واجهة LiveView
إبقاء الاتصال نشط
يقوم CBC بتنفيذ إبقاء الاتصال نشط بشكل استباقي:
| المعلمة | القيمة الافتراضية | الوصف |
|---|---|---|
| فترة إبقاء الاتصال نشط | 30 ثانية | كم مرة يرسل CBC KEEP-ALIVE إلى كل نظير |
| مهلة إبقاء الاتصال نشط | 10 ثواني | الوقت الذي يجب الانتظار فيه لاستكمال KEEP-ALIVE قبل وضع علامة على أنه غير صحي |
يرسل CBC رسائل KEEP-ALIVE الاستباقية ويستجيب لرسائل KEEP-ALIVE التي يبدأها BSCs مع KEEP-ALIVE COMPLETE.
أنواع رسائل CBSP
| الرسالة | الاتجاه | الرمز | الوصف |
|---|---|---|---|
| WRITE-REPLACE | CBC -> BSC | 0x01 | إرسال أو تحديث رسالة بث |
| WRITE-REPLACE COMPLETE | BSC -> CBC | 0x02 | تم قبول البث من قبل BSC |
| WRITE-REPLACE FAILURE | BSC -> CBC | 0x03 | تم رفض البث من قبل BSC |
| KILL | CBC -> BSC | 0x04 | إيقاف بث |
| KILL COMPLETE | BSC -> CBC | 0x05 | تم إيقاف البث |
| KILL FAILURE | BSC -> CBC | 0x06 | فشل في إيقاف البث |
| LOAD-QUERY | CBC -> BSC | 0x07 | استعلام عن تحميل الموارد الراديوية |
| LOAD-QUERY COMPLETE | BSC -> CBC | 0x08 | تم إرجاع معلومات التحميل |
| LOAD-QUERY FAILURE | BSC -> CBC | 0x09 | فشل استعلام التحميل |
| STATUS-QUERY | CBC -> BSC | 0x0A | استعلام عن حالة تسليم البث |
| STATUS-QUERY COMPLETE | BSC -> CBC | 0x0B | تم إرجاع معلومات الحالة |
| STATUS-QUERY FAILURE | BSC -> CBC | 0x0C | فشل استعلام الحالة |
| RESET | CBC -> BSC | 0x10 | إعادة تعيين حالة البث على BSC |
| RESET COMPLETE | BSC -> CBC | 0x11 | تم الاعتراف بإعادة التعيين |
| RESET FAILURE | BSC -> CBC | 0x12 | فشل في إعادة التعيين |
| RESTART | BSC -> CBC | 0x13 | تم إعادة تشغيل BSC (معلوماتية) |
| FAILURE | BSC -> CBC | 0x14 | إشارة فشل BSC |
| ERROR INDICATION | Either | 0x15 | خطأ في البروتوكول |
| KEEP-ALIVE | Either | 0x16 | إشراف على الاتصال |
| KEEP-ALIVE COMPLETE | Either | 0x17 | استجابة إبقاء الاتصال نشط |
تأطير رسالة CBSP
كل رسالة CBSP على السلك هي:
+----------+----------+------+
| Length | Type | IEs |
| (3 bytes)| (1 byte) | ... |
+----------+----------+------+
يغطي حقل الطول المكون من 3 بايتات بايت النوع وجميع IEs (يستثني بايتات الطول الثلاثة نفسها).
تنسيقات قائمة الخلايا
تحدد Cell List IE الخلايا المستهدفة من قبل البث. التنسيقات المدعومة:
| المميز | القيمة | التنسيق | الوصف |
|---|---|---|---|
| CGI | 0x00 | MCC+MNC+LAC+CI | الهوية العالمية الكاملة للخلايا |
| LAC+CI | 0x01 | PLMN+LAC+CI | رمز منطقة الموقع + هوية ��لخلية |
| CI | 0x02 | CI فقط | هوية الخلية فقط |
| LAI | 0x04 | MCC+MNC+LAC | هوية منطقة الموقع |
| LAC | 0x05 | LAC فقط | رمز منطقة الموقع |
| All in BSC | 0x06 | (لا خلايا) | جميع الخلايا المدارة بواسطة BSC |
مؤشر القناة
| القيمة | الاسم | الوصف |
|---|---|---|
| 0 | CBCH الأساسي | قناة بث الخلايا الأساسية |
| 1 | CBCH الممتد | قناة بث الخلايا الممتدة (سعة أعلى) |
عمليات SABP لشبكة 3G
يوفر بروتوكول بث منطقة الخدمة (SABP) واجهة Iu-BC بين CBC و RNCs في شبكة 3G UTRAN، وفقًا لمعيار 3GPP TS 25.419. يستخدم SABP ترميز ASN.1 PER المحاذي عبر TCP.
نموذج الاتصال
يستخدم SABP نقل TCP وفقًا لمعيار TS 25.414 §7.1.3.3. المنفذ المسجل لدى IANA لـ SABP هو 3452. وفقًا لمعيار TS 25.419 §5، يقوم CBC ببدء الاتصالات للعمليات العادية (Write-Replace، Kill، إلخ) ويبدأ RNC الاتصالات فقط لإشارات الفشل/إعادة التشغيل. يستخدم كلا الجانبين المنفذ الوجهة 3452 عند إنشاء اتصالات جديدة.
- كل اتصال TCP مقبول ينشئ معالج اتصال تحت DynamicSupervisor الخاص باتصال SABP
- يتم تتبع الاتصالات في جدول ETS
:sabp_connections - يتم بث تغييرات حالة الاتصال عبر PubSub إلى واجهة LiveView
- تم تمكين خيار مقبس إبقاء الاتصال نشط TCP حيث لا يحتوي SABP على آلية إبقاء الاتصال نشط على مستوى البروتوكول
تأطير رسالة SABP
تؤطر رسائل SABP عبر TCP مع بادئة طول مكونة من 4 بايتات بنظام big-endian:
+-------------------+---------------------------+
| Length (4 bytes) | ASN.1 PER Encoded PDU |
| big-endian uint32 | ... |
+-------------------+---------------------------+
يحدد حقل الطول عدد البايتات في الحمولة المشفرة بـ ASN.1 PER التي تليها. قد تصل رسائل متعددة في جزء TCP واحد؛ يقوم معالج الاتصال بتخزينها وإعادة تجميعها حسب الحاجة.
إجراءات SABP
| الإجراء | الرمز | الفئة | الاتجاه | الوصف |
|---|---|---|---|---|
| Write-Replace | 0 | Class 1 | CBC -> RNC | إرسال أو تحديث رسالة بث |
| Kill | 1 | Class 1 | CBC -> RNC | إيقاف بث نشط |
| Load-Status-Enquiry | 2 | Class 1 | CBC -> RNC | استعلام عن تحميل الموارد الراديوية |
| Message-Status-Query | 3 | Class 1 | CBC -> RNC | استعلام عن حالة تسليم البث |
| Reset | 4 | Class 1 | CBC -> RNC | إعادة تعيين حالة البث على RNC |
| Restart-Indication | 5 | Class 2 | RNC -> CBC | تم إعادة تشغيل RNC، إعادة إرسال البث النشط |
| Failure-Indication | 6 | Class 2 | RNC -> CBC | إشارة فشل RNC |
| Error-Indication | 7 | Class 2 | Either | الإبلاغ عن خطأ في البروتوكول |
عناصر المعلومات في SABP
يستخدم بروتوكول SABP عناصر المعلومات (IEs) المعرفة بـ ASN.1. العناصر الرئيسية المستخدمة في Write-Replace:
| IE | ID | الأهمية | النوع | الوصف |
|---|---|---|---|---|
| Broadcast-Message-Content | 0 | Reject | Binary | محتوى رسالة CBS المشفرة |
| Category | 1 | Ignore | Enum | أولوية الرسالة (عالية، عادية، خلفية، افتراضية) |
| Cause | 2 | Ignore | Integer | قيمة السبب لإشارات الفشل/الخطأ |
| Data-Coding-Scheme | 4 | Ignore | 8-bit | كيفية ترميز محتوى الرسالة (مثل 0x0F لـ GSM 7-bit) |
| Message-Identifier | 6 | Reject | 16-bit | معرف رسالة CB |
| New-Serial-Number | 7 | Reject | 16-bit | الرقم التسلسلي للبث الجديد/المحدث |
| Number-of-Broadcasts-Requested | 9 | Reject | Integer | إجمالي عدد البث (0..65535) |
| Old-Serial-Number | 10 | Ignore | 16-bit | الرقم التسلسلي للرسالة التي يتم استبدالها (اختياري) |
| Repetition-Period | 13 | Reject | Integer | الثواني بين التكرارات (1..4096) |
| Service-Areas-List | 15 | Reject | List | المناطق المستهدفة (قائمة SAIs) |
معرف منطقة الخدمة (SAI)
يستهدف SABP البث إلى مناطق خدمة محددة يتم التعرف عليها بواسطة SAIs. يتكون كل SAI من:
| الحقل | الحجم | الوصف |
|---|---|---|
| هوية PLMN | 3 بايتات | مشفرة بـ BCD MCC+MNC و��قًا لمعيار 3GPP TS 24.008 |
| LAC | 2 بايتات | رمز منطقة الموقع |
| SAC | 2 بايتات | رمز منطقة الخدمة |
فئة البث
تحدد IE الفئة الاختيارية أولوية رسالة البث:
| الفئة | الوصف |
|---|---|
| high-priority | أعلى أولوية، تتجاوز البث الآخر |
| normal-priority | أولوية قياسية |
| background-priority | أولوية منخفضة، لا تتجاوز |
| default-priority | افتراضية عند عدم تحديد فئة |
معالجة إشارات إعادة التشغيل وإشارات الفشل
عندما يتلقى CBC إشارة إعادة التشغيل من RNC، فإن RNC قد أعيد تشغيله وفقد حالة البث الخاصة به. يجب على CBC إعادة إرسال جميع البث النشط إلى ذلك RNC.
عندما يتلقى CBC إشارة فشل، فإن RNC يبلغ أن بعض مناطق الخدمة قد فقدت القدرة على البث. يتم تسجيل ذلك وإصداره كحدث تلقي.
عمليات SBC-AP لشبكة 4G

نموذج الاتصال
وفقًا لمعيار 3GPP TS 29.168 القسم 4.3، يقوم CBC ببدء ارتباطات SCTP إلى كل MME. يس��مع MME على المنفذ 29168 (مسجل لدى IANA). معرف بروتوكول الحمولة SCTP (PPID) لـ SBC-AP هو 24.
تنفذ وسيلة النقل إعادة الاتصال التلقائي مع تراجع أسي:
| المعلمة | القيمة | الوصف |
|---|---|---|
| تأخير إعادة الاتصال الأولي | 5 ثواني | أول تأخير بعد فشل الاتصال |
| أقصى تأخير لإعادة الاتصال | 60 ثانية | أقصى سقف للتراجع |
| فترة نبض SCTP | 10 ثواني | نبض عنوان النظير |
| الحد الأقصى لإعادة إرسال SCTP | 7 | قبل إعلان فشل المسار |
| الحد الأقصى لوقت إعادة إرسال SCTP | 30 ثانية | الحد الأقصى لوقت إعادة الإرسال |
| الحد الأدنى لوقت إعادة إرسال SCTP | 1 ثانية | الحد الأدنى لوقت إعادة الإرسال |
إجراءات SBC-AP
| الإجراء | الرمز | الفئة | الاتجاه | الوصف |
|---|---|---|---|---|
| Write-Replace-Warning | 0 | Class 1 | CBC -> MME | إرسال أو تحديث رسالة تحذير |
| Stop-Warning | 1 | Class 1 | CBC -> MME | إيقاف تحذير نشط |
| Error-Indication | 2 | Class 2 | Either | الإبلاغ عن خطأ في البروتوكول |
| PWS-Restart-Indication | 3 | Class 2 | MME -> CBC | تم إعادة تشغيل MME، إعادة إرسال التحذيرات النشطة |
| PWS-Failure-Indication | 4 | Class 2 | MME -> CBC | فشل eNB، فقدت الخلايا القدرة على البث |
عناصر IE لطلب Write-Replace-Warning
| IE | ID | الأهمية | النوع | الوصف |
|---|---|---|---|---|
| Message-Identifier | 5 | Reject | 16-bit | معرف رسالة CB (مثل 0x1112 لـ CMAS) |
| Serial-Number | 11 | Reject | 16-bit | الرقم التسلسلي مع نطاق جغرافي، رمز الرسالة، رقم التحديث |
| List-of-TAIs | 14 | Reject | List | هويات مناطق التتبع للبث |
| Warning-Area-List | 15 | Ignore | Choice | المنطقة المستهدفة (قائمة TAI، قائمة خلايا، أو منطقة طوارئ) |
| Repetition-Period | 10 | Reject | Integer | الثواني بين التكرارات (0..4096) |
| Number-of-Broadcasts-Requested | 7 | Reject | Integer | إجمالي عدد البث (0..65535) |
| Warning-Type | 18 | Ignore | 2 bytes | نوع تحذير ETWS + علامات التفعيل |
| Data-Coding-Scheme | 3 | Ignore | 8-bit | كيفية ترميز محتوى الرسالة |
| Warning-Message-Content | 16 | Ignore | Binary | صفحات CBS المشفرة |
| Omc-Id | 19 | Ignore | Binary | معرف مركز العمليات |
| Concurrent-Warning-Message-Indicator | 20 | Reject | Boolean | السماح بالتحذيرات المتزامنة |
عناصر IE لطلب Stop-Warning
| IE | ID | الأهمية | الوصف |
|---|---|---|---|
| Message-Identifier | 5 | Reject | معرف رسالة CB لإيقافها |
| Serial-Number | 11 | Reject | الرقم التسلسلي للبث لإيقافه |
| List-of-TAIs | 14 | Reject | (اختياري) تحديد الإيقاف لمناطق TAIs معينة |
| Warning-Area-List | 15 | Ignore | (اختياري) تحديد الإيقاف لمناطق معينة |
معالجة إشارة PWS-Restart-Indication
عندما يتلقى CBC إشارة PWS-Restart-Indication من MME، فإنه يعيد إرسال جميع البث النشط (تلك التي في حالة :sent أو :acknowledged) إلى ذلك MME. يضمن ذلك استمرارية البث بعد إعادة تشغيل MME.
معالجة إشارة PWS-Failure-Indication
عندما يتلقى CBC إشارة PWS-Failure-Indication، فإنه يضع علامة على البث المتأثر مع استجابة :pws_failure لارتباط MME المبلغ عنه. يتم تسجيل ذلك كتحذير.
تنسيق الرسائل
ترميز GSM 7-bit
الترميز الافتراضي لرسائل CBS. تحتوي كل صفحة CBS على ما يصل إلى 93 سبتيت مضغوطة في 82 بايت.
تقوم الأبجدية الافتراضية لـ GSM 7-bit بتمثيل الأحرف اللاتينية القياسية بالإضافة إلى الأحرف اليونانية والرموز الخاصة. الأحرف غير الموجودة في الأبجدية الأساسية تستخدم جدول التمديد (تسلسل الهروب 0x1B + رمز التمديد)، مما يستهلك سبتيتين.
البنية الثنائية لمحتوى رسالة التحذير:
+----------+-------------------------------------------+
| Num Pages| Page 1 (82 bytes packed + 1 byte length) |
| (1 byte) | Page 2 ... |
+----------+-------------------------------------------+
ترميز UCS-2
للنصوص غير اللاتينية (CJK، العربية، التايلاندية، إلخ). تحتوي كل صفحة CBS على ما يصل إلى 40 حرف UCS-2 (80 بايت من بيانات UTF-16BE)، مملوءة إلى 82 بايت.
مخطط ترميز البيانات (DCS)
| الترميز | قيمة DCS | الوصف |
|---|---|---|
| GSM 7-bit | 0x0F | الأبجدية الافتراضية لـ GSM 7-bit، اللغة غير محددة |
| UCS-2 | 0x48 | UCS-2 (UTF-16BE)، اللغة غير محددة |
يمكن تعيين DCS بشكل صريح لكل بث أو يتم اشتقاقه تلقائيًا من معلمة الترميز.
بنية الرقم التسلسلي
وفقًا لمعيار 3GPP TS 23.041 القسم 9.4.1.2.1، يحتوي الرقم التسلسلي المكون من 16 بت على بنية داخلية:
+----+------------+--------+
| GS | Msg Code | Update |
| 2b | 10 bits | 4 bits |
+----+------------+--------+
| الحقل | البتات | الوصف |
|---|---|---|
| النطاق الجغرافي (GS) | 15-14 | 0 = فوري على مستوى الخلية، 1 = على مستوى PLMN، 2 = على مستوى LA/TA، 3 = على مستوى الخلية |
| رمز الرسالة | 13-4 | يحدد الب�� ضمن نطاقه (0..1023) |
| رقم التحديث | 3-0 | يتم زيادته لتحديث الرسائل (0..15) |
تقوم الدالة المساعدة MessageFormatter.build_serial_number/3 بإنشاء رقم تسلسلي من هذه المكونات.
أنواع التحذيرات (ETWS)
تكون IE نوع التحذير 2 بايت وفقًا لمعيار 3GPP TS 23.041 القسم 9.3.24:
| نوع التحذير | قيمة بايت 1 | الوصف |
|---|---|---|
| زلزال | 0x00 | تحذير من الزلزال |
| تسونامي | 0x01 | تحذير من تسونامي |
| زلزال + تسونامي | 0x02 | زلزال وتسونامي معًا |
| اختبار | 0x03 | تحذير اختبار |
| آخر | 0x04 | طوارئ أخرى |
علامات التفعيل للبايت 2 (الافتراضي 0xC0):
| البت | القيمة | الوصف |
|---|---|---|
| البت 8 | 0x80 | تنبيه المستخدم الطارئ (تفعيل نغمة التحذير/اهتزاز) |
| البت 7 | 0x40 | نافذة منبثقة (عرض الرسالة تلقائيًا على الشاشة) |
يتم تعيين كلا البتين بشكل افتراضي (0xC0) لضمان أقصى رؤية.
إدارة حالة البث
دورة حياة الحالة
الاستمرارية
يتم الاحتفاظ بالبث النشط لشبكات 2G و3G و4G في priv/active_broadcasts.json كـ JSON. عند بدء التشغيل، يقوم المحرك بإعادة تحميل هذا الملف لاستعادة حالة البث. يسمح ذلك لـ CBC بإعادة إرسال التحذيرات النشطة بعد إعادة تشغيل التطبيق. يخزن ملف الاستمرارية ثلاثة خرائط بث منفصلة: active_broadcasts_4g، active_broadcasts_3g، وactive_broadcasts_2g3g.
تتبع الاستجابة
بالنسبة لبث 4G، يبدأ كل send_broadcast_4g مؤقت مهلة استجابة لمدة 30 ثانية. يتم ربط الاستجابات من MMEs بواسطة Message-Identifier وSerial-Number. يتم إلغاء المؤقت عندما تستجيب جميع نظيرات MME المتوقعة. يتم تسجيل الأقران الذين تجاوزوا المهلة مع سبب :timeout.
عرض البث النشط

تقدم صفحة البث النشط عرضًا موحدًا لجميع البث الجاري عبر شبكات 2G و3G و4G.
تاريخ البث
يحافظ المحرك على تاريخ متداول لأحدث 100 بث 4G لواجهة LiveView واستعلامات API.
استكشاف الأخطاء وإصلاحها
لا توجد MMEs متصلة (SBC-AP)
- تحقق من أن تكوين
mme_peersيحتوي على عناوين IP والمنافذ الصحيحة - تحقق من أن
local_ipيمكن الوصول إليه من شبكة MME - ابحث عن أخطاء اتصال SCTP في السجل:
SBC-AP: فشل الاتصال بـ MME - تحقق من أن SCTP غير محجوب بواسطة جدران الحماية (البروتوكول 132)
- تأكد من أن MME يستمع على المنفذ 29168
لا توجد BSCs متصلة (CBSP)
- تحقق من تكوين
listen_ipوlisten_portتحت:cbsp - تحقق من أن منفذ TCP 48049 غير محجوب بواسطة جدران الحماية
- ابحث عن أخطاء القبول:
فشل قبول CBSP - تأكد من أن BSC تم تكوينه مع عنوان IP وم��فذ CBC
لا توجد RNCs متصلة (SABP)
- تحقق من تكوين
listen_ipوlisten_portتحت:sabp - تحقق من أن منفذ TCP 3452 غير محجوب بواسطة جدران الحماية
- ابحث عن أخطاء القبول:
فشل قبول SABP - تأكد من أن RNC تم تكوينه مع عنوان IP ومنفذ CBC
- تحقق من السجلات عن رسائل
SABP connection closed by peerأوSABP TCP error
لم يتم تسليم البث
- تحقق من جدول البث النشط لحالة الاستجابة
- ابحث عن رسائل WRITE-REPLACE FAILURE أو KILL FAILURE في سجل رسائل CBSP/SABP
- تحقق من أن تنسيق قائمة الخلايا يتطابق مع ما يتوقعه BSC/RNC/MME
- بالنسبة لـ 4G، تحقق من أن قيم TAC صالحة لـ MME المستهدف
- بالنسبة لـ 3G، تحقق من أن معرفات منطقة الخدمة (SAIs) صالحة لـ RNC المستهدف
- تحقق من تاريخ البث للمدخلات التي تجاوزت المهلة
مشكلات الترميز
- بالنسبة للنصوص غير اللاتينية، تأكد من اختيار ترميز
:ucs2 - تحقق من أن DCS يتطابق مع الترميز (0x0F لـ GSM 7-bit، 0x48 لـ UCS-2)
- ي��كن أن يمثل GSM 7-bit الأبجدية الافتراضية لـ GSM فقط؛ يتم استبدال الأحرف غير المدعومة بـ
؟
مراجع 3GPP
| المواصفة | العنوان |
|---|---|
| TS 25.419 | واجهة UTRAN Iu-BC: بروتوكول بث منطقة الخدمة (SABP) |
| TS 29.168 | واجهات مركز بث الخلايا مع نواة الحزمة المتطورة (SBC-AP) |
| TS 48.049 | بروتوكول مركز بث الخلايا (CBSP) |
| TS 23.041 | التنفيذ الفني لخدمة بث الخلايا (CBS) |
| TS 23.038 | الأبجديات والمعلومات الخاصة باللغة (DCS، GSM 7-bit) |
| TS 24.008 | مواصفة طبقة الراديو المتنقل 3 (ترميز هوية PLMN) |