فهم حقل PID في بروتوكول SMPP

ما هو حقل PID في بروتوكول SMPP؟

معرف البروتوكول (PID) في بروتوكول SMPP (بروتوكول الرسائل القصيرة من نظير إلى نظير) هو حقل بحجم 1 بايت داخل وحدات بيانات البروتوكول (PDUs). وهو يحدد البروتوكول المستخدم من قبل النظام المرسل أو يوفر تعليمات خاصة لمعالجة الرسالة. يتم تعريف حقل PID في عمليات submit_sm، deliver_sm، و data_sm وهو حاسم لـ:

  • تحديد بروتوكولات الطبقة العليا (مثل X.400، Telnet)
  • تشغيل أنواع رسائل خاصة (مثل إشعارات البريد الصوتي)
  • معالجة استبدال الرسائل (مثل استبدال الرسائل الموجودة)

هيكل PID وقناع البتات

PID هو قناع بتات حيث تتحكم بتات محددة في سلوك البروتوكول. يتوافق هيكله مع مواصفات GSM 03.40:

البتات الوصف
7-5 نوع البروتوكول: يشير إلى البروتوكول (مثل GSM، Telex، أو SMS).
4-0 تعليمات/أعلام: معالجة خاصة (مثل استبدال الرسالة، البريد الصوتي).

قيم PID الرئيسية وتفسيرها

PID (Hex) ثنائي الوصف
0x00 00000000 افتراضي (لا يوجد بروتوكول خاص)
0x01 00000001 Telex (قديم)
0x03 00000011 X.400 (قديم)
0x40 01000000 رسالة استدعاء عودة (معالجة بطاقة SIM)
0x41 01000001 استبدال الرسالة القصيرة (كتابة فوق الرسالة الموجودة)
0x42 01000010 إشعار البريد الصوتي
0x7F 01111111 محجوز للاستخدام المستقبلي
ملاحظة: القيم مثل 0x40–0x7F خاصة بالشبكة وقد تختلف حسب SMSC. تحقق دائمًا من مزود الخدمة.

حالات الاستخدام والسيناريوهات

1. استبدال الرسالة (PID=0x41)

يستخدم لكتابة رسالة جديدة فوق رسالة موجودة على جهة المستقبل. شائع في أنظمة OTP (كلمة المرور لمرة واحدة) حيث يتم استبدال كلمة المرور القديمة بأخرى جديدة.

2. إشعار البريد الصوتي (PID=0x42)

يشغل تنبيهًا مرئيًا/مسموعًا على جهة المستقبل لوجود بريد صوتي جديد. غالبًا ما يكون نص الرسالة فارغًا، حيث أن PID نفسه هو المشغل.

3. تنزيل بيانات SIM (PID=0x40)

يوجه بطاقة SIM لمعالجة الرسالة (مثل تحديث الإعدادات المسبقة).

أمثلة على وحدات PDU في SMPP مع PID

المثال 1: PID افتراضي (0x00)

0000001D  // طول الأمر (29 بايت)
00000004  // معرف الأمر (SubmitSM)
00000001  // رقم التسلسل
00        // نوع مصدر TON
00        // مصدر NPI
736F7572636500  // عنوان المصدر ("source")
00        // نوع الوجهة TON
00        // وجهة NPI
36353433323100  // عنوان الوجهة ("654321")
00        // فئة ESM
00        // معرف البروتوكول (PID=0x00)
00        // علم الأولوية
00        // وقت تسليم الجدولة
00        // فترة الصلاحية
00        // التسليم المسجل
00        // استبدال إذا موجود
00        // مخطط ترميز البيانات (DCS=0x00)
00        // معرف الرسالة الافتراضي SM
07        // طول SM (7 سباعية)
C8329BFD06DDDF72  // الحمولة ("Hello!")
    

المثال 2: إشعار البريد الصوتي (PID=0x42)

0000001D  // طول الأمر (29 بايت)
00000004  // معرف الأمر (SubmitSM)
00000002  // رقم التسلسل
00        // نوع مصدر TON
00        // مصدر NPI
736F7572636500  // عنوان المصدر ("source")
00        // نوع الوجهة TON
00        // وجهة NPI
36353433323100  // عنوان الوجهة ("654321")
00        // فئة ESM
42        // معرف البروتوكول (PID=0x42: بريد صوتي)
00        // علم الأولوية
00        // وقت تسليم الجدولة
00        // فترة الصلاحية
00        // التسليم المسجل
00        // استبدال إذا موجود
00        // ترميز البيانات (DCS=0x00)
00        // معرف الرسالة الافتراضي SM
00        // طول SM (0 بايت: لا يوجد حمولة)
    

المثال 3: استبدال الرسالة الموجودة (PID=0x41)

0000001D  // طول الأمر (29 بايت)
00000004  // معرف الأمر (SubmitSM)
00000003  // رقم التسلسل
00        // نوع مصدر TON
00        // مصدر NPI
736F7572636500  // عنوان المصدر ("source")
00        // نوع الوجهة TON
00        // وجهة NPI
36353433323100  // عنوان الوجهة ("654321")
00        // فئة ESM
41        // معرف البروتوكول (PID=0x41: استبدال)
00        // علم الأولوية
00        // وقت تسليم الجدولة
00        // فترة الصلاحية
01        // التسليم المسجل (طلب إيصال)
00        // استبدال إذا موجود
00        // ترميز البيانات (DCS=0x00)
00        // معرف الرسالة الافتراضي SM
07        // طول SM (7 سباعية)
C8329BFD06DDDF72  // الحمولة ("New OTP: 1234")
    

تفاعل PID مع TP-Protocol-Identifier (GSM)

في شبكات GSM، يتم تعيين PID إلى TP-Protocol-Identifier في وحدات TPDU للرسائل القصيرة. تشمل التعيينات الرئيسية:

  • 0x41: أمر الاستبدال (GSM 03.40 TP-PID=0x41)
  • 0x42: البريد الصوتي (GSM 03.40 TP-PID=0x42)

المزالق الشائعة

  • استخدام قيم PID محجوزة (مثل 0x7F) بدون دعم من SMSC.
  • عدم تطابق PID و DCS (مثل استخدام ترميز UCS2 لبيانات SIM).
  • تجاهل القواعد الخاصة بالشبكة (مثل PID=0x40 قد يتطلب تكوين خاص لـ SMSC).

الختام

حقل PID ضروري للتوجيه المتقدم للرسائل القصيرة ومعالجتها. بينما يتم تعيينه غالبًا إلى 0x00 (افتراضي)، فإن قيمه المتخصصة تمكن من ميزات مثل استبدال الرسائل، تحديثات SIM، وتنبيهات البريد الصوتي. اختبر دائمًا تكوينات PID مع SMSC الخاص بك وراجع مواصفات GSM 03.40 أو SMPP v5.0 للسلوك الدقيق.

More information