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

SMPP (بروتوكول الرسائل القصيرة من نظير إلى نظير) هو بروتوكول تستخدمه أنظمة الاتصالات لتبادل رسائل SMS بين مراكز خدمة الرسائل القصيرة (SMSC) والكيانات الخارجية للرسائل القصيرة (ESMEs). أحد المكونات الرئيسية للبروتوكول هو كيفية ترميز أرقام الهواتف (عناوين المصدر والوجهة) في وحدة بيانات البروتوكول (PDU) الخاصة بـ SMPP.

معايير العناوين في SMPP

الحقول الرئيسية المستخدمة لتحديد رقم الهاتف في SMPP هي:

  • addr_ton (نوع الرقم)
  • addr_npi (مؤشر خطة الترقيم)
  • address_range أو source_addr/destination_addr

نوع الرقم (TON)

يحدد هذا الحقل تنسيق الرقم. تشمل القيم الشائعة:

القيمةTONالوصف
0غير معروفتنسيق غير معروف
1دوليالرقم يتضمن رمز الدولة
2وطنيتنسيق رقم محلي
5أبجدي رقمييستخدم لأسماء المرسلين مثل "MyCompany"

مؤشر خطة الترقيم (NPI)

يحدد هذا الحقل تنسيق الترقيم. القيم الشائعة:

القيمةNPIالوصف
0غير معروفتنسيق غير معروف
1ISDN (E.164)تنسيق رقم الهاتف الدولي القياسي
3بياناتشبكة بيانات (X.121)

ترميز العنوان

عند ترميز رقم هاتف في SMPP، يرسل النظام الرقم كسلسلة منتهية بقيمة فارغة (null) بتنسيق ASCII، مصحوبة بقيم TON و NPI المناسبة.

مثال:

رقم الهاتف: +14155552671
TON: 1 (دولي)
NPI: 1 (ISDN/E.164)
مشفر كـ: 31 34 31 35 35 35 35 32 36 37 31 00  (ASCII "14155552671" + NULL)

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

فيما يلي مثال على PDU من نوع submit_sm يتضمن رقم وجهة:

0000003F  // طول الأمر (63 بايت)
00000004  // معرف الأمر (submit_sm)
00000000  // حالة الأمر
00000001  // رقم التسلسل
74657374  // service_type: "test"
01        // source_addr_ton: دولي
01        // source_addr_npi: ISDN
31323334  // source_addr: "1234" (ASCII)
00        // نهاية السلسلة (NULL)
01        // dest_addr_ton: دولي
01        // dest_addr_npi: ISDN
2B393138  // destination_addr: "+918123456789" (ASCII، بدون +)
31323334
35363738
3900      // نهاية السلسلة (NULL)
00        // esm_class
00        // protocol_id
00        // priority_flag
00        // schedule_delivery_time (null)
00        // validity_period (null)
00        // registered_delivery
00        // replace_if_present_flag
00        // data_coding (افتراضي GSM)
00        // sm_default_msg_id
0D        // sm_length (13)
48656C6C  // الرسالة القصيرة ("Hello, World!")
6F2C2057
6F726C64
2100

مثال مرسل أبجدي رقمي

عند استخدام اسم مرسل أبجدي رقمي (شائع في رسائل SMS الجماعية أحادية الاتجاه):

المرسل: "MyBrand"
TON: 5 (أبجدي رقمي)
NPI: 0 (غير معروف أو غير ذي صلة)
مشفر: سلسلة ASCII "MyBrand" + نهاية السلسلة (NULL)

ملاحظات مهمة

  • يجب ألا يتجاوز طول هويات المرسلين الأبجدية الرقمية 11 حرفًا.
  • لا يتم دعم العناوين الأبجدية الرقمية في جميع البلدان.
  • تأكد دائمًا من مطابقة TON و NPI بشكل صحيح مع تنسيق العنوان لتجنب مشكلات التوجيه.

الختام

يعد ترميز الأرقام في SMPP أمرًا بالغ الأهمية لضمان تسليم الرسائل بشكل صحيح. من خلال تعيين قيم TON و NPI الصحيحة وترميز العنوان بشكل صحيح بتنسيق ASCII (منتهي بقيمة NULL)، يمكن للمطورين ضمان التوافق مع مراكز خدمة الرسائل القصيرة (SMSCs) وشبكات الهاتف المحمول.

More information