SMPP - Eweknie-kortboodskapprotokol

Hallo! Alhoewel kitsboodskappers en sosiale netwerke daagliks tradisionele kommunikasiemetodes vervang, doen dit geen afbreuk aan die gewildheid van SMS nie. Verifikasie op 'n gewilde webwerf, of 'n transaksiekennisgewing herhaal hulle leef en sal lewe. Het jy al daaraan gedink hoe dit alles werk? Baie dikwels word die SMPP-protokol gebruik om grootmaatboodskappe te stuur, wat onder die snit bespreek sal word.

Habré het reeds artikels gehad oor smpp, 1,2, maar hulle doel was nie om die protokol self te beskryf nie. Natuurlik kan jy dadelik by die bron begin - spesifikasies, maar ek dink dit sal lekker wees as daar 'n opsomming van die inhoud daarvan is. Ek sal verduidelik om v3.4 as voorbeeld te gebruik.Ek is bly vir jou objektiewe kritiek.

Die SMPP-protokol is 'n eweknie-boodskapprotokol. Dit beteken dat elke eweknie-/hub-bediener gelyk is. In die eenvoudigste geval lyk die SMS-boodskapskema soos volg:

SMPP - Eweknie-kortboodskapprotokol

As die nasionale operateur egter nie 'n roete het nie, vra hy 'n tussenganger hiervoor na die een of ander afgeleë streek - 'n SMS-spilpunt. Soms, om een ​​SMS te stuur, moet jy 'n ketting tussen verskeie lande, of selfs vastelande, bou.

Oor protokol

SMPP is 'n toepassingslaagprotokol wat gebaseer is op die uitruil van PDU's en oorgedra word oor TCP / IP, of X25-sessies vir die stuur van sms- en ussd-boodskappe. Gewoonlik word SMPP in aanhoudende verbindingsmodus gebruik, wat tyd bespaar. SMPP gebruik 'n kliënt-bediener kommunikasie model.

Kommunikasiemodus

SMPP - Eweknie-kortboodskapprotokol

Die uitruil van boodskappe tussen die sender en die SMS-sentrum via SMPP kan in die volgende modusse uitgevoer word:

Sender (sender) - oordrag van 'n boodskap in een rigting, op sy beurt
Ontvanger (ontvanger) - ontvang slegs 'n boodskap vanaf die SMS-sentrum.
Transceiver (transceiver) - Boodskapuitruiling tussen die SMS-sentrum en die gebruiker

Struktuur

SMPP - Eweknie-kortboodskapprotokol

Boodskaplengte

Een SMS-boodskap kan 70 karakters bevat wanneer jy in Cyrillies tik en nie meer as 157 Latynse karakters + 3 UDH As jy 'n SMS met 'n groot aantal karakters stuur, sal dit in verskeie segmente verdeel word en in die ontvangtoestel gekombineer word. In die geval van segmentering word die aantal karakters verminder deur die boodskapopskrifte, wat die deel van die boodskap aandui. Daarom, wanneer 'n groot SMS-boodskap gestuur word, bevat dit 'n maksimum van 153 Latynse karakters of 67 nie-tipiese karakters.

Datakoderingskema

Karakters moet egter geënkodeer word om 'n boodskap oor te dra. In die SMPP-protokol is 'n spesiale veld verantwoordelik vir enkodering - Data Coding Scheme, of DCS. Dit is 'n veld wat spesifiseer hoe boodskappe herken moet word. Daarbenewens sluit die DCS-veld in:

  • die karakterstel wat die enkodering definieer;
  • boodskapklas;
  • versoek vir outomatiese uitvee na lees;
  • 'n aanduiding van boodskapkompressie;
  • boodskaptaal uitsaai;

Standaard 7-bis alfabet (GSM 03.38). Dit is ontwikkel vir die boodskapstelsel in GSM. Hierdie enkodering is geskik vir Engels en 'n aantal Latynse tale. Elke karakter bestaan ​​uit 7 bisse en word in 'n oktet geënkodeer.

UTF-16 (in GSM UCS2) Om ontbrekende karakters in die 7-bis-alfabet in te sluit, is die UTF-16-kodering ontwikkel, wat bykomende karakters (insluitend Cyrilliese karakters) byvoeg deur die boodskapgrootte van 160 tot 70 te verminder, hierdie tipe enkodering herhaal Unicode amper heeltemal.

8-bis gebruikergedefinieerde data. Dit sluit KOI8-R en Windows-1251 in. Alhoewel hierdie oplossing meer ekonomies blyk te wees in vergelyking met dieselfde UTF-16. Daar is 'n redelike kwessie van verenigbaarheid op verskillende toestelle. Aangesien in hierdie geval beide toestelle vooraf gekonfigureer moet word.

