SMPP - Peer-to-Peer Short Message Protocol

Hei! Vaikka pikaviestit ja sosiaaliset verkostot korvaavat perinteiset viestintätavat joka päivä, tämä ei vähennä tekstiviestien suosiota. Vahvistus suositussa sivustossa tai tapahtumailmoitus toistaa ne elävät ja tulevat voimaan. Oletko miettinyt, miten kaikki toimii? Hyvin usein SMPP-protokollaa käytetään joukkoviestien lähettämiseen, joista keskustellaan leikkauksen alla.

Habrella oli jo artikkeleita smpp:stä, 1,2, mutta niiden tarkoituksena ei ollut kuvata itse protokollaa. Tietenkin voit aloittaa heti lähteestä - tekniset tiedot, mutta mielestäni olisi mukavaa, jos sen sisällöstä olisi yhteenveto. Selitän käyttämällä esimerkkinä v3.4:ää. Olen iloinen objektiivisesta kritiikistäsi.

SMPP-protokolla on peer-to-peer-viestintäprotokolla. Tämä tarkoittaa, että jokainen vertais-/keskitinpalvelin on tasa-arvoinen. Yksinkertaisimmassa tapauksessa tekstiviestijärjestelmä näyttää tältä:

SMPP - Peer-to-Peer Short Message Protocol

Jos valtakunnallisella operaattorilla ei kuitenkaan ole reittiä, hän pyytää sitä välittäjältä jollekin syrjäiselle alueelle - SMS-keskittimeen. Joskus yhden tekstiviestin lähettämiseksi sinun on rakennettava ketju useiden maiden tai jopa maanosien välille.

Tietoja protokollasta

SMPP on sovelluskerroksen protokolla, joka perustuu PDU:iden vaihtoon ja joka lähetetään TCP/IP- tai X25-istuntojen kautta tekstiviestien ja ussd-viestien lähettämiseen. Yleensä SMPP:tä käytetään jatkuvassa yhteystilassa, mikä säästää aikaa. SMPP käyttää asiakas-palvelin-viestintämallia.

Viestintätila

SMPP - Peer-to-Peer Short Message Protocol

Viestien vaihto lähettäjän ja SMS-keskuksen välillä SMPP:n kautta voidaan suorittaa seuraavissa tiloissa:

Lähetin (lähetin) - viestin lähettäminen yhteen suuntaan vuorostaan
Vastaanotin (vastaanotin) - vain viestin vastaanottaminen SMS-keskuksesta.
Transreceiver (transceiver) - Viestinvaihto SMS-keskuksen ja käyttäjän välillä

Rakenne

SMPP - Peer-to-Peer Short Message Protocol

Viestin pituus

Yksi tekstiviesti voi sisältää 70 merkkiä kirjoitettaessa kyrillisellä kirjaimella ja enintään 157 latinalaista merkkiä + 3 UDH Jos lähetät tekstiviestin, jossa on suuri määrä merkkejä, se jaetaan useisiin segmentteihin ja yhdistetään vastaanottavassa laitteessa. Segmentoinnissa merkkien määrää pienennetään sanoman otsikoilla, jotka osoittavat viestin osan. Siksi suuria tekstiviestejä lähetettäessä se sisältää enintään 153 latinalaista merkkiä tai 67 epätyypillistä merkkiä.

Datan koodausjärjestelmä

Merkit on kuitenkin koodattava viestin välittämiseksi. SMPP-protokollassa koodauksesta vastaa erityinen kenttä - Data Coding Scheme tai DCS. Tämä on kenttä, joka määrittää, kuinka viestit tulee tunnistaa. Lisäksi DCS-kenttä sisältää:

  • merkistö, joka määrittää koodauksen;
  • viesti luokka;
  • automaattinen poistopyyntö lukemisen jälkeen;
  • viesti viestin pakkaamisesta;
  • lähetysviestin kieli;

Tavallinen 7-bittinen aakkoset (GSM 03.38). Se kehitettiin GSM-viestintäjärjestelmää varten. Tämä koodaus sopii englanniksi ja useille latinalaisille kielille. Jokainen merkki koostuu 7 bitistä ja on koodattu oktettiksi.

UTF-16 (GSM UCS2:ssa) Puuttuvien merkkien sisällyttämiseksi 7-bittiseen aakkostoon kehitettiin UTF-16-koodaus, joka lisää merkkejä (mukaan lukien kyrilliset) pienentämällä viestin kokoa 160:sta 70:een. Tämän tyyppinen koodaus toistaa lähes kokonaan Unicoden.

8-bittinen käyttäjän määrittelemä data. Näitä ovat KOI8-R ja Windows-1251. Vaikka tämä ratkaisu näyttää olevan taloudellisempi verrattuna samaan UTF-16: een. Yhteensopivuus eri laitteilla on perusteltu kysymys. Koska tässä tapauksessa molemmat laitteet on konfiguroitava etukäteen.

