كيفية تكوين حقل ESM Class في SMPP
إعدادات ESM class في Ozeki SMS Gateway
يسمح لك Ozeki SMS Gateway بتكوين حقل ESM class يدويًا (الشكل 1)
ما هو حقل ESM Class؟
حقل Extended Service Message (ESM) Class في SMPP هو حقل بطول 1 بايت في وحدات PDU الخاصة بـ SMPP يتحكم في ميزات معالجة الرسائل المتقدمة.
يتم استخدامه في عمليات submit_sm
و deliver_sm
و data_sm
لتحديد:
- أنواع الرسائل (مثل SMS، إيصال التسليم)
- سلوك إيصال التسليم
- وجود UDH (رأس بيانات المستخدم)
- أولويات الرسائل وأعلام التوجيه
هيكل ESM Class و Bitmask
ESM class هو bitmask حيث يقوم كل بت أو مجموعة من البتات بتنشيط ميزات محددة:
البتات | الوصف |
---|---|
7 | وضع المراسلة: 0 = افتراضي، 1 = Datagram |
6 | نوع الرسالة: 0 = عادي، 1 = إيصال تسليم |
5 | مؤشر UDHI: 1 = UDH موجود في الحمولة |
4 | مسار الرد: 1 = طلب مسار الرد |
3-2 | أولوية الرسالة (00 = عادي، 01 = تفاعلي، 10 = عاجل، 11 = طارئ) |
1-0 | محجوز |
قيم ESM Class الشائعة
ESM (Hex) | ثنائي | الوصف |
---|---|---|
0x00 | 00000000 | افتراضي (لا يوجد معالجة خاصة) |
0x04 | 00000100 | تم تعيين علامة UDHI (UDH موجود) |
0x08 | 00001000 | تم طلب مسار الرد |
0x20 | 00100000 | إيصال تسليم (بت 6 = 1) |
0x30 | 00110000 | أولوية عاجلة + إيصال تسليم |
0x60 | 01100000 | وضع Datagram + إيصال تسليم |
حالات الاستخدام الرئيسية
1. رسائل SMS المجمعة (علامة UDHI)
عند إرسال رسائل متعددة الأجزاء، قم بتعيين البت 5 (UDHI=1) وتضمين رأس بيانات المستخدم (UDH) في الحمولة. مثال لرسالة من 3 أجزاء:
ESM Class: 0x40 (ثنائي 01000000: تم تمكين UDHI) الحمولة: 05 00 03 02 01 // UDH (5 بايت: IEI=00، IEDL=03، الجزء 1 من 2) C8329BFD06 // حمولة GSM-7 ("Hello")
2. طلبات إيصال التسليم
قم بتعيين البت 6 (0x20) لطلب إيصال تسليم. غالبًا ما يتم دمجه مع حقل registered_delivery
:
ESM Class: 0x20 (ثنائي 00100000) registered_delivery: 0x01 (طلب إيصال)
3. المراسلة ذات الأولوية
استخدم البتات 3-2 لإعطاء أولوية للرسائل. مثال للأولوية العاجلة:
ESM Class: 0x10 (ثنائي 00010000: أولوية عاجلة)
أمثلة على وحدات PDU الخاصة بـ SMPP
المثال 1: رسالة SMS أساسية (ESM=0x00)
0000001D // طول الأمر (29 بايت) 00000004 // معرف الأمر (SubmitSM) 00000001 // رقم التسلسل 00 // مصدر TON 00 // مصدر NPI 736F7572636500 // عنوان المصدر ("source") 00 // وجهة TON 00 // وجهة NPI 36353433323100 // عنوان الوجهة ("654321") 00 // ESM Class (0x00: افتراضي) 00 // معرف البروتوكول (PID) 00 // الأولوية 00 // وقت تسليم الجدولة 00 // فترة الصلاحية 00 // التسليم المسجل 00 // استبدال إذا موجود 00 // ترميز البيانات (DCS=0x00) 00 // معرف الرسالة الافتراضي SM 07 // طول SM (7 septets) C8329BFD06DDDF72 // الحمولة ("Hello!")
المثال 2: رسالة SMS مجمعة (ESM=0x40)
00000025 // طول الأمر (37 بايت) 00000004 // معرف الأمر (SubmitSM) 00000002 // رقم التسلسل 00 // مصدر TON 00 // مصدر NPI 736F7572636500 // عنوان المصدر ("source") 00 // وجهة TON 00 // وجهة NPI 36353433323100 // عنوان الوجهة ("654321") 40 // ESM Class (0x40: تم تمكين UDHI) 00 // معرف البروتوكول (PID) 00 // الأولوية 00 // وقت تسليم الجدولة 00 // فترة الصلاحية 00 // التسليم المسجل 00 // استبدال إذا موجود 00 // ترميز البيانات (DCS=0x00) 00 // معرف الرسالة الافتراضي SM 0C // طول SM (12 بايت) 0500030201C8329BFD06DDDF72 // UDH + "Hello" (الجزء 1/2)
المثال 3: إيصال تسليم (ESM=0x20)
0000001D // طول الأمر (29 بايت) 00000004 // معرف الأمر (SubmitSM) 00000003 // رقم التسلسل 00 // مصدر TON 00 // مصدر NPI 736F7572636500 // عنوان المصدر ("source") 00 // وجهة TON 00 // وجهة NPI 36353433323100 // عنوان الوجهة ("654321") 20 // ESM Class (0x20: إيصال تسليم) 00 // معرف البروتوكول (PID) 00 // الأولوية 00 // وقت تسليم الجدولة 00 // فترة الصلاحية 01 // التسليم المسجل (تم طلب الإيصال) 00 // استبدال إذا موجود 00 // ترميز البيانات (DCS=0x00) 00 // معرف الرسالة الافتراضي SM 07 // طول SM (7 septets) C8329BFD06DDDF72 // الحمولة ("Hello!")
التفاعلات مع الحقول الأخرى
- UDHI (ESM) + DCS: إذا تم تعيين UDHI، تأكد من أن DCS يدعم UDH (مثل GSM-7 أو 8-bit).
- ESM Class + registered_delivery: استخدم كليهما لطلب إيصالات التسليم صراحةً.
- بتات الأولوية + علم الأولوية: بعض SMSCs تعطي أولوية للرسائل بناءً على بتات ESM بدلاً من حقل الأولوية المنفصل.
المزالق الشائعة
- تعيين UDHI دون تضمين رأس بيانات مستخدم صالح.
- استخدام أعلام إيصال التسليم (ESM=0x20) دون تعيين
registered_delivery
. - عدم تطابق بتات أولوية ESM مع حقل
priority_flag
المنفصل.
الخاتمة
فئة ESM هي أداة قوية للتحكم في سلوك الرسائل في بروتوكول SMPP. يتيح تصميمها القائم على قناع البت ميزات مثل الربط، والإيصالات، وتحديد الأولويات. تأكد دائمًا من دعم SMSC للأعلام المتقدمة واختبر التكوينات بدقة. للحصول على تفاصيل موثوقة، راجع مواصفات SMPP الإصدار 3.4 أو 5.0.
More information
- كيفية تكوين حقل نوع خدمة SMPP
- كيفية تكوين حقول أرقام هواتف SMPP
- كيفية تكوين حقل فئة ESM في SMPP
- كيفية تكوين حقل PID في SMPP
- كيفية تكوين حقل الأولوية في SMPP
- كيفية تكوين حقل الوقت المجدول في SMPP
- كيفية تكوين حقل فترة الصلاحية في SMPP
- كيفية تكوين حقل التسليم المسجل في SMPP
- كيفية تكوين حقل استبدال إذا كان موجودًا في SMPP
- كيفية تكوين حقل sm_default_msg_id
- كيفية تكوين حقل DCS في SMPP
- كيفية حساب حقل طول SM في SMPP
- كيفية إدخال البيانات في حقل SMPP SM