BroadNet
SMPPالعمليات

صيغة إيصالات تسليم SMPP (DLR)

آخر تحديث 2 دقائق للقراءةقائم على المعايير
إجابة مباشرة

إيصال التسليم (DLR) هو deliver_sm يشير esm_class فيه إلى أنه إيصال. ويحمل short_message نصًا بصيغة ثابتة — id وsub وdlvrd وتاريخ الإرسال وتاريخ الإنجاز وstat وerr وText — محدَّدة في الملحق B من مواصفة SMPP v3.4. وحقل stat (DELIVRD وEXPIRED وUNDELIV وREJECTD…) هو الحالة النهائية للرسالة.

مخططجلسة SMPP بين منصتكم وBroadNet
منصتكم (ESME)
BroadNet SMSC
اتصال TCP/TLS مستمر واحد
  1. bind_transceiverفتح الجلسة والمصادقة عليها
  2. bind_transceiver_respتم قبول الجلسة
  3. submit_smإرسال رسالة
  4. submit_sm_respتم القبول، وإعادة معرف الرسالة
  5. deliver_smإيصال استلام أو رسالة واردة
  6. deliver_sm_respتم التأكيد
  7. enquire_linkإشارة Keepalive أثناء الخمول
§01

نص الإيصال وفق الملحق B

حين يبلّغ SMSC عن مصير رسالة، يرسل deliver_sm مع ضبط بتّ الإيصال في esm_class (0x04) ويضع سلسلة نصية مهيكلة في short_message. والصيغة محدَّدة في الملحق B من مواصفة v3.4. وكل حقل مفتاح يتبعه قيمة؛ ويربط حقل id الإيصال بقيمة message_id من submit_sm_resp لديك.

إيصال تسليم ناجح (محتوى short_message)text
id:0a1b2c3d4e sub:001 dlvrd:001 submit date:2607181432 done date:2607181433 stat:DELIVRD err:000 Text:Your code is 4
§02

حقلًا بحقل

الإيصال مقتضب لكن كل حقل مهمّ للمطابقة. تستخدم التواريخ الصيغة YYMMDDhhmm. ويحصي sub وdlvrd الأجزاء المُرسَلة والمُسلَّمة. وstat الحالة النهائية بسبعة محارف. وerr رمز خطأ خاص بالشبكة/SMSC (000 عند النجاح). وText أول 20 محرفًا من الرسالة الأصلية.

حقول إيصال التسليم (الملحق B)
الحقلالمعنى
idSMSC message_id من submit_sm الأصلي
subعدد الرسائل القصيرة المُرسلة (أجزاء)
dlvrdعدد الرسائل القصيرة التي تم تسليمها
تاريخ التقديموقت إرسال الرسالة (YYMMDDhhmm)
تاريخ الإنجازمتى وصلت الرسالة إلى حالتها النهائية (YYMMDDhhmm)
statحالة الرسالة النهائية — كلمة مفتاحية مكونة من 7 أحرف (انظر أدناه)
errرمز خطأ خاص بالشبكة/SMSC (000 = لا يوجد)
النصأول 20 حرفًا من الرسالة الأصلية
§03

كلمات stat وأرقام message_state

كلمة stat هي الحالة النهائية القابلة للقراءة البشرية؛ ويحمل معامل message_state (0x0427) المعلومة نفسها كرقم. عامِل DELIVRD وحدها كنجاح لا لبس فيه؛ أما EXPIRED وUNDELIV وREJECTD وDELETED وUNKNOWN فهي إخفاقات نهائية. وACCEPTD وENROUTE غير نهائيتين وينبغي ألا تُغلِقا الرسالة.

كلمات stat ↔ message_state
statmessage_stateنهائي؟المعنى
ENROUTE1Noقيد النقل
DELIVRD2نعمتم التسليم إلى الهاتف المحمول
EXPIRED3نعمانقضت فترة الصلاحية
DELETED4نعمتم حذف الرسالة
UNDELIV5نعمغير قابل للتسليم
ACCEPTD6Noمقبول / تمت قراءته يدويًا
UNKNOWN7نعمالحالة غير معروفة
REJECTD8نعمتم رفضها من قبل الشبكة
§04

التحليل الآمن

حلّل الإيصال من short_message في deliver_sm، لكن اربطه بمعامل receipted_message_id (0x001E) لا بنص id وحده، ووحّد صيغتي المعرّف السداس عشرية والعشرية. وميّز الإيصالات الوسيطة (بتّ الإشعار الوسيط في esm_class) عن الحالات النهائية، وطابِق رمز err على تصنيف موحَّد — مشترك غائب، هاتف مشغول، محجوب كمزعج، رقم غير صالح — لأن قيم err الخام تتباين حسب المسار. أجب دائمًا بـ deliver_sm_resp.

التعليمات

الأسئلة المتكررة

ماذا يعني stat:DELIVRD؟

DELIVRD هي الحالة النهائية التي تعني أن الرسالة وصلت إلى هاتف المستلِم. تقابل message_state بقيمة 2 وهي قيمة stat الوحيدة التي تمثّل النجاح بلا لبس.

أين يقع نص إيصال التسليم داخل وحدة PDU؟

في حقل short_message من deliver_sm يكون فيه بتّ إيصال التسليم (0x04) مضبوطًا في esm_class. ويتبع النص صيغة الملحق B: id وsub وdlvrd وتاريخ الإرسال وتاريخ الإنجاز وstat وerr وText.

ما هو حقل err في DLR؟

err رمز خطأ خاص بالشبكة أو SMSC يعطي سبب عدم التسليم (000 يعني لا شيء). ولأن القيم تختلف حسب المسار، طابقها على تصنيف داخلي موحَّد لتقارير جودة متسقة.

لماذا لا يطابق id في DLR قيمة message_id من submit_sm_resp؟

عادةً بسبب عدم تطابق الصيغة: تعيد بعض مراكز SMSC قيمة message_id بالنظام السداس عشري في submit_sm_resp وبالعشري في الإيصال (أو العكس). وحّد كليهما إلى تمثيل واحد قبل المقارنة، وفضّل معامل receipted_message_id.

هل كل إيصالات التسليم نهائية؟

لا. ENROUTE وACCEPTD حالتان وسيطتان، وترسل بعض الشبكات إشعارات وسيطة. أغلِق الرسالة فقط على حالة stat نهائية مثل DELIVRD أو EXPIRED أو UNDELIV أو REJECTD أو DELETED أو UNKNOWN.

مراجع

مواصفات المصدر

تستند هذه الصفحة إلى المعايير المنشورة. يفتح في علامة تبويب جديدة.

BNتتم صيانته بواسطة فريق الهندسة BroadNet·خدمة الرسائل عالية الجودة منذ عام 2003
ضعه على السلك

قم بالبناء باستخدام ربط SMPP حقيقي وواجهة برمجة تطبيقات REST.

اطلب الوصول التجريبي باستخدام مفاتيح اختبار حقيقية: أرسل أولاً إلى رقمك الذي تم التحقق منه، ثم انتقل إلى الإنتاج عبر أكثر من 200 دولة بمجرد الموافقة على معرّف المُرسِل ومساراته.