كيف تعمل عمليات SMPP submit_sm و smpp deliver_sm

توفر هذه الصفحة معلومات حول كيفية عمل إجراء إرسال الرسائل القصيرة (SMS). سترى أيضًا ما يحدث داخل شبكة الهاتف المحمول بعد أن تقوم بإرسال رسالة SMS الخاصة بك إلى خادم SMPP باستخدام وحدة بيانات البروتوكول (PDU) SUBMIT_SM.

ما هو SMPP submit_sm

SMPP submit_sm هي وحدة بيانات بروتوكول SMPP (SMPP PDU) المستخدمة لإرسال رسالة SMS إلى خادم Ozeki SMPP.

SMPP submit_sm

وحدة بيانات SMPP submit_sm PDU هي الوحدة التي يتم إرسالها إلى خادم SMPP، عندما يرغب عميل SMPP في إرسال رسائل SMS باستخدام بروتوكول SMPP. بعد استلام هذه الوحدة من قبل خادم SMPP، يتم البحث عن رقم الهاتف في سجل الموقع الرئيسي (HLR) لمشغل شبكة الهاتف المحمول. يعد البحث في HLR ضروريًا للعثور على الشبكة التي يتواجد فيها الهاتف المحمول حاليًا عند التجوال. بمجرد توفر هذه المعلومات، يتم توجيه الرسالة القصيرة إلى محطة التحويل المتنقلة (MSC) للشبكة. هذه المحطة مسؤولة عن تسليم الرسالة القصيرة إلى الجهاز المستقبل. الخطوة النهائية تتم بواسطة MSC. حيث يتم توجيه الرسالة القصيرة إلى الجهاز المستقبل (الشكل 1).

الشكل 1 - مسار رسالة SMS في شبكة الهاتف المحمول

شرح تسليم رسالة SMPP submit_sm SMS

  • يتم إرسال الرسالة بواسطة عميل SMPP
  • يتم استلام الرسالة بواسطة خادم SMPP
  • يقوم خادم SMPP بإرجاع تقرير الإرسال (submit_sm_resp)
  • يتم إجراء بحث في HLR بواسطة SMSC
  • يتم توجيه الرسالة إلى MSC
  • يتم إرسال الرسالة إلى الهاتف المحمول
  • يقوم الهاتف المحمول بتأكيد استلام الرسالة
  • ترسل MSC إشعارًا إلى SMSC
  • يقوم خادم SMPP في SMSC بإنشاء تقرير تسليم
  • يقوم خادم SMPP بإرسال تقرير التسليم إلى عميل SMPP
  • يقوم عميل SMPP بتأكيد استلام تقرير التسليم

كما ترى في الشكل 1، الجزء الثاني من إجراء إرسال الرسالة القصيرة هو عملية تسليم تقرير تسليم الرسالة القصيرة. يتم ذلك بواسطة خادم SMPP باستخدام وحدة بيانات البروتوكول SMPP deliver_sm. يتم إرجاع تقرير التسليم إلى عميل SMPP بنفس الطريقة التي يتم بها إرجاع رسالة SMS عادية.

شرح مثال SMPP submit_sm

يظهر الرسم التالي مثالًا لوحدة بيانات SMPP submit_sm PDU التي تم إرسالها بواسطة عميل SMPP الخاص بـ Ozeki 10 SMS Gateway. في الشكل يمكنك رؤية وحدة بيانات SMPP bind تسمى SMPP bind_transmitter. يتبع ذلك وحدة بيانات SMPP submit_sm PDU، ووحدة بيانات SMPP deliver_sm PDU. (الشكل 2)

الشكل 2 - مثال لوحدة بيانات SMPP submit_sm PDU

مثال SMPP submit_sm

2021-04-06 12:06:25.356 INFO SMPP_client_1: <- 00000098000000040000000000000002000101303030303030300001013336323035343630363930000000010000010000006548656C6C6F2C205468697320697320612074657374206D6573736167652066726F6D204F7A656B6920534D5320476174657761792E20506C65617365207669736974207777772E6F7A656B692E687520666F72206D6F726520696E666F726D6174696F6E2E
2021-04-06 12:06:25.356 INFO SMPP_client_1: -> 0000001B8000000400000000000000023339373439363831303500

مثال SMPP deliver_sm

2021-04-06 12:06:27.033 INFO SMPP_client_1: -> 000000AA000000050000000000000001000101303030303030300001013336323035343630363930000400000000000003007769643A33393734393638313035207375623A30303120646C7672643A303031207375626D697420646174653A3231303430363132303620646F6E6520646174653A3231303430363132303620737461743A44454C49565244206572723A30303020746578743A44656C697665727920737563636573732E
2021-04-06 12:06:27.033 INFO SMPP_client_1: <- 0000001180000005000000000000000100

فيديو تعليمي عن SMPP submit_sm

