ESME_RINVDSTADR في بروتوكول SMPP

ما هو ESME_RINVDSTADR؟

ESME_RINVDSTADR (كود الخطأ: 0x0000000B) هو خطأ في بروتوكول SMPP يشير إلى أن عنوان الوجهة المقدم في الطلب غير صالح أو غير مسموح به من قبل SMSC.

الأسباب المحتملة

  • حقل destination_addr فارغ أو غير مهيأ بشكل صحيح.
  • رقم الوجهة أطول أو أقصر من الطول المسموح به.
  • رقم الوجهة يحتوي على أحرف غير صالحة (مثل الحروف أو الرموز الخاصة).
  • قيم dest_addr_ton و dest_addr_npi غير صحيحة أو غير مدعومة.
  • رقم الوجهة محظور أو غير قابل للتوجيه من قبل SMSC.

متى يحدث هذا الخطأ؟

يحدث هذا الخطأ عند إرسال PDU في بروتوكول SMPP (مثل submit_sm) بعنوان وجهة غير صالح أو غير مدعوم.

مثال على معاملة PDU في SMPP

PDU submit_sm غير صحيح (عنوان وجهة غير صالح)

0000002C (الطول)
00000004 (معرف الأمر لـ submit_sm)
00000000 (حالة الأمر)
00000002 (رقم التسلسل)
00000000 (نوع الخدمة)
05 (مصدر عنوان TON - أبجدي رقمي)
00 (مصدر عنوان NPI - غير معروف)
74657374 000000 (عنوان المصدر: "test")
01 (عنوان الوجهة TON - دولي)
01 (عنوان الوجهة NPI - ISDN)
00000000 (عنوان الوجهة فارغ)
00 (علامة الأولوية)
01 (علامة التسليم المسجل)
00000000 (طول الرسالة)
48656C6C6F (الرسالة: "Hello")
    

رد PDU (submit_sm_resp) مع ESME_RINVDSTADR

00000010 (الطول)
80000004 (معرف الأمر لـ submit_sm_resp)
0000000B (حالة الأمر - ESME_RINVDSTADR)
00000002 (رقم التسلسل)
    

المشكلة: حقل destination_addr فارغ، مما تسبب في رفض SMSC للطلب.

كيف يتم حلها؟

  • تأكد من أن حقل destination_addr يحتوي على رقم هاتف صالح.
  • استخدم قيم صالحة لـ dest_addr_ton و dest_addr_npi:
    • للأرقام الدولية: dest_addr_ton = 1, dest_addr_npi = 1
    • للأرقام المحلية: dest_addr_ton = 2, dest_addr_npi = 1
  • تحقق من أن رقم الوجهة ضمن الطول والتنسيق المدعوم.
  • تأكد من أن الرقم غير محظور أو مقيد من قبل SMSC.
  • قم بتمكين سجلات التصحيح لفحص القيمة المرسلة في PDU بدقة.

إذا استمرت المشكلة، اتصل بمزود SMSC لتأكيد قواعد التوجيه لرقم الوجهة.

More information