أداة مجانية · المراسلة

فك رموز أخطاء SMPP وPDU

الصقوا قيمة command_status، أو حقلي stat وerr من تقرير تسليم، أو وحدة PDU بالصيغة الست عشرية، وشاهدوا معناها وما يجب التحقق منه بعد ذلك.

تبقى البيانات في متصفحك؛ لا يرفع أي شيء.

جرب مثالا:

كيف يعمل وما حدوده

يعمل في متصفحك: ما تدخله يبقى على جهازك ولا يتم رفعه أبدا.

تقرأ الأداة وحدات PDU وفق تخطيطي الإصدارين SMPP v3.4 وv5.0: الترويسة، والأمر، والرقم التسلسلي، والحقول الإلزامية، ومعاملات TLV الاختيارية. وتشرح قيم command_status القياسية بكلمات بسيطة.

رموز err في تقارير التسليم غير موحدة: فلكل SMSC رموزه الخاصة. وحين نعرض معنى لرمز err فهو تعيين عام ومجهول الهوية، موسوم بأنه يختلف من SMSC إلى آخر.

مصادر البيانات والتراخيص

Operator names, brands and codes shown here are public reference data compiled from national regulators and other public sources. Their appearance does not indicate any partnership, endorsement, agreement or connectivity between unicomam.com and the named operators. All trademarks belong to their owners. Data is provided “as is” with no warranty; verify against the official source before relying on it for routing, billing or compliance decisions.

المعلومات التنظيمية للاستئناس فقط ولا تُعدّ استشارة قانونية؛ راجع رابط الجهة التنظيمية وتاريخ «آخر تحقق».

Decodes PDUs per the SMPP v3.4 / v5.0 protocol specifications (opens in a new tab) (SMPP Developers Forum / SMS Forum). DLR “err” codes are SMSC-specific; mappings shown are generic and anonymised.

كيف تقرأون أخطاء SMPP وتقارير التسليم

يبلغ بروتوكول SMPP عن المشكلات في موضعين. فقيمة command_status في الرد على الطلب تبين ما إذا كان الطلب مقبولا أصلا؛ أما تقرير التسليم، الذي يصل لاحقا في صورة deliver_sm، فيبين ما حدث للرسالة في طريقها إلى الهاتف. اقرؤوا قيمة command_status أولا: فالرفض هناك يتعلق بالطلب نفسه، ولا تنتج تقارير التسليم إلا عن الرسائل المقبولة.

قيمة command_status التي تساوي صفرا تعني أن الطلب مقبول. وتشير القيم القياسية الأخرى إلى سبب: عملية الربط (قيمة system_id أو كلمة مرور خاطئة، أو أمر لا يسمح به نوع الربط)، أو العناوين (وجهة غير صالحة، أو قيمة TON أو NPI لا يقبلها المسار)، أو الرسالة نفسها (طولها أو data_coding أو esm_class)، أو معدل النقل، حين يرسل الاتصال أسرع من المتفق عليه. ويضيف الإصدار SMPP v5.0 قيما لأنواع الخدمة والبث الخلوي، ويترك نطاقا لموردي SMSC تختلف دلالته من منصة إلى أخرى.

يحمل تقرير التسليم قيمة stat مثل DELIVRD أو UNDELIV أو EXPIRED أو REJECTD، ورمز err يبين السبب. وقيم stat مشتركة بين معظم المنصات. أما رموز err فغير موحدة: إذ يحتفظ كل SMSC بقائمته الخاصة، وإن كان كثير منها ينقل السبب الذي أبلغت عنه شبكة الهاتف المحمول، لذا قد يعني الرقم نفسه أشياء مختلفة على مسارات مختلفة. تعاملوا مع القراءة العامة على أنها نقطة بداية، واطلبوا من مزود المسار قائمة رموزه.

حين لا تتوفر لديكم سوى وحدة PDU خام، تخبركم الترويسة بالأمر وحالته والرقم التسلسلي الذي يربط الطلب برده. وتليها الحقول الإلزامية بترتيب ثابت لكل أمر، وتأتي المعاملات الاختيارية، أي TLV، في النهاية، ولكل منها وسم وطول وقيمة. وإذا كانت قيمة command_length غير مطابقة، أو انتهى حقل قبل أوانه، فالأغلب أن العميل بنى وحدة PDU بشكل غير صحيح.

تستخدم معظم اتصالات A2P الإصدار SMPP v3.4؛ ويضيف الإصدار v5.0 أوامر ومعاملات تدعمها منصات أقل. وتغطي الأداة الإصدارين، وتعمل في متصفحكم، ولا ترسل ما تلصقونه إلى أي مكان.

الأسئلة الشائعة

لماذا يعني رمز err نفسه أشياء مختلفة؟

رموز الخطأ داخل تقارير التسليم يحددها كل SMSC وليس مواصفة SMPP، لذلك قد يستخدم مساران الرقم نفسه لأسباب مختلفة. تعاملوا مع التعيينات العامة على أنها نقطة بداية.

هل يمكنني لصق وحدة PDU خام؟

نعم، بالصيغة الست عشرية. تعمل الأداة في متصفحكم ولا تغادر وحدة PDU جهازكم أبدا.

ما إصدارات SMPP المدعومة؟

الإصدار SMPP v3.4، الذي تستخدمه معظم اتصالات A2P، والإصدار v5.0.