SMPP - پروتکل پیام کوتاه Peer-to-Peer

سلام! اگرچه پیام رسان ها و شبکه های اجتماعی هر روز جایگزین روش های سنتی ارتباط می شوند، اما این چیزی از محبوبیت پیامک کم نمی کند. تأیید در یک سایت محبوب، یا یک اعلان تراکنش تکرار می شود که آنها زنده هستند و زنده خواهند بود. آیا به این فکر کرده اید که چگونه همه چیز کار می کند؟ اغلب، از پروتکل SMPP برای ارسال پیام های انبوه استفاده می شود که در قسمت برش مورد بحث قرار خواهد گرفت.

هابره قبلاً مقالاتی در مورد smpp داشت، 1,2، اما هدف آنها توصیف خود پروتکل نبود. البته، می توانید بلافاصله از منبع شروع کنید - مشخصات فنی، اما به نظر من اگر خلاصه ای از محتوای آن وجود داشته باشد خوب است. من با استفاده از v3.4 به عنوان مثال توضیح خواهم داد.از انتقاد عینی شما خوشحالم.

پروتکل SMPP یک پروتکل پیام رسانی همتا به همتا است. این بدان معناست که هر سرور همتا/هاب برابر است. در ساده ترین حالت، طرح پیام کوتاه به این صورت است:

SMPP - پروتکل پیام کوتاه Peer-to-Peer

با این حال، اگر اپراتور ملی مسیری نداشته باشد، از یک واسطه برای این امر به مناطق دورافتاده - یک مرکز پیام کوتاه - می خواهد. گاهی اوقات برای ارسال یک پیامک، باید یک زنجیره بین چندین کشور یا حتی قاره ایجاد کنید.

درباره پروتکل

SMPP یک پروتکل لایه کاربردی است که مبتنی بر تبادل PDU است و از طریق جلسات TCP/IP یا X25 برای ارسال sms و پیام‌های ussd ارسال می‌شود. معمولاً SMPP در حالت اتصال مداوم استفاده می شود که باعث صرفه جویی در زمان می شود. SMPP از یک مدل ارتباطی مشتری-سرور استفاده می کند.

حالت ارتباط

SMPP - پروتکل پیام کوتاه Peer-to-Peer

تبادل پیام بین فرستنده و مرکز پیامک از طریق SMPP می تواند در حالت های زیر انجام شود:

فرستنده (فرستنده) - انتقال یک پیام در یک جهت، به نوبه خود
گیرنده (گیرنده) - فقط دریافت پیام از مرکز پیام کوتاه.
گیرنده (فرستنده گیرنده) - تبادل پیام بین مرکز پیام کوتاه و کاربر

ساختار

SMPP - پروتکل پیام کوتاه Peer-to-Peer

طول پیام

یک پیام کوتاه می تواند شامل 70 کاراکتر هنگام تایپ سیریلیک باشد و حداکثر 157 کاراکتر لاتین + 3 UDH اگر پیامکی با تعداد کاراکترهای زیاد ارسال کنید، به چند بخش تقسیم می شود و در دستگاه گیرنده ترکیب می شود. در مورد تقسیم بندی، تعداد کاراکترها توسط سرصفحه های پیام کاهش می یابد که قسمتی از پیام را نشان می دهد. بنابراین، هنگام ارسال یک پیام کوتاه بزرگ، حداکثر شامل 153 کاراکتر لاتین یا 67 کاراکتر غیر معمول است.

طرح کدگذاری داده ها

با این حال، برای انتقال یک پیام، کاراکترها باید کدگذاری شوند. در پروتکل SMPP، یک فیلد خاص مسئول رمزگذاری است - Data Coding Scheme یا DCS. این فیلدی است که نحوه تشخیص پیام ها را مشخص می کند. علاوه بر این، فیلد DCS شامل:

  • مجموعه کاراکتری که رمزگذاری را تعریف می کند.
  • کلاس پیام؛
  • درخواست حذف خودکار پس از خواندن؛
  • نشانه فشرده سازی پیام؛
  • زبان پیام پخش؛

الفبای استاندارد 7 بیتی (GSM 03.38). این برای سیستم پیام رسانی در GSM توسعه یافته است. این رمزگذاری برای انگلیسی و تعدادی از زبان های لاتین مناسب است. هر کاراکتر از 7 بیت تشکیل شده است و در یک اکتت کدگذاری می شود.

UTF-16 (در GSM UCS2) برای گنجاندن کاراکترهای گمشده در الفبای 7 بیتی، رمزگذاری UTF-16 ایجاد شد که با کاهش اندازه پیام از 160 به 70، کاراکترهای اضافی (از جمله سیریلیک) اضافه می کند. این نوع رمزگذاری تقریباً به طور کامل یونیکد را تکرار می کند.

داده های تعریف شده توسط کاربر 8 بیتی. اینها عبارتند از KOI8-R و Windows-1251. اگرچه این راه حل در مقایسه با همان UTF-16 اقتصادی تر به نظر می رسد. یک سوال منطقی در مورد سازگاری در دستگاه های مختلف وجود دارد. از آنجایی که در این مورد هر دو دستگاه باید از قبل پیکربندی شوند.

