BroadNet
البروتوكولات وواجهات API قائمة تحقق مجانية

قائمة تدقيق تكامل SMPP

قائمة تدقيق ميدانية لتكامل SMPP v3.4/v5.0: أنواع الربط، وTLVs الاختيارية، ومعالجة إيصالات التسليم، وإشارات enquire_link، والتقييد، وTLS، وخطة اختبار قبل الإنتاج.

33 نقطة تحقق4 دقائق قراءةآخر تحديث
أرسل لي ملف PDF
باختصار

SMPP (بروتوكول الرسائل القصيرة النظير إلى النظير) هو البروتوكول الثنائي الذي يعرضه معظم المجمِّعين والمشغّلين لمراسلة A2P عالية الإنتاجية. التكامل النظيف لا يتعلق كثيرًا بكتابة PDUs بقدر ما يتعلق بضبط التفاصيل التشغيلية بشكل صحيح: اختيار نمط الربط المناسب، واحترام حدود النافذة والتقييد، وتحليل إيصالات التسليم بشكل موثوق، وإبقاء الجلسة حيّة، وتأمين طبقة النقل. اعمل من الأعلى إلى الأسفل — كل مجموعة نقطة تدقيق يمكنك اعتمادها قبل ترقية ربط إلى الإنتاج.

قائمة التحقق

اعمل عليها بندًا بندًا، وضع علامة على ما تنجزه.

مخططجلسة 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

إعداد الجلسة والربط

اختر نمط الربط الصحيح لاتجاه حركتك وتأكّد من إصدار البروتوكول المتفاوَض عليه قبل إرسال أي رسالة.

  • تأكّد من إصدار SMPP — v3.4 لمعظم المسارات، وv5.0 حيث يدعم المزوّد حالة الازدحام وTLVs المحسَّنة.v5.0 متوافق مع الإصدارات السابقة؛ لا تفترض توفّر الميزات حتى تؤكدها bind_resp.
  • اختر نمط الربط الصحيح لكل جلسة.مُرسِل (MT فقط)، أو مستقبِل (DLR/MO فقط)، أو مرسِل-مستقبِل (كلاهما في جلسة واحدة). فضّل المرسِل-المستقبِل لتقليل عدد الاتصالات إلى النصف حيثما يسمح المزوّد.
  • اضبط system_id وpassword وsystem_type وaddress_range بدقة كما هو مُتاح من المزوّد.نطاق عنوان غير مطابق يحظر بصمت توجيه MO/DLR على روابط المستقبِل.
  • اتفق على عدد الروابط المتزامنة وTPS لكل ربط مع المزوّد كتابيًا.فتح روابط أكثر من المُتاح هو السبب الأكثر شيوعًا لتقييد الحساب أو إسقاطه.
  • تعامل مع رموز حالة bind_resp بوضوح — أعد المحاولة عند ESME_RALYBND وأبطئ تدريجيًا (backoff) عند ESME_RBINDFAIL.لا تُعِد محاولة الربط الفاشل في حلقة سريعة؛ استخدم تباطؤًا أُسّيًا (exponential backoff) مع تشويش زمني عشوائي (jitter).
02

