كيفية تكوين حقل التسليم المسجل في 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 | محجوز |
القيم الشائعة
القيمة (سداسي عشرية) | ثنائي | الوصف |
---|---|---|
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
- كيفية تكوين حقل نوع خدمة SMPP
- كيفية تكوين حقول أرقام هواتف SMPP
- كيفية تكوين حقل فئة ESM في SMPP
- كيفية تكوين حقل PID في SMPP
- كيفية تكوين حقل الأولوية في SMPP
- كيفية تكوين حقل الوقت المجدول في SMPP
- كيفية تكوين حقل فترة الصلاحية في SMPP
- كيفية تكوين حقل التسليم المسجل في SMPP
- كيفية تكوين حقل استبدال إذا كان موجودًا في SMPP
- كيفية تكوين حقل sm_default_msg_id
- كيفية تكوين حقل DCS في SMPP
- كيفية حساب حقل طول SM في SMPP
- كيفية إدخال البيانات في حقل SMPP SM