SMPP – Peer-to-Peer Short Message Protocol

Tere! Kuigi kiirsÔnumid ja suhtlusvÔrgustikud asendavad iga pÀev traditsioonilisi suhtlusviise, ei vÀhenda see SMS-i populaarsust. Populaarsel saidil kinnitamine vÔi tehinguteatis kordab, et nad elavad ja jÀÀvad elama. Kas olete mÔelnud, kuidas see kÔik töötab? VÀga sageli kasutatakse SMPP-protokolli hulgisÔnumite saatmiseks, mida arutatakse lÔike all.

Habrel oli juba artikleid smpp kohta, 1,2, kuid nende eesmĂ€rk ei olnud protokolli ennast kirjeldada. Muidugi vĂ”ite kohe alustada allikast - spetsifikatsioonid, aga arvan, et oleks tore, kui selle sisust oleks kokkuvĂ”te. Selgitan nĂ€itena v3.4. Mul on hea meel teie objektiivse kriitika ĂŒle.

SMPP-protokoll on peer-to-peer-sÔnumsideprotokoll. See tÀhendab, et iga peer/hub server on vÔrdne. Lihtsamal juhul nÀeb SMS-sÔnumite skeem vÀlja jÀrgmine:

SMPP – Peer-to-Peer Short Message Protocol

Kui aga riiklikul operaatoril marsruuti pole, kĂŒsib ta selle vahendajalt mĂ”nda kaugemasse piirkonda - SMS-i keskusesse. MĂ”nikord on ĂŒhe SMS-i saatmiseks vaja luua kett mitme riigi vĂ”i isegi mandri vahel.

Protokolli kohta

SMPP on rakenduskihi protokoll, mis pĂ”hineb PDU-de vahetamisel ja mida edastatakse SMS-i ja ussd-sĂ”numite saatmiseks TCP / IP vĂ”i X25 seansside kaudu. Tavaliselt kasutatakse SMPP-d pĂŒsiva ĂŒhenduse reĆŸiimis, mis sÀÀstab aega. SMPP kasutab kliendi-serveri suhtlusmudelit.

SuhtlusreĆŸiim

SMPP – Peer-to-Peer Short Message Protocol

SĂ”numite vahetamine saatja ja SMS-keskuse vahel SMPP kaudu saab toimuda jĂ€rgmistes reĆŸiimides:

Saatja (saatja) - sĂ”numi edastamine omakorda ĂŒhes suunas
VastuvÔtja (vastuvÔtja) - ainult sÔnumi vastuvÔtmine SMS-keskusest.
Transiiver (transiiver) – SMS-keskuse ja kasutaja vaheline sĂ”numivahetus

Struktuur

SMPP – Peer-to-Peer Short Message Protocol

SÔnumi pikkus

Üks SMS-sĂ”num vĂ”ib kirillitsas tippimisel sisaldada 70 tĂ€hemĂ€rki ja mitte rohkem kui 157 ladina tĂ€hemĂ€rki + 3 UDH Kui saadate suure hulga tĂ€hemĂ€rke sisaldava SMS-i, jagatakse see mitmeks segmendiks ja kombineeritakse vastuvĂ”tvas seadmes. Segmenteerimise korral vĂ€hendatakse mĂ€rkide arvu sĂ”numi pĂ€iste vĂ”rra, mis nĂ€itavad sĂ”numi osa. SeetĂ”ttu sisaldab see suure SMS-sĂ”numi saatmisel maksimaalselt 153 ladina tĂ€hemĂ€rki vĂ”i 67 mittetĂŒĂŒpilist tĂ€hemĂ€rki.

Andmete kodeerimise skeem

SÔnumi edastamiseks tuleb aga mÀrgid kodeerida. SMPP-protokollis vastutab kodeerimise eest spetsiaalne vÀli - Data Coding Scheme ehk DCS. See on vÀli, mis mÀÀrab, kuidas sÔnumeid tuleks Àra tunda. Lisaks sisaldab DCS vÀli:

  • kodeeringut mÀÀratlev mĂ€rgistik;
  • sĂ”numiklass;
  • automaatse kustutamise taotlus pĂ€rast lugemist;
  • sĂ”numi tihendamise mĂ€rge;
  • saatesĂ”numi keel;

Standardne 7-bitine tĂ€hestik (GSM 03.38). See töötati vĂ€lja GSM-i sĂ”numisĂŒsteemi jaoks. See kodeering sobib inglise keele ja mitmete ladina keelte jaoks. Iga mĂ€rk koosneb 7 bitist ja on kodeeritud oktetiks.

UTF-16 (GSM UCS2-s) 7-bitises tĂ€hestikus puuduvate mĂ€rkide kaasamiseks töötati vĂ€lja UTF-16 kodeering, mis lisab tĂ€iendavaid mĂ€rke (sh kirillitsasid), vĂ€hendades sĂ”numi suurust 160-lt 70-le. Seda tĂŒĂŒpi kodeering kordab peaaegu tĂ€ielikult Unicode'i.

8-bitised kasutaja mÀÀratletud andmed. Nende hulka kuuluvad KOI8-R ja Windows-1251. Kuigi see lahendus tundub UTF-16-st sÀÀstlikum, tekitab see mĂ”istliku kĂŒsimuse ĂŒhilduvuse kohta erinevate seadmete vahel, kuna mĂ”lemad seadmed tuleks eelnevalt konfigureerida.

