SMPP - qisqa xabarlar uchun tengdosh protokoli

Salom! Garchi messenjerlar va ijtimoiy tarmoqlar har kuni an'anaviy aloqa usullarini almashtirayotgan bo'lsa-da, bu SMS mashhurligini pasaytirmaydi. Ommabop saytdagi tekshirish yoki tranzaksiya haqida xabar takrorlanadi, ular yashaydi va yashaydi. Bularning barchasi qanday ishlashini hech o'ylab ko'rganmisiz? Ko'pincha SMPP protokoli ommaviy xabarlarni yuborish uchun ishlatiladi, ular quyida muhokama qilinadi.

HabrΓ©-da smpp haqida allaqachon maqolalar bor edi, 1,2, lekin ularning maqsadi protokolning o'zini tasvirlash emas edi. Albatta, siz darhol asl manbadan boshlashingiz mumkin - texnik xususiyatlar, lekin menimcha, uning qisqacha mazmuni bo'lsa yaxshi bo'lardi. Misol tariqasida v3.4 dan foydalanib tushuntiraman.Sizning xolis tanqidingizdan xursand bo'laman.

SMPP protokoli peer-to-peer xabar almashish protokolidir. Bu shuni anglatadiki, har bir peer/hub server teng huquqlarga ega. Eng oddiy holatda, SMS xabar almashish sxemasi quyidagicha ko'rinadi:

SMPP - qisqa xabarlar uchun tengdosh protokoli

Biroq, agar milliy operatorda biron bir chekka hududga yo'nalish bo'lmasa, u buning uchun vositachi - SMS-xabni so'raydi. Ba'zan bitta SMS yuborish uchun siz bir nechta mamlakatlar, hatto qit'alar o'rtasida zanjir qurishingiz kerak.

Protokol haqida

SMPP - bu PDU almashinuviga asoslangan va SMS va ussd xabarlarini uzatish uchun TCP / IP yoki X25 seanslari orqali uzatiladigan amaliy qatlam protokoli. Odatda, SMPP doimiy rejimda qo'llaniladi, bu vaqtni tejashga yordam beradi. SMPP mijoz-server aloqa modelidan foydalanadi.

Rejim svyazi

SMPP - qisqa xabarlar uchun tengdosh protokoli

SMPP orqali jo'natuvchi va SMS markazi o'rtasida xabar almashish quyidagi rejimlarda amalga oshirilishi mumkin:

Transmitter (uzatuvchi) - xabarni bir yo'nalishda, bir vaqtning o'zida uzatish
Qabul qiluvchi - faqat SMS markazidan xabar oladi.
Transreceiver (transceiver) - SMS markazi va foydalanuvchi o'rtasida xabar almashish

tuzilma

SMPP - qisqa xabarlar uchun tengdosh protokoli

Xabar uzunligi

Bitta SMS-xabar kirill alifbosida terganda 70 ta belgidan iborat bo'lishi mumkin va 157 ta lotin harfidan ko'p bo'lmasligi mumkin + 3 UDH Agar siz ko'p sonli belgilar bilan SMS yuborsangiz, u bir nechta segmentlarga bo'linadi va qabul qiluvchi qurilmada birlashtiriladi. Segmentatsiya holatida belgilar soni xabarning bir qismini ko'rsatadigan xabar sarlavhalari bilan kamayadi. Shuning uchun, katta hajmdagi SMS-xabarni jo'natishda u maksimal 153 ta lotincha yoki 67 ta atipik belgilarni o'z ichiga oladi.

Ma'lumotlarni kodlash sxemasi

Biroq, belgilar xabarni etkazish uchun kodlashni talab qiladi. SMPP protokolida maxsus maydon kodlash uchun javobgardir - Ma'lumotlarni kodlash sxemasi yoki DCS. Bu xabarlar qanday tan olinishi kerakligini belgilaydigan maydon. Bundan tashqari, DCS maydoni quyidagilarni o'z ichiga oladi:

  • kodlashni belgilaydigan belgilar to'plami;
  • xabarlar sinfi;
  • o'qishdan keyin avtomatik o'chirishni so'rash;
  • xabarni siqish belgisi;
  • translyatsiya xabar tili;

Standart 7 bitli alifbo (GSM 03.38). U GSM xabar almashish tizimi uchun ishlab chiqilgan. Ushbu kodlash ingliz va bir qator lotin tillari uchun mos keladi. Har bir belgi 7 bitdan iborat va oktetga kodlangan.

UTF-16 (GSM UCS2 da) 7-bitli alifboda etishmayotgan belgilarni kiritish uchun UTF-16 kodlash ishlab chiqildi, u xabar hajmini 160 dan 70 gacha qisqartirish orqali qo'shimcha belgilar (jumladan kirill alifbosi) qo'shadi; bu kodlash turi deyarli. Unicode'ni butunlay takrorlaydi.

8-bitli foydalanuvchi tomonidan belgilangan ma'lumotlar. Bularga KOI8-R va Windows-1251 kiradi. Garchi bu yechim xuddi shu UTF-16 bilan solishtirganda ancha tejamkor ko'rinadi. Turli xil qurilmalarda moslik haqida oqilona savol tug'iladi. Chunki bu holda ikkala qurilma ham oldindan sozlanishi kerak.