إرسال الرسائل (submit_sm)

  • اضبط source_addr_ton / source_addr_npi وdest_addr_ton / dest_addr_npi بشكل صحيح لمعرّفات المُرسِلين الأبجدية الرقمية مقابل الرقمية.المرسل الأبجدي الرقمي ← TON 5 (أبجدي رقمي)؛ ورقم MSISDN الدولي ← TON 1، NPI 1.
  • اختر data_coding الصحيح: GSM 7-bit (0)، أو 8-bit (4)، أو UCS-2 (8) ليونيكود.خلط الترميزات دون ضبط data_coding يسبّب نصًا مشوَّهًا وتجزئة خاطئة.
  • نفّذ تسلسل الرسائل الطويلة عبر UDH أو TLVs الاختيارية من نوع SAR (sar_msg_ref_num، sar_total_segments، sar_segment_seqnum).اختر طريقة واحدة والتزم بها؛ بعض المسارات ترفض UDH وأخرى ترفض SAR TLVs.
  • اطلب إيصالات التسليم بـ registered_delivery = 1 فقط حيثما تستهلكها.طلب إيصالات DLR لا تحلّلها يهدر معدل النقل ويمكن أن يُطلق تحذيرات من جهة المزوّد.
  • احترم دلالات validity_period وschedule_delivery_time وفق حالة استخدامك (OTP = صلاحية قصيرة).رموز OTP قصيرة العمر يجب أن تحمل validity_period ضيقًا بحيث لا تُسلَّم الرسائل القديمة متأخرة.
03

المعاملات الاختيارية (TLVs) الجديرة بالضبط

  • message_payload — للحمولات التي تتجاوز حد حقل short_message.لا تملأ كلًا من short_message وmessage_payload معًا؛ المزوّدون يرفضون ذلك.
  • معاملات sar_* — تسلسل قياسي دون بايتات UDH داخل الجسم.
  • dest_addr_subunit / source_addr_subunit — حيث يتطلبها المسار لتوجيه الجهاز.
  • احمل بيانات وصفية من العميل فقط في TLVs معتمَدة من المزوّد.TLVs مخصَّصة خارج النطاق المتفَق عليه تُحذَف عادةً أو تسبّب أخطاء تحليل لاحقة.
04

معالجة إيصالات التسليم (DLR)

تصل إيصالات التسليم كـ PDUs من نوع deliver_sm وهي العمود الفقري لتسوية بياناتك وتقارير الجودة.

  • حلّل الإيصال من حقل short_message في deliver_sm: id، sub، dlvrd، تاريخ الإرسال، تاريخ الإنجاز، stat، err.حقل `stat` (DELIVRD، UNDELIV، EXPIRED، REJECTD، إلخ) هو حالتك النهائية.
  • اربط إيصالات DLR بعملية الإرسال باستخدام صيغة message_id الخاصة بالمزوّد، وليس نص الإيصال وحده.قد يُعاد message_id بصيغة سداسية عشرية في submit_resp لكن عشرية في DLR — وحّد الصيغتين.
  • عامل الإيصالات الوسيطة (غير النهائية) بشكل منفصل عن الحالات النهائية.البِت 0x04 في esm_class يشير إلى إيصال تسليم؛ يجب أن تُغلق قيم `stat` النهائية فقط الرسالة.
  • أعِد دائمًا deliver_sm_resp — الإيصال غير المؤكَّد يُعاد إرساله ويمكن أن يعطّل النافذة.استجب فورًا حتى لو كانت معالجتك اللاحقة غير متزامنة.
  • اربط رموز أخطاء المشغّل بتصنيف موحَّد (مشترك غير موجود، جهاز مشغول، محظور كسبام، رقم غير صالح).رموز الخطأ الخام تختلف حسب المسار؛ التصنيف الموحَّد يجعل مقارنة الجودة عبر المسارات ممكنة.
05

الإبقاء حيًا والتحكّم بالتدفق

  • أرسل enquire_link على مؤقت خمول (عادةً 30–60 ثانية) وعامل استجابة enquire_link_resp المفقودة كجلسة ميتة.هذه هي الطريقة الوحيدة الموثوقة لكشف اتصال TCP نصف مفتوح.
  • نفّذ نافذة SMPP: حدّد سقفًا لـ PDUs غير المؤكَّدة وأوقف الإرسال عند امتلاء النافذة.إطلاق submit_sm بشكل أعمى بعد النافذة هو ما يُطلق ESME_RTHROTTLED.
  • أبطئ تدريجيًا (backoff) عند ESME_RTHROTTLED (0x58) بدلًا من إعادة المحاولة فورًا.أضف اهتزازًا عشوائيًا بحيث لا تتزامن عواصف إعادة الاتصال عبر العمّال.
  • احترم unbind / unbind_resp للإيقاف السلس؛ أعد الاتصال مع تباطؤ تدريجي عند الانقطاعات غير المتوقعة.