Viestiluokka

  • Class0 eli flash, puhelimen muistiin tallennettu viesti käyttäjän pyynnöstä;
  • Class1 tai puhelimen muistiin tallennetut;
  • Class1 tai puhelimen muistiin tallennetut;
  • Luokka2, tulee varmistaa, että viesti on tallennettu mobiilipäätelaitteen muistiin, muussa tapauksessa hänen tulee ilmoittaa tekstiviestikeskukselle tallennuksen epäonnistumisesta;
  • Class3 - tässä tapauksessa puhelimen tulee lähettää ilmoitus, että viesti voidaan tallentaa laitteen muistin määrästä riippumatta. Tämän tyyppinen viesti tarkoittaa, että viesti on saavuttanut määränpäänsä;

Viestin tyyppi

Äänetön viesti (SMS0) Tekstiviestityyppi ilman sisältöä. Tällaiset tekstiviestit tulevat ilman ilmoitusta, eikä niitä näytetä laitteen näytöllä.

PDU

Jokainen pdu-toiminto on paritettu ja koostuu pyynnöstä ja vastauksesta. Esimerkki: komento, joka sanoo, että yhteys on muodostettu (bind_transmitter / bind_transmitter_resp) tai että viesti on lähetetty (deliver_sm / delivery_sm_resp)

SMPP - Peer-to-Peer Short Message Protocol

Jokainen pdu-paketti koostuu kahdesta osasta - header (header) ja body (body). Otsikkorakenne on sama kaikille pdu-paketteille: komennon pituus on paketin pituus, id on paketin nimi ja status-komento osoittaa, lähetettiinkö viesti onnistuneesti vai epäonnistui.

Muut TLV-parametrit

TLV (Tag Length Value) tai lisäkenttiä. Tällaisia ​​parametreja käytetään protokollan toiminnallisuuden laajentamiseen ja ne ovat valinnaisia. Tämä kenttä määritetään pdu-kentän lopussa. Esimerkiksi dest_addr_np_information TLV:n avulla voit järjestää numeron siirtämistä koskevien tietojen siirron.

Ton ja Npi

TON (Numeron tyyppi) -parametri ilmoittaa SMSC:lle osoitemuodon ja verkkotyypin.
NPI (Numbering Plan Identification) -parametri, joka ilmaisee numerointisuunnitelman.

SMPP - Peer-to-Peer Short Message Protocol

Viestin lähteen osoite tai alfa-nimi

Puhelimeen lähetettyjä viestejä on kahta erilaista: numeerisia ja aakkosllisia. Numerot voivat olla pitkiä (puhelinnumeroa muistuttavia) tai lyhyitä. Joskus operaattorit rajoittavat lähettämistä neutraaleista nimistä, kuten Infosms, Alert jne. Joskus operaattorit eivät salli liikennettä, jos nimeä ei ole rekisteröity heidän verkkoonsa. Tämä on kuitenkin enemmän operaattorin ominaisuus.

Lähetysvaiheet

SMPP - Peer-to-Peer Short Message Protocol

SMS-LÄHETÄ lähettää MO FSM-viestiä (lyhytviesti mobiilipäätteestä)
TEKSTIviesti-LÄHETÄ RAPORTTI — vahvistus siitä, että viesti on lähetetty SMSC:llä
SRI-SM (SendRoutingInfo) - SMSC vastaanottaa HLR:ltä tietoja tilaajan MSC/VLR-sijainnista
SRI SM RESP — HLR:n vastaus tilaajapaikan lihaan liittyen
MT-FSM - sijainnin vastaanottamisen jälkeen lähetetään viesti "Lähetä lyhytviesti" -toiminnolla
MT-FSM-ACK — SMSC:n vastaus, että viesti on lähetetty
SMS TILARAPORTTI — SMSC lähettää viestin toimitustilan.

Viestin toimituksen tila

SMS TILARAPORTTI voi ottaa useita arvoja:
DELIVRD viesti toimitettu onnistuneesti
hylätty — SMS-keskus hylkäsi viestin
EXPIRED - viesti poistetaan lähetysjonosta TTL:n (viestin käyttöiän) päätyttyä
EI TOIMI - muut toimittamisen epäonnistumistapaukset
TUNTEMATON- Vastausta ei ole saatu.

Lähetysvirheet

Joskus syyt, joiden vuoksi tekstiviestejä ei toimiteta tilaajalle. Seurauksena näistä syistä on virheiden esiintyminen. Virheet palautetaan muodossa PDUs_sms_resp. Kaikki virheet voidaan jakaa väliaikaisiin (Temporary) ja pysyviin (pysyviin).

Esimerkiksi poissa-tilaaja on tilapäinen, tilaaja ei ole tavoitettavissa tai ei ole online-tilassa, ja pysyvä - tilaajaa ei ole olemassa. Tapahtuneista virheistä riippuen muodostetaan käytäntö näiden viestien uudelleenlähettämiselle.

Esimerkiksi jos tilaaja oli kiireinen puhuessaan ja sai MT-luuri on varattu -virheen, viesti voidaan lähettää uudelleen muutaman minuutin kuluttua, mutta jos tilaaja on estänyt viestin vastaanottopalvelun, uudelleenlähetyksessä ei ole järkeä. Löydät virheluettelon SMSC-sivuilta, esimerkiksi as tämä.

Lähde: will.com

Lisää kommentti