Xabar sinfi

  • Class0 yoki foydalanuvchining iltimosiga binoan telefon xotirasida saqlanadigan flesh xabar;
  • Class1 yoki telefon xotirasida saqlanganlar;
  • Class1 yoki telefon xotirasida saqlanganlar;
  • Class2 xabarning mobil terminal xotirasida saqlanishini ta'minlashi kerak, aks holda u SMS markazini saqlashning mumkin emasligi haqida ogohlantirishi kerak;
  • Class3 - bu holda, telefon qurilmadagi xotira hajmidan qat'i nazar, xabarni saqlash mumkinligi haqida bildirishnoma yuborishi kerak. Ushbu turdagi xabar xabarni qabul qiluvchiga etib kelganligini bildiradi;

Xabar turi

Ovozsiz xabar (SMS0) Kontentsiz SMS xabar turi. Ushbu SMS bildirishnomasiz keladi va qurilma ekranida ko'rsatilmaydi.

PDU

Har bir pdu operatsiyasi juft bo'lib, so'rov va javobdan iborat. Masalan: ulanish o'rnatilganligini bildiruvchi buyruq (bind_transmitter / bind_transmitter_resp) yoki xabar uzatildi (deliver_sm / delivery_sm_resp)

SMPP - qisqa xabarlar uchun tengdosh protokoli

Har bir pdu paketi ikki qismdan iborat - sarlavha va korpus. Sarlavha tuzilishi har qanday pdu paketi uchun bir xil: buyruq uzunligi - paketning uzunligi, id - paketning nomi va holat buyrug'i xabar muvaffaqiyatli yoki xato bilan uzatilganligini ko'rsatadi.

Qo'shimcha TLV parametrlari

TLV (Teg uzunligi qiymati) yoki qo'shimcha maydonlar. Bunday parametrlar protokolning funksionalligini kengaytirish uchun ishlatiladi va talab qilinmaydi. Ushbu maydon pdu maydonining oxirida paydo bo'ladi. Misol tariqasida, TLV dest_addr_np_information-dan foydalanib, siz raqamning ko'chishi haqida ma'lumot uzatishni tashkil qilishingiz mumkin.

Ton va Npi

TON (Raqam turi) parametri SMSC ga manzil formati va tarmoq turi haqida xabar beradi.
Raqamlash rejasini ko'rsatuvchi NPI (Numbering Plan Identification) parametri.

SMPP - qisqa xabarlar uchun tengdosh protokoli

Xabar manbasi manzili yoki alfa nomi

Telefoningizga yuborilgan xabarlar ikki xil bo'ladi: raqamli va alifbo. Raqamli raqamlar uzun (telefon raqamiga o'xshash) yoki qisqa bo'lishi mumkin. Ba'zida operatorlar neytral nomlardan yuborishda cheklovlarga ega, masalan, Infosms, Alert va boshqalar. Ba'zida operatorlar, agar nom ularning tarmog'ida ro'yxatdan o'tmagan bo'lsa, trafikka ruxsat bermaydi. Biroq, bu ko'proq operator xususiyatlari.

Taqdim etish bosqichlari

SMPP - qisqa xabarlar uchun tengdosh protokoli

SMS-YUBORISH - bu MO FSM xabarini yubormoqda (mobil terminaldan qisqa xabar)
SMS-TAQDIM HISOBOT β€” xabar SMSC tomonidan yuborilganligini tasdiqlash
SRI SM (SendRoutingInfo) - SMSC HLR dan abonentning MSC / VLR joylashuvi haqida ma'lumot oladi
SRI SM RESP β€” HLRning abonent pozitsiyasi bo'yicha javobi
MT-FSM β€” joylashuvni olgandan so'ng, "Qisqa xabarni yo'naltirish" operatsiyasi yordamida xabar yuboriladi
MT-FSM ACK β€” SMSCdan xabar yuborilganligi haqidagi javob
SMS-STATUS HESOBOT β€” SMSC xabarni yetkazib berish holatini yuboradi.

Xabarni yetkazib berish holati

SMS-STATUS HESOBOT bir nechta qiymatlarni qabul qilishi mumkin:
Etkazib berish xabar muvaffaqiyatli topshirildi
RAD ETD β€” SMS markazi tomonidan rad etilgan xabar
TEKShIRILGAN β€” TTL (xabarning ishlash muddati) tugagandan soβ€˜ng xabar joβ€˜natuvchi navbatdan olib tashlanadi.
QAYTA QILMAS - etkazib bermaslikning boshqa holatlari
QABUL emas- jo'natish bo'yicha javob olinmadi.

Transfer xatolari

Ba'zan SMS-xabarlar abonentga yetkazilmasligining sabablari bor. Ushbu sabablarning oqibati xatolarning paydo bo'lishidir. Xatolar PDUs_sms_resp ga qaytariladi. Barcha xatolar vaqtinchalik (Vaqtinchalik) va doimiy (Doimiy) ga bo'linishi mumkin.

Misol tariqasida, absent_subscriber vaqtinchalik deb tasniflanishi mumkin - abonent mavjud emas yoki onlayn emas va doimiy - abonent mavjud emas. Ro'y bergan xatolarga qarab, ushbu xabarlarni qayta yuborish siyosati shakllantiriladi.

Misol uchun, agar abonent qo'ng'iroqda band bo'lsa va MT telefoni band degan xatoni olgan bo'lsa, xabar bir necha daqiqadan so'ng qayta yuborilishi mumkin, ammo agar abonentning xabarni qabul qilish xizmati bloklangan bo'lsa, qayta yuborish mantiqiy bo'lmaydi. Siz xatolar ro'yxatini SMSC sahifalarida topishingiz mumkin, masalan, kabi bu.

Manba: www.habr.com

a Izoh qo'shish