SMPP - Peer-to-Peer protokol za kratke poruke

Zdravo! Iako instant messengeri i društvene mreže svakim danom zamjenjuju tradicionalne načine komunikacije, to ne umanjuje popularnost SMS-a. Potvrda na popularnom mjestu ili obavijest o transakciji ponavljaju da žive i da će živjeti. Jeste li razmišljali o tome kako sve to funkcionira? Vrlo često se SMPP protokol koristi za slanje masovnih poruka, o čemu će biti riječi u nastavku.

Habré je već imao članke o smpp-u, 1,2, ali njihova svrha nije bila opisati sam protokol. Naravno, možete odmah krenuti od izvora - tehnički podaci, ali mislim da bi bilo lijepo da postoji sažetak njegovog sadržaja. Objasnit ću na primjeru v3.4. Drago mi je zbog vaše objektivne kritike.

SMPP protokol je peer-to-peer protokol za razmjenu poruka. To znači da je svaki peer/hub poslužitelj jednak. U najjednostavnijem slučaju, shema slanja SMS poruka izgleda ovako:

SMPP - Peer-to-Peer protokol za kratke poruke

No, ako nacionalni operater nema rutu, za to traži posrednika u neku udaljeniju regiju - SMS čvorište. Ponekad, da biste poslali jedan SMS, morate izgraditi lanac između nekoliko zemalja, ili čak kontinenata.

O protokolu

SMPP je protokol aplikacijskog sloja koji se temelji na razmjeni PDU-ova i prenosi preko TCP/IP, odnosno X25 sesije za slanje sms i ussd poruka. Obično se SMPP koristi u načinu stalne veze, što štedi vrijeme. SMPP koristi komunikacijski model klijent-poslužitelj.

Način komunikacije

SMPP - Peer-to-Peer protokol za kratke poruke

Razmjena poruka između pošiljatelja i SMS centra putem SMPP-a može se izvršiti na sljedeće načine:

Odašiljač (odašiljač) - prijenos poruke u jednom smjeru, zauzvrat
Primatelj (primatelj) - prima samo poruku iz SMS centra.
Transreceiver (primopredajnik) - Razmjena poruka između SMS centra i korisnika

Struktura

SMPP - Peer-to-Peer protokol za kratke poruke

Duljina poruke

Jedna SMS poruka može sadržavati 70 znakova kada se upisuje ćirilicom i ne više od 157 latiničnih znakova + 3 UDH. Ako pošaljete SMS s velikim brojem znakova, on će biti podijeljen u nekoliko segmenata i objedinjen u prijemnom uređaju. U slučaju segmentacije, broj znakova smanjuje se za zaglavlja poruke koja označavaju dio poruke. Dakle, kada šaljete veliku SMS poruku, ona sadrži maksimalno 153 latinična znaka ili 67 netipičnih znakova.

Shema kodiranja podataka

Međutim, znakovi moraju biti kodirani da bi se prenijela poruka. U SMPP protokolu za kodiranje je odgovorno posebno polje - Data Coding Scheme ili DCS. Ovo je polje koje određuje kako se poruke trebaju prepoznati. Osim toga, DCS polje uključuje:

  • skup znakova koji definira kodiranje;
  • klasa poruke;
  • zahtjev za automatskim brisanjem nakon čitanja;
  • pokazatelj kompresije poruke;
  • jezik emitirane poruke;

Standardna 7-bitna abeceda (GSM 03.38). Razvijen je za sustav razmjene poruka u GSM-u. Ovo kodiranje je prikladno za engleski i brojne latinske jezike. Svaki znak se sastoji od 7 bitova i kodiran je u oktet.

UTF-16 (u GSM UCS2) Za uključivanje znakova koji nedostaju u 7-bitnoj abecedi, razvijeno je kodiranje UTF-16, koje dodaje dodatne znakove (uključujući ćirilične) smanjenjem veličine poruke sa 160 na 70, ova vrsta kodiranja gotovo u potpunosti ponavlja Unicode.

8-bitni korisnički definirani podaci. To uključuje KOI8-R i Windows-1251. Iako se ovo rješenje čini ekonomičnijim u usporedbi s istim UTF-16. Postoji razumno pitanje kompatibilnosti na različitim uređajima. Budući da u ovom slučaju oba uređaja moraju biti konfigurirana unaprijed.