SÔnumi klass

  • Class0 ehk vĂ€lksĂ”num, mis salvestatakse kasutaja soovil telefoni mĂ€llu;
  • Class1 vĂ”i need, mis on salvestatud telefoni mĂ€llu;
  • Class1 vĂ”i need, mis on salvestatud telefoni mĂ€llu;
  • klass2, peab tagama sĂ”numi salvestamise mobiilterminali mĂ€llu, vastasel juhul andma SMS-keskusele teate salvestamise vĂ”imatusest;
  • Class3 – sel juhul peaks telefon saatma teate, et sĂ”numit saab salvestada, olenemata seadme mĂ€lumahust. Seda tĂŒĂŒpi sĂ”num tĂ€hendab, et sĂ”num on jĂ”udnud sihtkohta;

SĂ”numi tĂŒĂŒp

Vaikne sĂ”num (SMS0) Ilma sisuta SMS-sĂ”numi tĂŒĂŒp. Sellised SMS-id tulevad teavitamata ja neid ei kuvata seadme ekraanil.

PDU

Iga pdu toiming on seotud ja koosneb pĂ€ringust ja vastusest. NĂ€iteks: kĂ€sk, mis ĂŒtleb, et ĂŒhendus on loodud (bind_transmitter / bind_transmitter_resp) vĂ”i et sĂ”num on saadetud (deliver_sm / delivery_sm_resp)

SMPP – Peer-to-Peer Short Message Protocol

Iga pdu pakett koosneb kahest osast – pĂ€isest (header) ja kehast (body). PĂ€ise struktuur on iga pdu-paketi puhul sama: kĂ€su pikkus on paketi pikkus, id on paketi nimi ja staatuskĂ€sk nĂ€itab, kas sĂ”num saadeti edukalt vĂ”i ebaĂ”nnestus.

TĂ€iendavad TLV parameetrid

TLV (Tag Length Value) vÔi tÀiendavad vÀljad. Selliseid parameetreid kasutatakse protokolli funktsionaalsuse laiendamiseks ja need on valikulised. See vÀli on mÀÀratud pdu vÀlja lÔpus. NÀiteks saate dest_addr_np_information TLV abil korraldada teabe edastamise numbri teisaldamise kohta.

Ton ja Npi

TON (numbri tĂŒĂŒp) parameeter teavitab SMSC-d adresseerimisvormingust ja vĂ”rgutĂŒĂŒbist.
NPI (Numbering Plan Identification) parameeter, mis nÀitab numeratsiooniplaani.

SMPP – Peer-to-Peer Short Message Protocol

SÔnumi allika aadress vÔi alfanimi

Telefonile saadetavaid sĂ”numeid on kahte tĂŒĂŒpi: numbrilised ja tĂ€hestikulised. Numbrid vĂ”ivad olla pikad (sarnaselt telefoninumbriga) vĂ”i lĂŒhikesed. MĂ”nikord on operaatoritel piirangud neutraalsetest nimedest (nt Infosms, Alert jne) saatmisel. MĂ”nikord ei luba operaatorid liiklust, kui nimi pole nende vĂ”rgus registreeritud. See on aga pigem operaatori omadus.

Esitamise etapid

SMPP – Peer-to-Peer Short Message Protocol

SMS-ESITA saadab MO FSM-i sĂ”numi (lĂŒhisĂ”num mobiilterminalist)
SMS-ESITA ARUANNE — kinnitus, et sĂ”numi saatis SMSC
SRI SM (SendRoutingInfo) – SMSC saab HLR-ilt teavet abonendi MSC/VLR asukoha kohta.
SRI SM RESP — HLR-i vastus abonendi positsioonide kohta
MT-FSM - pĂ€rast asukoha kĂ€ttesaamist saadetakse sĂ”num toimingu "Edasta lĂŒhisĂ”num" abil
MT-FSM-ACK — SMSC vastus, et sĂ”num on saadetud
SMS-OLUKORRALDUS — SMSC saadab sĂ”numi kohaletoimetamise oleku.

SÔnumi edastamise olek

SMS-OLUKORRALDUS vÔib vÔtta mitu vÀÀrtust:
DELIVRD sÔnum on edukalt edastatud
VÄLJA LÜKATUD — SMS-i keskus lĂŒkkas sĂ”numi tagasi
EXPIRED - sÔnum eemaldatakse saatmisjÀrjekorrast pÀrast TTL-i (sÔnumi eluiga) lÔppu
EDASTA TAGASI - muud tarnimata jÀtmise juhtumid
UNKNOWN- Vastust ei saadud.

Edastuse vead

MĂ”nikord on pĂ”hjused, miks SMS-sĂ”numeid abonendile ei edastata. Nende pĂ”hjuste tagajĂ€rjeks on vigade esinemine. Vead tagastatakse kaustas PDUs_sms_resp. KĂ”ik vead vĂ”ib jagada ajutisteks (Temporary) ja pĂŒsivateks (Permanent).

NĂ€iteks absent_subscriber on ajutine, tellija pole saadaval vĂ”i pole vĂ”rgus ja pĂŒsiv - tellijat pole olemas. SĂ”ltuvalt ilmnevatest tĂ”rgetest koostatakse nende sĂ”numite uuesti saatmise poliitika.

NÀiteks kui abonent oli hÔivatud rÀÀkimisega ja sai MT-telefonitoru on hÔivatud vea, saab teate mÔne minuti pÀrast uuesti saata, kuid kui abonent on sÔnumi vastuvÔtuteenuse blokeerinud, pole uuesti saatmine mÔttekas. SMSC lehtedelt leiate vigade loendi, nÀiteks kui see.

Allikas: www.habr.com

Ostke DDoS-kaitsega saitide jaoks usaldusvÀÀrne hostimine, VPS VDS-serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega, VPS VDS serverid | ProHoster