SMPP - Peer-to-Peer protokol kratkih poruka

Zdravo! Iako instant messengeri i društvene mreže svakodnevno zamjenjuju tradicionalne metode komunikacije, to ne umanjuje popularnost SMS-a. Potvrda na popularnoj web stranici ili obavijest o transakciji ponavljaju da oni ž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 da opišu sam protokol. Naravno, možete odmah početi od izvora - specifikacije, ali mislim da bi bilo lijepo da postoji sažetak njegovog sadržaja. Objasniću na primeru 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 server jednak. U najjednostavnijem slučaju, shema slanja SMS poruka izgleda ovako:

SMPP - Peer-to-Peer protokol kratkih poruka

Međutim, ako nacionalni operater nema rutu, za to traži posrednika do neke udaljene regije - 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 zasniva na razmjeni PDU-ova i prenosi se preko TCP/IP, odnosno X25 sesija za slanje sms i ussd poruka. Obično se SMPP koristi u režimu trajne veze, što štedi vrijeme. SMPP koristi komunikacijski model klijent-server.

Način komunikacije

SMPP - Peer-to-Peer protokol kratkih poruka

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

Odašiljač (predajnik) - prijenos poruke u jednom smjeru, redom
Prijemnik (prijemnik) - samo primanje poruke od SMS centra.
Transreceiver (primopredajnik) - Razmjena poruka između SMS centra i korisnika

struktura

SMPP - Peer-to-Peer protokol kratkih poruka

Dužina poruke

Jedna SMS poruka može sadržati 70 karaktera kada se kuca ćirilično i ne više od 157 latiničnih znakova + 3 UDH Ukoliko pošaljete SMS sa velikim brojem karaktera, on će biti podeljen na nekoliko segmenata i kombinovan u prijemnom uređaju. U slučaju segmentacije, broj znakova se smanjuje zaglavlja poruke koja označavaju dio poruke. Stoga, kada šaljete veliku SMS poruku, ona sadrži najviše 153 latinična znaka ili 67 netipičnih znakova.

Šema 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 specificira kako se poruke trebaju prepoznati. Osim toga, DCS polje uključuje:

  • skup znakova koji definira kodiranje;
  • klasa poruka;
  • zahtjev za automatsko brisanje nakon čitanja;
  • indikacija kompresije poruke;
  • jezik emitovanih poruka;

Standardna 7-bitna abeceda (GSM 03.38). Razvijen je za sistem za razmenu poruka u GSM-u. Ovo kodiranje je pogodno za engleski i brojne latinske jezike. Svaki znak se sastoji od 7 bita i kodiran je u oktet.

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

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

Message class

  • Class0, ili flash, poruka koja se čuva u memoriji telefona na zahtev korisnika;
  • Klasa 1, ili oni koji su uskladišteni u memoriji telefona;
  • Klasa 1, ili oni koji su uskladišteni u memoriji telefona;
  • Klasa 2, mora osigurati da se poruka pohrani u memoriju mobilnog terminala, u suprotnom mora obavijestiti SMS centar o nemogućnosti čuvanja;
  • Class3 - u ovom slučaju telefon treba da pošalje obaveštenje da se poruka može sačuvati, bez obzira na količinu memorije u uređaju. Ova vrsta poruke implicira da je poruka stigla na svoje odredište;

Vrsta poruke

Tiha poruka (SMS0) Tip SMS poruke bez sadržaja. Takav SMS dolazi bez obavještenja i ne prikazuje se na ekranu uređaja.

PDU

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

SMPP - Peer-to-Peer protokol kratkih poruka

Svaki pdu paket sastoji se od dva dijela - zaglavlja (header) i tijela (body). Struktura zaglavlja je ista za bilo koji pdu paket: dužina naredbe je dužina paketa, id je ime paketa, a statusna naredba pokazuje da li je poruka poslana uspješno ili neuspješno.

Dodatni TLV parametri

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

Ton i Npi

TON (Tip broja) parametar obavještava SMSC o formatu adresiranja i vrsti mreže.
NPI (Numbering Plan Identification) parametar koji pokazuje plan numeracije.

SMPP - Peer-to-Peer protokol kratkih poruka

Adresa izvora poruke ili alfa ime

Poruke koje se šalju na telefon dolaze u dvije varijante: numeričke i alfabetske. Brojevi mogu biti dugi (slični telefonskom broju) ili kratki. Ponekad operateri imaju ograničenja za slanje sa neutralnih imena, kao što su Infosms, Alert itd. Ponekad operateri ne dozvoljavaju saobraćaj ako ime nije registrovano u njihovoj mreži. Međutim, ovo je više karakteristika operatera.

Faze podnošenja

SMPP - Peer-to-Peer protokol kratkih poruka

SMS-SUBMIT šalje MO FSM poruku (kratku poruku sa mobilnog terminala)
SMS-POŠALJI IZVJEŠTAJ — potvrda da je poruku poslao SMSC
SRI SM (SendRoutingInfo) - SMSC prima informacije od HLR-a u vezi MSC/VLR lokacije pretplatnika
SRI SM RESP — odgovor HLR-a u vezi sa mesom pozicije pretplatnika
MT-FSM - nakon prijema lokacije, poruka se šalje operacijom "Proslijedi kratku poruku".
MT-FSM-ACK — odgovor SMSC-a da je poruka poslana
SMS IZVJEŠTAJ O STATUSU — SMSC šalje status isporuke poruke.

Status isporuke poruke

SMS IZVJEŠTAJ O STATUSU može imati nekoliko vrijednosti:
DELIVRD poruka je uspješno dostavljena
REJECTD — poruka koju je SMS centar odbio
EXPIRED - poruka se uklanja iz reda za slanje nakon završetka TTL-a (životni vijek poruke)
UNDELIV - ostali slučajevi neisporuke
NEZNANO- Nije primljen odgovor.

Greške u prijenosu

Ponekad su razlozi zbog kojih SMS poruke nisu dostavljene pretplatniku. Posljedica ovih razloga je pojava grešaka. Greške se vraćaju u PDUs_sms_resp. Sve greške se mogu podijeliti na privremene (Temporary) i trajne (Permanent).

Na primjer, absent_subscriber je privremeni, pretplatnik nije dostupan ili nije na mreži, a stalni - pretplatnik ne postoji. U zavisnosti od grešaka koje se javljaju, formira se politika za ponovno slanje ovih poruka.

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

izvor: www.habr.com

Dodajte komentar