كيفية تكوين حقل التسليم المسجل في SMPP

ما هو حقل التسليم المسجل؟

حقل التسليم المسجل في SMPP هو قناع بت بطول 1 بايت في وحدات PDU مثل submit_sm و data_sm يتحكم في إيصالات التسليم والتأكيدات. يمكّن المرسلين من تتبع حالة تسليم الرسائل من خلال إيصالات يتم إنشاؤها بواسطة SMSC. تشمل الوظائف الرئيسية:

  • طلب إيصالات التسليم النهائية (نجاح/فشل)
  • تمكين إشعارات التسليم المتوسطة
  • معالجة تأكيدات SME (كيان الرسائل القصيرة)

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

كما هو محدد في SMPP الإصدار 3.4، يستخدم الحقل هيكل قناع البت التالي:

البت الوصف
0 إيصال تسليم SMSC (0 = معطل، 1 = مفعل)
1 تأكيد SME المنشأ (0 = معطل، 1 = مفعل)
2 إشعار وسيط (0 = معطل، 1 = مفعل)
3-7 محجوز
ملاحظة: العديد من SMSCs تدعم فقط البت 0 (إيصالات SMSC). تأكد من إمكانيات مزود الخدمة لديك.

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

القيمة (سداسي عشرية) ثنائي الوصف
0x00 00000000 لا توجد إيصالات مطلوبة
0x01 00000001 إيصال تسليم SMSC فقط
0x03 00000011 إيصال SMSC + تأكيد SME
0x05 00000101 إيصال SMSC + إشعارات وسيطة

حالات الاستخدام

1. إيصالات التسليم الأساسية

registered_delivery: 0x01  // طلب حالة التسليم النهائية
    

2. المراسلة عالية الموثوقية

registered_delivery: 0x05  // إيصال + إشعارات وسيطة
    

3. الاتصال ثنائي الاتجاه

registered_delivery: 0x03  // تأكيد تسليم SMSC و SME
    

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

المثال 1: لا توجد إيصالات (0x00)

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

المثال 2: إيصال تسليم SMSC (0x01)

0000001D  // طول الأمر (29 بايت)
00000004  // معرف الأمر (SubmitSM)
00000002  // رقم التسلسل
...
00        // فترة الصلاحية
01        // التسليم المسجل (0x01: إيصال SMSC)
00        // استبدال إذا موجود
...
    

المثال 3: إشعارات وسيطة (0x05)

0000001D  // طول الأمر (29 بايت)
00000004  // معرف الأمر (SubmitSM)
00000003  // رقم التسلسل
...
05        // التسليم المسجل (0x05: إيصال SMSC + إشعارات وسيطة)
...
    

تنسيق إيصال التسليم

تقوم SMSCs بإرجاع الإيصالات عبر وحدات PDU من نوع deliver_sm بحمولة بتنسيق:

id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm done date:YYMMDDhhmm stat:STATUS err:EEE
    

مثال على إيصال لتسليم رسالة:

id:1896384752 sub:001 dlvrd:001 submit date:2310151430 done date:2310151431 stat:DELIVRD err:000
    

التفاعلات مع الحقول الأخرى

  • esm_class: يجب أن يتوافق البت 6 (علم إيصال التسليم) مع إعدادات registered_delivery
  • validity_period: يحدد المدة التي سيحاول فيها SMSC التسليم قبل إرسال إيصال فشل
  • message_id: ضروري لربط الإيصالات بالرسائل الأصلية

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

  • تمكين الإيصالات ولكن عدم الاستماع إلى وحدات PDU من نوع deliver_sm
  • افتراض أن جميع SMSCs تدعم تأكيدات SME (0x02)
  • عدم تطابق أعلام registered_delivery و esm_class
  • تجاهل حدود معدل SMSC لإنشاء الإيصالات
ملاحظة الفوترة:
بعض المزودين يتقاضون رسومًا إضافية على إيصالات التسليم. تأكد من التسعير قبل التمكين.

الختام

يعتبر حقل التسليم المسجل ضروريًا لتتبع حالة تسليم الرسائل القصيرة في SMPP. بينما يتم دعم معالجة الإيصالات الأساسية (0x01) على نطاق واسع، تتطلب الميزات المتقدمة مثل الإشعارات الوسيطة اختبارًا خاصًا بـ SMSC. قم دائمًا بتنفيذ تحليل قوي للإيصالات وربط الرسائل باستخدام message_id. للسلوك التفصيلي، راجع القسم 5.2.17 من SMPP الإصدار 3.4 ووثائق مزود الخدمة لديك.

More information