كيفية تكوين حقل فترة الصلاحية في SMPP

ما هو حقل فترة الصلاحية؟

فترة الصلاحية في بروتوكول SMPP (بروتوكول الرسائل القصيرة من نظير إلى نظير) هي حقل سلسلة نصية منتهية بقيمة فارغة في وحدات بيانات البروتوكول (PDUs) مثل submit_sm والذي يحدد المدة التي سيحاول خلالها مركز خدمة الرسائل القصيرة (SMSC) تسليم الرسالة قبل التخلص منها. هذا الحقل حاسم لـ:

  • منع إعادة المحاولة إلى أجل غير مسمى للرسائل غير القابلة للتسليم
  • إدارة موارد تخزين مركز خدمة الرسائل القصيرة (SMSC)
  • معالجة المحتوى الحساس للوقت (مثل كلمات المرور لمرة واحدة OTPs، العروض الترويجية)

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

تستخدم فترة الصلاحية نفس تنسيق الوقت المطلق المستخدم في وقت التسليم المجدول (مواصفات SMPP الإصدار 3.4):

YYMMDDhhmmssnnp

حيث تتطابق المكونات مع تنسيق وقت التسليم المجدول. كما يتم دعم تنسيقات الاختصار النسبية الشائعة:

التنسيق مثال الوصف
مطلق 231215235959000+ 15 ديسمبر 2023، 23:59:59 بالتوقيت العالمي المنسق (UTC+0)
نسبي 000003000000000R 3 أيام من وقت الإرسال
قيم خاصة:
- NULL: استخدام فترة الصلاحية الافتراضية لمركز خدمة الرسائل القصيرة (عادة 24-72 ساعة)
- 00: فترة الصلاحية الافتراضية لمركز خدمة الرسائل القصيرة (في الأنظمة القديمة)

تنسيقات فترة الصلاحية الرئيسية

1. تنسيق الوقت المطلق

YYMMDDhhmmssnnp // التنسيق الكامل
231215143000000+  // 15 ديسمبر 2023، 14:30:00 بالتوقيت العالمي المنسق (UTC+0)

2. تنسيق الوقت النسبي

00000X000000000R // X = الأيام (00-99)
000003000000000R  // صلاحية 3 أيام

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

1. انتهاء صلاحية كلمة المرور لمرة واحدة (صلاحية قصيرة)

validity_period: "000000010000000R" // صلاحية ساعة واحدة
    

2. الحملة الترويجية (صلاحية ممتدة)

validity_period: "000007000000000R" // صلاحية 7 أيام
    

3. انتهاء الصلاحية عند منتصف الليل (وقت مطلق)

validity_period: "231215235959000+" // تنتهي في 15 ديسمبر 2023، 23:59:59 بالتوقيت العالمي المنسق (UTC+0)
    

أمثلة على وحدات بيانات بروتوكول SMPP (PDUs)

المثال 1: صلاحية 24 ساعة (تنسيق نسبي)

0000001D  // طول الأمر (29 بايت)
00000004  // معرف الأمر (SubmitSM)
00000001  // رقم التسلسل
...
00        // علم الأولوية
00        // وقت التسليم المجدول
303030303234303030303030305200  // "00002400000000R" (24 ساعة)
00        // التسليم المسجل
...
    

المثال 2: وقت انتهاء الصلاحية المطلق

0000002A  // طول الأمر (42 بايت)
00000004  // معرف الأمر (SubmitSM)
00000002  // رقم التسلسل
...
00        // وقت التسليم المجدول
3233313231323332353935393030302B00  // "231212235959000+" (12 ديسمبر 2023، 23:59:59 بالتوقيت العالمي المنسق (UTC+0))
...
    

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

  • scheduled_delivery_time: تبدأ فترة الصلاحية من الوقت المجدول إذا تم تعيينه
  • priority_flag: قد تتجاوز الرسائل ذات الأولوية العالية إعدادات فترة الصلاحية في بعض مراكز خدمة الرسائل القصيرة
  • registered_delivery: يتم إرسال إيصالات التسليم حتى بعد انتهاء فترة الصلاحية

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

  • استخدام التنسيق النسبي دون لاحقة 'R'
  • تعيين فترات صلاحية أطول من الحدود المسموح بها في مركز خدمة الرسائل القصيرة (مثل 30 يومًا كحد أقصى)
  • عدم تطابق المناطق الزمنية بين الوقت المجدول وفترة الصلاحية
  • افتراض أن جميع مراكز خدمة الرسائل القصيرة تدعم التنسيق النسبي (يجب التحقق من مزود الخدمة)
ملاحظة حول سلوك مركز خدمة الرسائل القصيرة:
يقوم العديد من مراكز خدمة الرسائل القصيرة بتحويل الفترات النسبية إلى طابع زمني مطلق عند استلام الرسالة. يستمر العد التنازلي حتى إذا أعيد تشغيل مركز خدمة الرسائل القصيرة.

فترة الصلاحية مقابل الإعدادات الافتراضية لمركز خدمة الرسائل القصيرة

قيمة فترة الصلاحية سلوك مركز خدمة الرسائل القصيرة
NULL أو 00 يستخدم الإعداد الافتراضي لمركز خدمة الرسائل القصيرة (يختلف حسب المزود)
قيمة محددة يحترم القيمة (ضمن حدود مركز خدمة الرسائل القصيرة)
طابع زمني ماضي يتم التخلص من الرسالة فورًا

الختام

يعد حقل فترة الصلاحية ضروريًا للتحكم في دورة حياة الرسالة في بروتوكول SMPP. بينما توفر الطوابع الزمنية المطلقة الدقة، توفر التنسيقات النسبية البساطة لحالات الاستخدام الشائعة. يجب دائمًا تنسيق إعدادات الصلاحية مع سياسات مركز خدمة الرسائل القصيرة واختبار الحالات الحدية (مثل تغييرات التوقيت الصيفي). للتنفيذات التفصيلية، راجع القسم 5.2.18 من مواصفات SMPP الإصدار 3.4 ووثائق GSM 03.40.

More information