Boodskapklas

  • Klas0, of flits, 'n boodskap wat in die foon se geheue gestoor is op versoek van die gebruiker;
  • Klas1, of dié wat in die foon se geheue gestoor is;
  • Klas1, of dié wat in die foon se geheue gestoor is;
  • Klas2, moet verseker dat die boodskap in die geheue van die mobiele terminaal gestoor word, anders moet kennisgewings aan die SMS-sentrum gee oor die onmoontlikheid om te stoor;
  • Klas3 - in hierdie geval moet die foon 'n kennisgewing stuur dat die boodskap gestoor kan word, ongeag die hoeveelheid geheue in die toestel. Hierdie tipe boodskap impliseer dat die boodskap sy bestemming bereik het;

Soort boodskap

Stil boodskap (SMS0) SMS-boodskap tipe sonder inhoud. Sulke SMS kom sonder kennisgewing en word nie op die toestelskerm vertoon nie.

PDU's

Elke pdu-bewerking is gepaard en bestaan ​​uit 'n versoek en 'n antwoord. Byvoorbeeld: 'n opdrag wat sê dat 'n verbinding tot stand gebring is (bind_sender / bind_transmitter_resp), of dat 'n boodskap gestuur is (deliver_sm / deliver_sm_resp)

SMPP - Eweknie-kortboodskapprotokol

Elke pdu-pakket bestaan ​​uit twee dele - 'n kopskrif (kopskrif) en 'n liggaam (liggaam). Die kopstruktuur is dieselfde vir enige pdu-pakkie: opdraglengte is die lengte van die pakkie, id is die naam van die pakkie, en die statusopdrag dui aan of die boodskap suksesvol gestuur is of misluk.

Bykomende TLV-parameters

TLV (Tag Length Value), of bykomende velde. Sulke parameters word gebruik om die funksionaliteit van die protokol uit te brei en is opsioneel. Hierdie veld word aan die einde van die pdu-veld gespesifiseer. As 'n voorbeeld, deur die dest_addr_np_information TLV te gebruik, kan u die oordrag van inligting oor die oordrag van die nommer organiseer.

Ton en Npi

TON (Type of Number) parameter lig SMSC in oor die adresseringsformaat en netwerktipe.
NPI (Numbering Plan Identification) parameter wat die nommerplan aandui.

SMPP - Eweknie-kortboodskapprotokol

Boodskapbronadres, of alfanaam

Boodskappe wat na die telefoon gestuur word, kom in twee variëteite voor: numeries en alfabeties. Nommers kan lank (soortgelyk aan 'n telefoonnommer) of kort wees. Soms het operateurs beperkings op die stuur van neutrale name, soos Infosms, Alert, ens. Soms laat operateurs nie verkeer toe as die naam nie in hul netwerk geregistreer is nie. Dit is egter meer 'n kenmerk van die operateur.

Voorlegging stadiums

SMPP - Eweknie-kortboodskapprotokol

SMS-SUBMIT stuur MO FSM-boodskap (kort boodskap vanaf mobiele terminale)
SMS-DIEND VERSLAG IN — bevestiging dat die boodskap deur SMSC gestuur is
SRI SM (SendRoutingInfo) - Die SMSC ontvang inligting van die HLR rakende die MSC/VLR-ligging van die intekenaar
SRI SM RESP — reaksie van HLR aangaande intekenaarposisievleis
MT-FSM - na ontvangs van die ligging, word 'n boodskap gestuur met die "Stuur kort boodskap" operasie
MT-FSM-ACK — antwoord van SMSC dat die boodskap gestuur is
SMS STATUSVERSLAG — SMSC stuur die boodskapafleweringstatus.

Boodskap aflewering status

SMS STATUSVERSLAG kan verskeie waardes neem:
AFLEWER boodskap suksesvol afgelewer
VERWERP — boodskap wat deur die SMS-sentrum verwerp is
VERSTREKE - die boodskap word na die einde van die TTL (boodskapleeftyd) uit die stuurwaglys verwyder
ONTLEEF - ander gevalle van nie-aflewering
ONBEKEND- Geen reaksie ontvang nie.

Oordragfoute

Soms is die redes waarom SMS-boodskappe nie by die intekenaar afgelewer word nie. Die gevolg van hierdie redes is die voorkoms van foute. Foute word in PDUs_sms_resp. Alle foute kan verdeel word in tydelik (tydelik) en permanent (permanent).

As 'n voorbeeld, absent_subscriber is tydelik, die intekenaar is nie beskikbaar of nie aanlyn nie, en permanent - die intekenaar bestaan ​​nie. Afhangende van die foute wat voorkom, word 'n beleid vir die herstuur van hierdie boodskappe gevorm.

Byvoorbeeld, as die intekenaar besig was om te praat en 'n MT-toestel is besig-fout ontvang het, kan die boodskap na 'n paar minute weer gestuur word, maar as die intekenaar die boodskapontvangsdiens geblokkeer het, sal herstuur nie sin maak nie. Jy kan 'n lys foute op die SMSC-bladsye vind, byvoorbeeld as hierdie.

Bron: will.com

Voeg 'n opmerking