06

أمان طبقة النقل (TLS)

  • استخدم SMPP عبر TLS حيثما يعرضه المزوّد؛ عطّل الروابط النصية الصريحة في الإنتاج.لا يملك SMPP تشفيرًا أصليًا — TLS هو ضابط طبقة النقل.
  • ثبّت أو تحقّق من سلسلة شهادة الخادم وطبّق TLS 1.2 فأعلى.ارفض الشهادات المنتهية أو الموقّعة ذاتيًا؛ لا تعطّل التحقق 'لجعله يعمل'.
  • قيّد الروابط بعناوين IP مسموحة على الطرفين.السماح بعناوين IP ضابط قياسي لدى المشغّلين وطريقة سريعة لاحتواء تسرّبات بيانات الاعتماد.
  • دوّر بيانات اعتماد SMPP بشكل مجدوَل وخزّنها في مدير أسرار، لا في الشيفرة أبدًا.
07

خطة اختبار قبل الإنتاج

  • أرسل إلى رقم MSISDN اختباري حي على كل مسار مستهدف وتأكّد من استلام الجهاز من طرف إلى طرف.
  • تحقّق من رحلة DLR الكاملة لحالات مُسلَّمة وغير مُسلَّمة ومنتهية الصلاحية ومرفوضة.
  • اختبر الرسائل الطويلة (متعددة الأجزاء) ومحتوى يونيكود (UCS-2) على كل مسار.
  • اختبر الحمل عند TPS المُتاح لك وتأكّد من سلوك سلس عند سقف النافذة/التقييد.
  • حاكِ انقطاع اتصال في منتصف النافذة وتأكّد من إعادة اتصال نظيفة دون إرسال مزدوج.الـ idempotency عند إعادة المحاولة تمنع الفوترة المزدوجة والتسليم المزدوج للجهاز.
  • تأكّد من المراقبة: حالة الربط، إشغال النافذة، زمن استجابة الإرسال/DLR، ومعدلات رموز الأخطاء — كلها تُنبِّه.
المراجع

المعايير ومراجع الجهات التنظيمية المذكورة في هذا الدليل. BroadNet عضو منتسب في GSMA وعضو في MEF وتشغّل خدمات مراسلة بمستوى المشغّلين منذ عام 2003.

احصل على ملف PDF

أرسل لي «SMPP Integration Checklist» عبر البريد الإلكتروني.

سنرسل إلى بريدك نسخة PDF نظيفة وقابلة للطباعة من قائمة التحقق هذه لتشاركها مع فريقك أو تحتفظ بها لطلب العروض (RFP). لن يتواصل معك مهندس المراسلة إلا إذا طلبت ذلك — بلا رسائل مبيعات مزعجة.

  • ملف PDF قابل للطباعة، صفحة لكل قسم
  • كل محتوى هذه الصفحة، منسّقًا للمشاركة
  • اختياري: مكالمة مع أحد مهندسي BroadNet

تفضّل عدم مشاركة بريدك الإلكتروني؟ استخدم طباعة / حفظ كملف PDF في الأعلى — قائمة التحقق كاملةً موجودة في هذه الصفحة.

خط مباشر · نرد خلال يوم عمل واحد

أرسل لي «SMPP Integration Checklist»

أخبرنا أين نرسله. سنرسل ملف PDF عبر البريد الإلكتروني ولن نتواصل معك لاحقًا إلا إذا طلبت ذلك.

  1. 1من
  2. 2الحاجة
  3. 3السياق

نرد خلال يوم عمل واحد، ونرسل عروض الأسعار خلال يومَي عمل.