SMPP - بروتوكول الرسائل القصيرة من نظير إلى نظير

تحية! على الرغم من أن الرسل والشبكات الاجتماعية ينتشرون في أساليب الاتصال التقليدية كل يوم ، إلا أن هذا لا ينتقص من شعبية الرسائل القصيرة. يوضح التحقق على موقع شائع ، أو إشعار المعاملة ، أنهما سيعيشان وسيعيشان. هل تساءلت يوما كيف يعمل كل شيء؟ في كثير من الأحيان ، يتم استخدام SMPP لإرسال رسائل جماعية ، والتي سيتم مناقشتها تحت القط.

كانت هناك بالفعل مقالات عن هبر حول smpp ، 1 ، 2 ، لكن الغرض منها لم يكن وصف البروتوكول نفسه. بالطبع ، يمكنك البدء على الفور بالمصدر الرئيسي - المواصفات ، لكنني أعتقد أنه سيكون من الجميل الحصول على ملخص موجز. سأشرح مع مثال v3.4 أنا سعيد بانتقاداتك الموضوعية.

SMPP هو بروتوكول مراسلة نظير إلى نظير. هذا يعني أن كل خادم نظير / لوحة وصل متساوية. في أبسط الحالات ، يبدو نظام رسائل SMS كما يلي:

صورة

ومع ذلك ، إذا لم يكن لدى المشغل الوطني طريق إلى بعض المناطق النائية ، يسأل عن هذا الوسيط - مركز الرسائل القصيرة. في بعض الأحيان ، لإرسال رسالة قصيرة واحدة ، تحتاج إلى بناء سلسلة بين عدة بلدان ، أو حتى القارات.

حول البروتوكول


SMPP هو بروتوكول طبقة تطبيق يستند إلى تبادل PDU ويتم إرساله عبر جلسات TCP / IP أو X25 لإرسال الرسائل القصيرة ورسائل ussd. عادةً ما يتم استخدام SMPP في وضع الاتصال الثابت ، مما يساعد على توفير الوقت. يستخدم SMPP نموذج اتصال خادم - عميل.

وضع الاتصال


صورة

يمكن إجراء تبادل الرسائل بين المرسل و SMSC عبر SMPP في الأوضاع التالية:

المرسل (المرسل) - إرسال رسالة في اتجاه واحد ، بالتناوب
المتلقي (المتلقي) - فقط تلقي رسالة من SMSC.
جهاز الإرسال والاستقبال (جهاز الإرسال والاستقبال) - المراسلة بين SMSC والمستخدم

هيكل


صورة

طول الرسالة


يمكن أن تحتوي رسالة SMS واحدة على 70 حرفًا عند الكتابة باللغة السيريلية وليس أكثر من 157 حرفًا لاتينيًا + 3 UDH إذا تم إرسالها. الرسائل القصيرة مع عدد كبير من الأحرف ، سيتم تقسيمها إلى عدة قطاعات وسيتم دمجها في جهاز الاستقبال. في حالة التجزئة ، يتم تقليل عدد الأحرف بسبب رؤوس الرسالة التي يشار فيها إلى جزء الرسالة. لذلك ، عند إرسال رسالة SMS كبيرة ، فإنه يحتوي على 153 حرفًا لاتينيًا كحد أقصى أو 67 حرفًا غير عادي.

مخطط ترميز البيانات


ومع ذلك ، يجب تشفير الأحرف لإرسال رسالة. في بروتوكول SMPP ، يكون الحقل الخاص مسؤولاً عن الترميز - مخطط ترميز البيانات ، أو DCS. هذا الحقل يشير إلى كيفية التعرف على الرسائل. بالإضافة إلى ذلك ، يتضمن الحقل DCS:

  • مجموعة الأحرف التي تحدد الترميز ؛
  • رسالة الصف ؛
  • طلب الحذف التلقائي بعد القراءة ؛
  • مؤشر ضغط الرسالة ؛
  • لغة البث

الأبجدية القياسية 7 بت (GSM 03.38). تم تطويره لنظام الرسائل GSM. هذا الترميز مناسب للغة الإنجليزية وبعض اللغات اللاتينية. يتكون كل حرف من 7 بتات ويتم ترميزه في ثمانية.

UTF-16 (في GSM UCS2) لتضمين الأحرف المفقودة في ترميز 7 بت ، تم تطوير ترميز UTF-16 الذي يضيف أحرفًا إضافية (بما في ذلك السيريلية) عن طريق تقليل حجم الرسالة من 160 إلى 70 ، يتكرر هذا النوع من الترميز بالكامل تقريبًا يونيكود.

8 بت البيانات المعرفة من قبل المستخدم. وتشمل هذه KOI8-R و Windows-1251. على الرغم من أن هذا الحل يبدو أكثر اقتصادا مقارنةً بنفس UTF-1 ، لاستخدام هذه الترميزات ، يلزم التكوين الأولي على أجهزة الاستقبال والإرسال. إذا كانت بيانات الترميز غير مدعومة في بعضها ، فلن يتم عرض الرسالة بشكل صحيح. بما أنه في هذه الحالة ، يجب تهيئة كلا الجهازين مقدمًا.

