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

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

حقل وقت التسليم المجدول في بروتوكول SMPP (بروتوكول الرسائل القصيرة من نظير إلى نظير) هو معامل اختياري في وحدة submit_sm PDU الذي يسمح بوضع الرسالة في قائمة الانتظار للتسليم في تاريخ ووقت محددين في المستقبل. هذا الحقل مهم لـ:

  • تأخير تسليم الرسائل إلى ساعات غير الذروة
  • جدولة الحملات الحساسة للوقت (مثل رسائل عيد الميلاد)
  • تنسيق الرسائل عبر المناطق الزمنية

تنسيق الحقل وهيكله

يحدد مواصفات SMPP الإصدار 3.4 هذا الحقل كـ سلسلة C-Octet (منتهية بقيمة فارغة) بتنسيق تاريخ ووقت محدد:

YYMMDDhhmmssnnp

حيث:

المكون الوصف النطاق
YY آخر رقمين من السنة 00-99
MM الشهر 01-12
DD اليوم 01-31
hh الساعة (تنسيق 24 ساعة) 00-23
mm الدقيقة 00-59
ss الثانية 00-59
nn أجزاء من الثانية (اختياري) 00-99
p إزاحة المنطقة الزمنية (مثل +، -) +/- متبوعًا بـ 4 أرقام (HHMM)
قيم خاصة:
- NULL (تسليم فوري)
- 000000000000000 (تسليم فوري، أنظمة قديمة)

أمثلة على سلاسل الوقت

سلسلة الوقت التفسير
231015143000000+ 15 أكتوبر 2023 14:30:00 UTC+0
231015143000000-0800 15 أكتوبر 2023 14:30:00 UTC-08:00
000000000000000 تسليم فوري (قديم)
NULL تسليم فوري (مستحسن)

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

1. رسائل عيد الميلاد

جدولة رسالة لتسليمها تمامًا عند منتصف الليل في عيد ميلاد المستلم:

scheduled_delivery_time: "231016000000000+"
// 16 أكتوبر 2023 00:00:00 UTC+0

2. التسليم خارج أوقات الذروة

تجنب ازدحام الشبكة بإرسال الرسائل الجماعية ليلاً:

scheduled_delivery_time: "231015020000000+"
// 15 أكتوبر 2023 02:00:00 UTC+0

3. التنسيق بين المناطق الزمنية

تسليم الرسائل الساعة 9 صباحًا بالتوقيت المحلي للمستلمين في نيويورك (UTC-5):

scheduled_delivery_time: "231015090000000-0500"
// 15 أكتوبر 2023 09:00:00 UTC-05:00

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

المثال 1: تسليم فوري (NULL)

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

المثال 2: تسليم مستقبلي (15 أكتوبر 2023 14:30 UTC)

0000002A  // طول الأمر (42 بايت)
00000004  // معرف الأمر (SubmitSM)
00000002  // رقم التسلسل
00        // مصدر TON
00        // مصدر NPI
736F7572636500  // عنوان المصدر ("source")
00        // وجهة TON
00        // وجهة NPI
36353433323100  // عنوان الوجهة ("654321")
00        // فئة ESM
00        // معرف البروتوكول
00        // علم الأولوية
3233313031353134333030303030302B00  // "231015143000000+" (16 بايت + فارغة)
00        // فترة الصلاحية
00        // التسليم المسجل
00        // استبدال إذا موجود
00        // ترميز البيانات (DCS=0x00)
00        // معرف الرسالة الافتراضي
07        // طول الرسالة (7 وحدات)
C8329BFD06DDDF72  // الحمولة ("Hello!")

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

  • validity_period: يحدد المدة التي سيحاول فيها SMSC التسليم. يبدأ العد من الوقت المجدول.
  • priority_flag: قد تتجاوز الرسائل ذات الأولوية العالية قوائم الانتظار المجدولة في بعض SMSCs.

الأخطاء الشائعة

  • استخدام التوقيت المحلي دون تحديد إزاحة المنطقة الزمنية.
  • تنسيق سلسلة التاريخ بشكل غير صحيح (مثل شهر غير صالح "13").
  • افتراض أن جميع SMSCs تدعم التسليم المجدول (تحقق مع المزود).
  • تعيين وقت في الماضي، مما يؤدي إلى تسليم فوري.
ملاحظة حول سلوك SMSC:
بعض SMSCs تتجاهل أجزاء الثانية (nn) أو تقيد المدة التي يمكن فيها جدولة الرسائل مسبقًا (مثل 7 أيام كحد أقصى).

الختام

يتيح حقل وقت التسليم المجدول تحكمًا دقيقًا في موعد تسليم رسائل SMS. يتطلب الاستخدام الصحيح تنسيقًا دقيقًا لسلاسل الوقت والتنسيق مع إمكانيات SMSC. دائمًا اختبر الرسائل المجدولة مع مزودك وراجع مواصفات SMPP الإصدار 3.4 للحالات الخاصة (مثل السنوات الكبيسة، انتقالات المنطقة الزمنية).

More information