Klasa poruka

  • Class0, ili flash, poruka pohranjena u memoriji telefona na zahtjev korisnika;
  • Class1 ili one pohranjene u memoriji telefona;
  • Class1 ili one pohranjene u memoriji telefona;
  • Class2, mora osigurati da je poruka pohranjena u memoriji mobilnog terminala, u protivnom mora poslati obavijesti SMS centru o nemogućnosti spremanja;
  • Class3 - u ovom slučaju telefon bi trebao poslati obavijest da se poruka može spremiti, bez obzira na količinu memorije u uređaju. Ova vrsta poruke implicira da je poruka stigla na odredište;

Vrsta poruke

Tiha poruka (SMS0) Vrsta SMS poruke bez sadržaja. Takav SMS dolazi bez obavijesti i ne prikazuje se na zaslonu uređaja.

PDU-ovi

Svaka pdu operacija je uparena i sastoji se od zahtjeva i odgovora. Na primjer: naredba koja kaže da je veza uspostavljena (bind_transmitter / bind_transmitter_resp), ili da je poruka poslana (deliver_sm / deliver_sm_resp)

SMPP - Peer-to-Peer protokol za kratke poruke

Svaki pdu paket sastoji se od dva dijela - zaglavlja (header) i tijela (body). Struktura zaglavlja je ista za svaki pdu paket: duljina naredbe je duljina paketa, id je naziv paketa, a naredba statusa označava je li poruka poslana uspješno ili neuspješno.

Dodatni TLV parametri

TLV (Tag Length Value) ili dodatna polja. Takvi parametri koriste se za proširenje funkcionalnosti protokola i nisu obavezni. Ovo polje navedeno je na kraju pdu polja. Kao primjer, koristeći dest_addr_np_information TLV, možete organizirati prijenos informacija o prijenosu broja.

Ton i Npi

Parametar TON (Type of Number) obavještava SMSC o formatu adresiranja i vrsti mreže.
NPI (Numbering Plan Identification) parametar koji označava plan numeriranja.

SMPP - Peer-to-Peer protokol za kratke poruke

Adresa izvora poruke ili alfa ime

Poruke poslane na telefon dolaze u dvije varijante: numeričke i abecedne. Brojevi mogu biti dugi (slično telefonskom broju) ili kratki. Ponekad operateri imaju ograničenja za slanje s neutralnih imena, kao što su Infosms, Alert itd. Ponekad operateri ne dopuštaju promet ako ime nije registrirano u njihovoj mreži. Međutim, to je više značajka operatera.

Faze podnošenja

SMPP - Peer-to-Peer protokol za kratke poruke

SMS-POŠALJI šalje MO FSM poruku (kratku poruku s mobilnog terminala)
SMS-PODAJ IZVJEŠTAJ — potvrda da je poruku poslao SMSC
SRI SM (SendRoutingInfo) - SMSC prima informacije od HLR-a u vezi s MSC/VLR lokacijom pretplatnika
SRI SM RESP — odgovor HLR-a u vezi s stavom pretplatnika
MT-FSM - nakon primitka lokacije šalje se poruka operacijom "Proslijedi kratku poruku".
MT-FSM-ACK — odgovor SMSC-a da je poruka poslana
SMS IZVJEŠĆE O STATUSIMA — SMSC šalje status isporuke poruke.

Status isporuke poruke

SMS IZVJEŠĆE O STATUSIMA može uzeti nekoliko vrijednosti:
DELIVRD poruka uspješno isporučena
ODBIJENO — poruka odbijena od strane SMS centra
ISTEKAO - poruka se uklanja iz reda čekanja za slanje nakon završetka TTL-a (životnog vijeka poruke)
NEODELIV - ostali slučajevi neisporuke
NEPOZNATI- Nije primljen odgovor.

Greške u prijenosu

Ponekad razlozi zbog kojih se SMS poruke ne isporučuju pretplatniku. Posljedica ovih razloga je pojava grešaka. Pogreške se vraćaju u PDUs_sms_resp. Sve greške se mogu podijeliti na privremene (Temporary) i trajne (Permanent).

Kao primjer, absent_subscriber je privremen, pretplatnik nije dostupan ili nije na mreži, i trajan - pretplatnik ne postoji. Ovisno o pogreškama koje se pojave, formira se politika ponovnog slanja ovih poruka.

Na primjer, ako je pretplatnik bio zauzet razgovorom i primio pogrešku MT slušalica je zauzeta, poruka se može ponovno poslati nakon nekoliko minuta, međutim, ako je pretplatnik blokirao uslugu primanja poruke, ponovno slanje neće imati smisla. Popis grešaka možete pronaći na stranicama SMSC-a, na primjer, kao ovo.

Izvor: www.habr.com

Dodajte komentar