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

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

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

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

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

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

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

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

وضع الاتصال

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

يمكن تبادل الرسائل بين المرسل ومركز الرسائل القصيرة عبر SMPP في الأوضاع التالية:

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

هيكل

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

طول الرسالة

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

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

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

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

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

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

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

فئة الرسالة

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

نوع الرسالة

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

PDU

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

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

تتكون كل حزمة pdu من جزأين - رأس (رأس) وجسم (جسم). بنية الرأس هي نفسها لأي حزمة pdu: طول الأمر هو طول الحزمة ، والمعرف هو اسم الحزمة ، ويشير أمر الحالة إلى ما إذا تم إرسال الرسالة بنجاح أو فشل.

معلمات TLV الإضافية

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

تون ونبي

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

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

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

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

مراحل التقديم

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

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

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

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

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

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

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

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

المصدر: www.habr.com

إضافة تعليق