کلاس پیام

  • Class0 یا فلش، پیامی که به درخواست کاربر در حافظه تلفن ذخیره می شود.
  • Class1 یا آنهایی که در حافظه تلفن ذخیره شده اند.
  • Class1 یا آنهایی که در حافظه تلفن ذخیره شده اند.
  • Class2، باید اطمینان حاصل کند که پیام در حافظه پایانه تلفن همراه ذخیره می شود، در غیر این صورت باید اعلان هایی را در مورد عدم توانایی ذخیره به مرکز پیام کوتاه ارائه دهد.
  • Class3 - در این حالت، تلفن باید یک اعلان ارسال کند که پیام را می توان بدون توجه به میزان حافظه دستگاه ذخیره کرد. این نوع پیام بیانگر این است که پیام به مقصد رسیده است.

نوع پیام

پیام بی صدا (SMS0) نوع پیام SMS بدون محتوا. چنین پیامکی بدون اطلاع رسانی ارسال می شود و روی صفحه نمایش دستگاه نمایش داده نمی شود.

PDU

هر عملیات pdu جفت شده و شامل یک درخواست و یک پاسخ است. به عنوان مثال: دستوری که می گوید یک اتصال برقرار شده است (bind_transmitter / bind_transmitter_resp)، یا اینکه یک پیام ارسال شده است (deliver_sm / deliver_sm_resp)

SMPP - پروتکل پیام کوتاه Peer-to-Peer

هر بسته pdu از دو قسمت تشکیل شده است - یک هدر (هدر) و یک بدنه (بدنه). ساختار سرصفحه برای هر بسته pdu یکسان است: طول فرمان طول بسته است، id نام بسته است و فرمان وضعیت نشان می دهد که آیا پیام با موفقیت ارسال شده است یا ناموفق.

پارامترهای TLV اضافی

TLV (مقدار طول برچسب) یا فیلدهای اضافی. چنین پارامترهایی برای گسترش عملکرد پروتکل استفاده می شوند و اختیاری هستند. این فیلد در انتهای فیلد pdu مشخص شده است. به عنوان مثال، با استفاده از dest_addr_np_information TLV، می توانید انتقال اطلاعات مربوط به انتقال شماره را سازماندهی کنید.

تن و ان پی

پارامتر TON (نوع شماره) به SMSC در مورد قالب آدرس دهی و نوع شبکه اطلاع می دهد.
پارامتر NPI (Numbering Plan Identification) که طرح شماره گذاری را نشان می دهد.

SMPP - پروتکل پیام کوتاه Peer-to-Peer

آدرس منبع پیام یا نام آلفا

پیام‌هایی که به تلفن ارسال می‌شوند در دو نوع هستند: عددی و الفبایی. اعداد می توانند طولانی (مشابه شماره تلفن) یا کوتاه باشند. گاهی اوقات اپراتورها محدودیت هایی برای ارسال از نام های خنثی دارند، مانند Infosms، Alert و غیره. گاهی اوقات اپراتورها اگر نام در شبکه آنها ثبت نشده باشد اجازه ترافیک نمی دهند. با این حال، این بیشتر از ویژگی های اپراتور است.

مراحل ارسال

SMPP - پروتکل پیام کوتاه Peer-to-Peer

پیامک-ارسال در حال ارسال پیام MO FSM (پیام کوتاه از ترمینال تلفن همراه)
پیامک-ارسال گزارش - تأیید اینکه پیام توسط SMSC ارسال شده است
SRI SM (SendRoutingInfo) - SMSC اطلاعاتی را از HLR در مورد مکان MSC/VLR مشترک دریافت می کند.
SRI SM RESP - پاسخ HLR در مورد گوشت موقعیت مشترک
MT-FSM - پس از دریافت مکان، پیامی با استفاده از عملیات "پیام کوتاه فوروارد" ارسال می شود
MT-FSM-ACK - پاسخ SMSC مبنی بر ارسال پیام
گزارش وضعیت پیامکی — SMSC وضعیت تحویل پیام را ارسال می کند.

وضعیت تحویل پیام

گزارش وضعیت پیامکی می تواند چندین مقدار داشته باشد:
DELIVRD پیام با موفقیت تحویل شد
رد شد - پیام توسط مرکز اس ام اس رد شد
منقضی شده - پیام پس از پایان TTL (طول عمر پیام) از صف ارسال حذف می شود.
UNDELIIV - سایر موارد عدم تحویل
ناشناس- پاسخی دریافت نشد

خطاهای انتقال

گاهی اوقات دلایل عدم تحویل پیامک به مشترک است. پیامد این دلایل، بروز خطا است. خطاها در PDUs_sms_resp برگردانده می شوند. تمام خطاها را می توان به موقت (موقت) و دائم (دائمی) تقسیم کرد.

به عنوان مثال، absent_subscriber موقت است، مشترک در دسترس نیست یا آنلاین نیست، و دائمی - مشترک وجود ندارد. بسته به خطاهایی که رخ می دهد، سیاستی برای ارسال مجدد این پیام ها شکل می گیرد.

به عنوان مثال، اگر مشترک مشغول صحبت بود و خطای MT is busy را دریافت کرد، می‌توان پیام را پس از چند دقیقه دوباره ارسال کرد، اما اگر مشترک سرویس دریافت پیام را مسدود کرده باشد، ارسال مجدد معنایی نخواهد داشت. شما می توانید لیستی از خطاها را در صفحات SMSC پیدا کنید، به عنوان مثال، به عنوان این.

منبع: www.habr.com

اضافه کردن نظر