يوضح الفيديو التالي كيفية إعداد اتصال عميل SMPP وكيفية إرسال رسائل SMS باستخدام وحدة بيانات SMPP submit_sm PDU.

الفيديو 1 - كيفية إعداد اتصال عميل SMPP وإرسال رسائل SMS باستخدام وحدة بيانات SMPP submit_sm PDU (فيديو تعليمي)

معلمات SMPP submit_sm (قائمة سريعة)

معلمات submit_sm

  1. طول الأمر
  2. معرف الأمر
  3. حالة الأمر
  4. رقم التسلسل
  5. نوع الخدمة
  6. عنوان المصدر
  7. عنوان الوجهة
  8. إشارات الرسائل القصيرة
  9. الطوابع الزمنية
  10. مخطط ترميز البيانات
  11. الرسالة القصيرة

معلمات SMPP submit_sm

اسم الحقل الحجم (بايت) النوع الوصف
command_length 4 عدد صحيح يتم تعيينه إلى الطول الإجمالي لـ PDU.
command_id 4 عدد صحيح 0x00000004
command_status 4 عدد صحيح 0x00000000
sequence_number 4 عدد صحيح يتم تعيينه إلى رقم تسلسلي فريد. سيقوم PDU المرتبط بـ submit_sm_resp بإعادة هذا الرقم التسلسلي.
service_type متغير. الحد الأقصى 6 سلسلة C-Octet يمكن استخدام معلمة service_type للإشارة إلى خدمة تطبيق SMS المرتبطة بالرسالة. تحديد service_type يسمح لـ ESME بالاستفادة من خدمات المراسلة المحسنة مثل "استبدال حسب service_type" أو التحكم في الخدمة الهاتفية المستخدمة في واجهة الهواء.
يتم تعيينه إلى NULL لإعدادات MC الافتراضية
source_addr_ton 1 عدد صحيح نوع الرقم لعنوان المصدر.
إذا لم يكن معروفًا، يتم تعيينه إلى NULL (غير معروف).
source_addr_npi 1 عدد صحيح مؤشر خطة الترقيم لعنوان المصدر.
إذا لم يكن معروفًا، يتم تعيينه إلى NULL (غير معروف).
source_addr متغير. الحد الأقصى 21 سلسلة C-Octet عنوان SME الذي بدأ هذه الرسالة.
إذا لم يكن معروفًا، يتم تعيينه إلى NULL (غير معروف).
dest_addr_ton  1  عدد صحيح  نوع الرقم للوجهة
dest_addr_npi1عدد صحيحمؤشر خطة الترقيم للوجهة
destination_addr متغير. الحد الأقصى 21 سلسلة C-Octet عنوان الوجهة لهذه الرسالة القصيرة. بالنسبة للرسائل المنتهية بالجوال، هذا هو رقم دليل MS المستلم
esm_class1عدد صحيحيشير إلى وضع الرسالة ونوع الرسالة
protocol_id1عدد صحيحمعرف البروتوكول. حقل خاص بالشبكة.
priority_flag1عدد صحيحيحدد مستوى أولوية الرسالة
schedule_delivery_time 1 أو 17 سلسلة C-Octet يتم جدولة الرسالة القصيرة بواسطة MC للتسليم.
يتم تعيينه إلى NULL لتسليم الرسالة الفوري
validity_period 1 أو 17 سلسلة C-Octet فترة صلاحية هذه الرسالة.
يتم تعيينه إلى NULL لطلب فترة الصلاحية الافتراضية لـ MC.
ملاحظة: يتم استبدال هذا بواسطة TLV qos_time_to_live إذا تم تحديده.
registered_delivery 1 عدد صحيح مؤشر للإشارة إلى ما إذا كان مطلوبًا إيصال استلام من MC، أو ACK يدوي، أو ACK تسليم، أو إشعار وسيط.
replace_if_present_flag 1 عدد صحيح علم يشير إلى ما إذا كانت الرسالة المقدمة يجب أن تحل محل رسالة موجودة.
data_coding1عدد صحيحيحدد مخطط ترميز بيانات مستخدم الرسالة القصيرة.
sm_default_msg_id 1 عدد صحيح يشير إلى الرسالة القصيرة المرسلة من قائمة الرسائل القصيرة المحددة مسبقًا ("المعلبة") المخزنة على MC. إذا لم يتم استخدام رسالة معلبة من MC، يتم تعيينه إلى NULL.
sm_length1عدد صحيحالطول بالبايت لبيانات مستخدم الرسالة القصيرة.
short_message متغير. 0-255 سلسلة Octet ما يصل إلى 255 بايت من بيانات مستخدم الرسالة القصيرة.
قد يختلف الحد الفعلي الدقيق لحجم short_message حسب الشبكة الأساسية.
ملاحظة: يتم استبدال هذا الحقل بواسطة TLV message_payload إذا تم تحديده.
Message Submission TLVs متغير. TLV

More information