SMPP - Peer-to-Peer Short Message Protocol

Hallo! Hoewol't boaden en sosjale netwurken alle dagen tradisjonele metoaden fan kommunikaasje ferfange, docht dit net ôf oan 'e populariteit fan SMS. Ferifikaasje op in populêre side, of notifikaasje fan in transaksje wurdt werhelle, se libje en sille libje. Hawwe jo jo oait ôffrege hoe't it allegear wurket? Hiel faak wurdt it SMPP-protokol brûkt om massaberjochten te ferstjoeren, dy't hjirûnder besprutsen wurde.

Der stiene al artikels op Habré oer smpp, 1,2, mar har doel wie net om it protokol sels te beskriuwen. Fansels kinne jo fuortendaliks begjinne fan 'e orizjinele boarne - spesifikaasjes, mar ik tink dat it moai wêze soe as der in koarte gearfetting fan wie. Ik sil útlizze mei v3.4 as foarbyld. Ik sil bliid wêze foar jo objektive krityk.

It SMPP-protokol is in peer-to-peer messagingprotokol. Dit betsjut dat elke peer / hub tsjinner hat gelikense rjochten. Yn it ienfâldichste gefal sjocht it SMS-berjochtenskema der sa út:

SMPP - Peer-to-Peer Short Message Protocol

As de nasjonale operator lykwols gjin rûte hat nei ien of oare ôfstânregio, freget hy dêrfoar in tuskenpersoan - in SMS-hub. Soms, om ien SMS te stjoeren, moatte jo in ketting bouwe tusken ferskate lannen, of sels kontininten.

Oer it protokol

SMPP is in applikaasjelaachprotokol dat is basearre op PDU-útwikseling en wurdt oerbrocht oer TCP / IP, as X25-sesjes foar it ferstjoeren fan SMS- en ussd-berjochten. Typysk wurdt SMPP brûkt yn persistente modus, wat helpt om tiid te besparjen. SMPP brûkt in klant-tsjinner kommunikaasjemodel.

Kommunikaasje modus

SMPP - Peer-to-Peer Short Message Protocol

De útwikseling fan berjochten tusken de stjoerder en it SMS-sintrum fia SMPP kin wurde útfierd yn de folgjende modi:

Sender (stjoerder) - it ferstjoeren fan in berjocht yn ien rjochting, ien foar ien
Untfanger - ûntfangt allinich in berjocht fan it SMS-sintrum.
Transceiver (transceiver) - Útwikseling fan berjochten tusken it SMS-sintrum en de brûker

struktuer

SMPP - Peer-to-Peer Short Message Protocol

Berjocht lingte

Ien SMS-berjocht kin 70 karakters befetsje by it typen yn it Syrillysk en net mear as 157 Latynske tekens + 3 UDH As jo ​​in SMS stjoere mei in grut oantal karakters, wurdt it ferdield yn ferskate segminten en kombineare yn it ûntfangende apparaat. Yn it gefal fan segmentaasje wurdt it oantal karakters fermindere troch de berjochtkoppen, dy't in diel fan it berjocht oanjaan. Dêrom, by it ferstjoeren fan in grut SMS-berjocht, befettet it maksimaal 153 Latynske tekens of 67 atypyske tekens.

Gegevenskodearjen Scheme

Symboalen fereaskje lykwols kodearring om in berjocht oer te bringen. Yn it SMPP-protokol is in spesjaal fjild ferantwurdlik foar kodearring - Data Coding Scheme, of DCS. Dit is in fjild dat spesifisearret hoe't berjochten herkend wurde moatte. Derneist omfettet it DCS-fjild:

  • de tekenset dy't de kodearring definiearret;
  • berjocht klasse;
  • fersyk foar automatyske wiskjen nei it lêzen;
  • yndikaasje fan berjochtkompresje;
  • taal fan útstjoerberjochten;

Standert 7-bit alfabet (GSM 03.38). It waard ûntwikkele foar it GSM-berjochtensysteem. Dizze kodearring is geskikt foar Ingelsk en in oantal Latynske talen. Elk karakter bestiet út 7 bits en wurdt kodearre yn in oktet.

UTF-16 (yn GSM UCS2) Om ûntbrekkende karakters op te nimmen yn it 7-bit alfabet, waard de UTF-16-kodearring ûntwikkele, dy't ekstra tekens (ynklusyf Syrillysk) tafoege troch de berjochtgrutte te ferminderjen fan 160 nei 70; dit type kodearring hast folslein replicates Unicode.

8-bit brûker definieare gegevens. Dizze omfetsje KOI8-R en Windows-1251. Hoewol dizze oplossing liket mear ekonomysk yn ferliking mei deselde UTF-16. In ridlike fraach ûntstiet fan kompatibiliteit op ferskate apparaten. Want yn dit gefal moatte beide apparaten fan tefoaren konfigureare wurde.