رسائل الطبقة


  • Class0 ، أو فلاش ، رسالة مخزنة في ذاكرة الهاتف بناءً على طلب المستخدم ؛
  • Class1 ، أو تلك المخزنة في الهاتف ؛
  • Class2 ، يجب التأكد من تخزين الرسالة في ذاكرة الجهاز المحمول ، وإلا يجب أن تقدم تنبيهات SMSC حول عدم القدرة على الحفظ ؛
  • Class3 - في هذه الحالة ، يجب أن يرسل الهاتف إخطارًا بأنه يمكن حفظ الرسالة ، بغض النظر عن حجم الذاكرة في الجهاز. يشير هذا النوع من الرسائل إلى أن الرسالة قد وصلت إلى وجهتها ؛

نوع الرسالة


رسالة صامتة (SMS0) نوع رسالة SMS بدون محتوى. تأتي مثل هذه الرسائل القصيرة دون إشعار ولا يتم عرضها على شاشة الجهاز.

PDU


يتم إقران كل عملية pdu ويتكون من طلب واستجابة. على سبيل المثال: أمر يوضح إنشاء اتصال (bind_transmitter / bind_transmitter_resp) ، أو أنه قد تم إرسال الرسالة (deliver_sm / deliver_sm_resp)

صورة

تتكون كل حزمة pdu من جزأين - رأس وجسم. بنية الرأس هي نفسها لأي حزمة pdu: طول الأمر هو طول الحزمة ، والمعرف هو اسم الحزمة ، ويظهر أمر الحالة رسالة مرسلة بنجاح ، أو مع وجود خطأ.

خيارات TLV المتقدمة


TLV (قيمة طول العلامة) ، أو الحقول الاختيارية. يتم استخدام هذه المعلمات لتوسيع وظائف البروتوكول وغير مطلوبة. يشار إلى هذا الحقل في نهاية حقل pdu. على سبيل المثال ، باستخدام TLV dest_addr_np_information ، يمكنك تنظيم نقل المعلومات حول نقل رقم.

طن و Npi


المعلمة TON (نوع الرقم) ، بإعلام SMSC حول تنسيق عنونة ونوع الشبكة.
NPI (تعريف خطة الترقيم) معلمة تشير إلى خطة الترقيم.

صورة

عنوان مصدر الرسالة أو اسم ألفا


تأتي الرسائل المرسلة إلى الهاتف في نوعين: رقمي وحروف أبجدية. الرقمية يمكن أن تكون طويلة (على غرار رقم الهاتف) وقصيرة. في بعض الأحيان يكون لدى المشغلين قيود على الإرسال من أسماء محايدة ، على سبيل المثال Infosms و Alert وما إلى ذلك. في بعض الأحيان لا يسمح المشغلون بحركة المرور إذا كان الاسم غير مسجل على شبكتهم. ومع ذلك ، إنها ميزات المشغل.

مراحل الشحن


صورة

ترسل SMS-SUBMIT رسالة MO FSM (رسالة قصيرة من محطة متنقلة)
تقرير إرسال الرسائل القصيرة - التأكيد على أن الرسالة قد تم إرسالها بواسطة SMSC
SRI SM (SendRoutingInfo) - تتلقى SMSC معلومات من HLR بخصوص MSC / VLR لموقع المشترك
SRI SM RESP - استجابة من HLR فيما يتعلق اللحوم موقف المشترك
MT-FSM - بعد استلام الموقع ، يتم إرسال رسالة باستخدام عملية "توجيه الرسائل القصيرة"
MT-FSM ACK - الرد من SMSC بأنه قد تم إرسال رسالة
تقرير حالة الرسائل القصيرة - ترسل SMSC حالة تسليم الرسالة.

حالة تسليم الرسالة


يمكن أن يستغرق تقرير SMS-STATUS عدة قيم:
تم تسليم رسالة DELIVRD بنجاح
رفض - رسالة مرفوضة من قبل مركز الرسائل القصيرة
منتهي الصلاحية - تتم إزالة الرسالة من قائمة انتظار الإرسال بعد نهاية TTL (عمر الرسالة)
UNDELIV - حالات عدم التسليم الأخرى
غير معروف - لم يتم إرسال رد إرسال.

أخطاء الإرسال


في بعض الأحيان لا يتم تسليم الرسائل. نتيجة لذلك ، تحدث أخطاء. يتم إرجاع الأخطاء إلى PDUs_sms_resp. يمكن تقسيم جميع الأخطاء إلى مؤقت (مؤقت) ودائم (دائم).

على سبيل المثال ، فإن الملفات المؤقتة هي absent_subscriber ، والمشترك غير متوفر أو غير موجود على الشبكة ، والمشترك الدائم غير موجود. بناءً على الأخطاء التي تحدث ، يتم تشكيل سياسة لإعادة توجيه هذه الرسائل.

على سبيل المثال ، إذا كان المشترك مشغولاً في الحديث وتلقى سماعة MT خطأً مشغولاً ، فيمكن إرسال الرسالة مرة أخرى في غضون دقائق قليلة ، ومع ذلك ، إذا كان لدى المشترك خدمة رسائل محظورة ، فلن يكون لإعادة الإرسال معنى. يمكنك العثور على قائمة الأخطاء في صفحات SMSC ، على سبيل المثال ، مثل هذا .

Source: https://habr.com/ru/post/ar452842/


All Articles