SMPP — protokol kratkih sporočil

Pozdrav! Čeprav sporočilniki in družbena omrežja s vsakim dnem preplavljajo tradicionalne načine komunikacije, to ne zmanjšuje priljubljenosti SMS-ov. Preverjanje na priljubljeni spletni strani ali obvestilo o transakciji ju ponavljajo v živo in bosta živela. Ste se kdaj spraševali, kako to deluje? Za množično pošiljanje sporočil se zelo pogosto uporablja protokol SMPP, o katerem bo govora spodaj.

Na Habrju so že bile objavljene članke o SMPP, 1,2, vendar njihov cilj ni bil opisati samega protokola. Seveda lahko takoj začnete z izvirnikom — specifikacije, vendar mislim, da bi bilo dobro imeti tudi kratko vsebino. Razlagal bom na primeru v3.4. Veselim se vaše objektivne kritike.

Protokol SMPP je protokol za enakovredne sporočilne storitve. To pomeni, da sta vsak peer/hub strežnik enakovredna. V najpreprostejšem primeru shema izmenjave SMS sporočil izgleda tako:

SMPP — protokol kratkih sporočil

Vendar, če nacionalni operater nima povezav v oddaljeno regijo, prosi posrednika — SMS hub. Včasih, da pošljete eno SMS, morate zgraditi verigo med več državami ali celo kontinenti.

O protokolu

SMPP je protokol aplikacijske ravni, ki temelji na izmenjavi PDU in se prenaša prek TCP/IP ali X25 sej za prenos SMS in USSD sporočil. Običajno se SMPP uporablja v načinu stalne povezave, kar prihrani čas. SMPP uporablja model komunikacije odjemalec — strežnik.

Način povezovanja

SMPP — protokol kratkih sporočil

Izmenjava sporočil med pošiljateljem in SMS centrom prek SMPP se lahko izvaja v naslednjih načinih:

Transmitter (predajnik) — ena stran, po vrsti pošiljanje sporočila
Receiver (sprejemnik) — samo sprejemanje sporočila od SMS centra.
Transreceiver (sprejemno-predajnik) — izmenjava sporočil med SMS centrom in uporabnikom

Struktura

SMPP — protokol kratkih sporočil

Dolžina sporočila

Eno SMS sporočilo lahko vsebuje 70 znakov pri vnosu cyrilice in največ 157 latiničnih znakov + 3 UDH. Če pošljete SMS z več znaki, bo razdeljeno na več segmentov in združene v sprejemni napravi. V primeru segmentacije se število znakov zmanjša zaradi naslovov sporočil, v katerih je navedena del sporočila. Zato pri pošiljanju velikega SMS sporočila vsebuje največ 153 latiničnih znakov ali 67 nekonvencionalnih znakov.

Shema kodiranja podatkov

Vendar pa za prenos sporočila znaki zahtevajo kodiranje. V protokolu SMPP je za kodiranje odgovorno posebno polje — Data Coding Scheme, ali DCS. To polje določa, kako je treba prepoznati sporočila. Poleg tega polje DCS vključuje:

  • nabor znakov, ki določa kodiranje;
  • razred sporočila;
  • zahtevo za samodejno brisanje po branju;
  • navodilo za stiskanje sporočila;
  • jezik širokopasovnega sporočila;

Standardni 7-bitni abecednik (GSM 03.38). Razvili so ga za sistem sporočanja v GSM. Takšno kodiranje je primerno za angleščino in nekatere druge latinščine. Vsak znak je sestavljen iz 7 bitov in je kodiran v oktet.

UTF-16 (v GSM UCS2) Za vključitev manjkajočih znakov iz 7-bitnega abecednika je bila razvita kodiranje UTF-16, ki dodaja dodatne znake (vključno s cirilico) s tem, da se velikost sporočila zmanjša s 160 na 70; ta tip kodiranja skoraj v celoti ponavlja Unicode.

8-bitni podatki, ki jih določi uporabnik. Sem spadajo KOI8-R in Windows-1251. Čeprav se to zdi ekonomičnejša rešitev v primerjavi z UTF-16, se postavlja razumljivo vprašanje združljivosti na različnih napravah. Ker morata biti v tem primeru obe napravi vnaprej nastavljeni.