Berjocht klasse

  • Class0, of flash, berjocht opslein yn it ûnthâld fan de telefoan op fersyk fan de brûker;
  • Class1, of dy opslein yn 'e telefoan syn ûnthâld;
  • Class1, of dy opslein yn 'e telefoan syn ûnthâld;
  • Klasse2 moat derfoar soargje dat it berjocht wurdt bewarre yn it ûnthâld fan 'e mobile terminal, oars moat it it SMS-sintrum warskôgje oer de ûnmooglikheid om te bewarjen;
  • Class3 - yn dit gefal moat de tillefoan in notifikaasje stjoere dat it berjocht kin wurde opslein, nettsjinsteande de hoemannichte ûnthâld yn it apparaat. Dit soarte berjocht hâldt yn dat it berjocht de ûntfanger berikt hat;

Berjocht Type

Stil berjocht (SMS0) Soart SMS-berjocht sûnder ynhâld. Dizze SMS komt sûnder notifikaasje en wurdt net werjûn op it apparaatskerm.

PDUs

Elke pdu-operaasje is keppele en bestiet út in fersyk en in antwurd. Bygelyks: in kommando dat seit dat in ferbining is makke (bind_transmitter / bind_transmitter_resp), of dat in berjocht is ferstjoerd (deliver_sm / deliver_sm_resp)

SMPP - Peer-to-Peer Short Message Protocol

Elk pdu-pakket bestiet út twa dielen - in koptekst en in lichem. De koptekststruktuer is itselde foar elk pdu-pakket: kommandolingte is de lingte fan it pakket, id is de namme fan it pakket, en it statuskommando jout oan oft it berjocht mei súkses of mei in flater ferstjoerd is.

Oanfoljende TLV parameters

TLV (Tag Length Value), of oanfoljende fjilden. Sokke parameters wurde brûkt om de funksjonaliteit fan it protokol út te wreidzjen en binne net fereaske. Dit fjild ferskynt oan 'e ein fan it pdu-fjild. As foarbyld, mei de TLV dest_addr_np_information, kinne jo de oerdracht fan ynformaasje organisearje oer de portabiliteit fan in nûmer.

Ton en Npi

TON (Type of Number) parameter ynformearret SMSC oer de adressering opmaak en netwurk type.
NPI (numbering Plan Identification) parameter oanjout de nûmering plan.

SMPP - Peer-to-Peer Short Message Protocol

Berjocht boarne adres, of alpha namme

Berjochten stjoerd nei jo tillefoan komme yn twa farianten: digitaal en alfabetysk. Digitale nûmers kinne lang (lykas in telefoannûmer) of koart wêze. Soms hawwe operators beheiningen op it ferstjoeren fan neutrale nammen, bygelyks Infosms, Alert ensfh. Soms sille operators gjin ferkear tastean as de namme net registrearre is op har netwurk. Lykwols, dit binne earder operator skaaimerken.

Yntsjinjen stadia

SMPP - Peer-to-Peer Short Message Protocol

SMS-SUBMIT - dit is it ferstjoeren fan in MO FSM-berjocht (koart berjocht fan in mobile terminal)
SMS-SUBMIT RAPPORT - befêstiging dat it berjocht is ferstjoerd troch SMSC
SRI SM (SendRoutingInfo) - SMSC ûntfangt ynformaasje fan HLR oangeande MSC / VLR-lokaasje fan 'e abonnee
SRI SM RESP - antwurd fan HLR oangeande de abonnee posysje fleis
MT-FSM - nei ûntfangst fan de lokaasje wurdt in berjocht ferstjoerd mei de operaasje "Koarte berjocht trochstjoere".
MT-FSM ACK - antwurd fan SMSC dat it berjocht is ferstjoerd
SMS-STATUSBERICHT - SMSC ferstjoert status fan berjochtlevering.

Berjocht levering status

SMS-STATUSBERICHT kin ferskate wearden nimme:
DELIVRD berjocht mei súkses levere
AFWIST - berjocht ôfwiisd troch SMS-sintrum
ÚTFERT - it berjocht wurdt fuorthelle út 'e ferstjoerwachtrige nei it ein fan' e TTL (berjochtlibben)
UNDELIV - oare gefallen fan net-levering
ÛNBEKEND-gjin antwurd ûntfongen oangeande ferstjoering.

Oerdracht flaters

Soms binne der redenen wêrom't SMS-berjochten net wurde levere oan de abonnee. It gefolch fan dizze redenen is it foarkommen fan flaters. Flaters wurde weromjûn oan PDUs_sms_resp. Alle flaters kinne wurde ferdield yn tydlik (Tydlik) en permanint (permanint).

As foarbyld kin absent_subscriber wurde klassifisearre as tydlik - de abonnee is net beskikber of is net online, en permanint - de abonnee bestiet net. Ofhinklik fan de flaters dy't foarkomme, wurdt in belied foar it opnij ferstjoeren fan dizze berjochten foarme.

Bygelyks, as de abonnee dwaande wie op in oprop en ûntfong de flater MT-handset is drok, kin it berjocht nei in pear minuten opnij ferstjoerd wurde, lykwols, as de tsjinst foar it ûntfangen fan berjochten fan 'e abonnee is blokkearre, sil opnij ferstjoere gjin sin hawwe. Jo kinne fine in list fan flaters op de SMSC siden, bygelyks, lykas dit.

Boarne: www.habr.com

Add a comment