Razred sporočila

  • Class0, ali flash, sporočilo, ki se shrani v spomin telefona na željo uporabnika;
  • Class1, ali tisti, ki se shranijo v spomin telefona;
  • Class1, ali tisti, ki se shranijo v spomin telefona;
  • Class2, ki mora zagotoviti, da se sporočilo shrani v spomin mobilnega terminala, sicer mora sporočiti SMS centru, da shranjevanje ni mogoče;
  • Class3 — v tem primeru mora telefon poslati obvestilo, da se sporočilo lahko shrani, ne glede na količino pomnilnika v napravi. Ta tip sporočila predpostavlja, da je sporočilo doseglo prejemnika;

Tip sporočila

Silent message (SMS0) Tip SMS sporočila brez vsebine. Takšno SMS sporočilo pride brez obvestila in se ne prikaže na zaslonu naprave.

PDU

Vsaka pdu operacija je parna in sestavljena iz zahteve in odgovora. Na primer: ukaz, ki govori o vzpostavitvi povezave (bind_transmitter / bind_transmitter_resp), ali o tem, da je sporočilo posredovano (deliver_sm / deliver_sm_resp)

SMPP — protokol kratkih sporočil

Vsak PDU paket je sestavljen iz dveh delov - glave (header) in telesa (body). Struktura glave je enaka za vsak PDU paket: dolžina ukaza je dolžina paketa, ID je ime paketa, ukaz status pa pokaže, ali je bilo sporočilo uspešno poslano ali je prišlo do napake.

Dodatni parametri TLV

TLV (Tag Length Value), oziroma dodatna polja. Takšni parametri se uporabljajo za širitev funkcij protokola in niso obvezni. To polje se navede na koncu polja PDU. Na primer, z uporabo TLV dest_addr_np_information lahko organizirate prenos informacij o prenosljivosti številke.

Ton in Npi

TON (Type of Number) parameter sporoča SMSC o formatu naslovitve in tipu omrežja.
NPI (Numbering Plan Identification) parameter, ki navaja natančen načrt številčenja.

SMPP — protokol kratkih sporočil

Naslov pošiljatelja sporočila ali alfa ime

Sporočila, poslana na telefon, so dveh vrst: digitalna in črkovna. Digitalna so lahko dolga (podobna telefonski številki) in kratka. Včasih imajo operaterji omejitve za pošiljanje z nevtralnimi imeni, kot so Infosms, Alert itd. Včasih operaterji ne dovolijo prometa, če ime ni registrirano v njihovem omrežju. Vendar gre bolj za značilnosti operaterja.

Faze pošiljanja

SMPP — protokol kratkih sporočil

SMS-SUBMIT — to je pošiljanje MO FSM (kratko sporočilo z mobilnega terminala)
SMS-SUBMIT REPORT — potrditev, da je bilo sporočilo poslano SMSC
SRI SM (SendRoutingInfo) — SMSC pridobi informacije od HLR o MSC/VLR lokaciji naročnika
SRI SM RESP — odgovor od HLR o lokaciji naročnika
MT-FSM — po pridobitvi lokacije se sporočilo pošlje z uporabo operacije 'Forward Short Message'
MT-FSM ACK — odgovor od SMSC, da je bilo sporočilo poslano
SMS-STATUS REPORT — SMSC pošilja status o dostavi sporočila.

Status dostave sporočila

SMS-STATUS REPORT lahko ima več vrednosti:
DELIVRD sporočilo je bilo uspešno dostavljeno
REJECTD — sporočilo je zavrnil SMS-center
EXPIRED — sporočilo je bilo odstranjeno iz pošiljanja po poteku TTL (čas življenja sporočila)
UNDELIV — drugi primeri nedostave
UNKNOWN- ni prejetega odgovora o pošiljanju.

Napake pri prenosu

Včasih so razlogi, zaradi katerih SMS sporočila niso dostavljena naročniku. Posledica teh razlogov so napake. Napake se vrnejo v PDUs_sms_resp. Vse napake lahko razdelimo na začasne (Temporary) in trajne (Permanent).

Kot primer, začasni lahko vključujejo absent_subscriber uporabnik ni na voljo ali ni v omrežju, medtem ko trajni vključujejo — uporabnik ne obstaja. Odvisno od napak, ki se pojavijo, se oblikuje politika ponovnega pošiljanja teh sporočil.

Na primer, če je uporabnik bil zaposlen v pogovoru in je prejel napako MT handset is busy, je možno sporočilo ponovno poslati čez nekaj minut, vendar, če je uporabniku blokirana storitev prejemanja sporočil, ponovna pošiljanja ne bo imela smisla. Seznam napak boste našli na straneh SMSC, na primer, kot ta.

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster