SMPP - Short Message Peer-to-Peer Protocol

Hallå! Även om budbärare och sociala nätverk ersätter traditionella kommunikationsmetoder varje dag, förringar detta inte populariteten för SMS. Verifiering på en populär webbplats, eller meddelande om en transaktion upprepas, de lever och kommer att leva. Har du någonsin undrat hur allt fungerar? Mycket ofta används SMPP-protokollet för att skicka massmeddelanden, vilket kommer att diskuteras nedan.

Det fanns redan artiklar på Habré om smpp, 1,2, men deras mål var inte att beskriva själva protokollet. Naturligtvis kan du omedelbart börja från den ursprungliga källan - specifikationer, men jag tycker att det vore trevligt om det fanns en kort sammanfattning av det. Jag kommer att förklara hur jag använder v3.4 som exempel.Jag kommer att vara glad för din objektiva kritik.

SMPP-protokollet är ett peer-to-peer-meddelandeprotokoll. Detta innebär att varje peer/hub-server har lika rättigheter. I det enklaste fallet ser SMS-meddelandeschemat ut så här:

SMPP - Short Message Peer-to-Peer Protocol

Men om den nationella operatören inte har en rutt till någon avlägsen region ber han en mellanhand om detta - en SMS-hubb. Ibland, för att skicka ett SMS, måste du bygga en kedja mellan flera länder, eller till och med kontinenter.

Om protokollet

SMPP är ett applikationslagerprotokoll som är baserat på PDU-utbyte och sänds över TCP/IP, eller X25-sessioner för överföring av SMS och ussd-meddelanden. Vanligtvis används SMPP i beständigt läge, vilket hjälper till att spara tid. SMPP använder en klient-server kommunikationsmodell.

Kommunikationsläge

SMPP - Short Message Peer-to-Peer Protocol

Utbytet av meddelanden mellan avsändaren och SMS-centralen via SMPP kan utföras i följande lägen:

Sändare (sändare) - sända ett meddelande i en riktning, ett i taget
Mottagare - tar bara emot ett meddelande från SMS-centralen.
Transceiver (transceiver) - Utbyte av meddelanden mellan SMS-centralen och användaren

Struktur

SMPP - Short Message Peer-to-Peer Protocol

Meddelandets längd

Ett SMS-meddelande kan innehålla 70 tecken när du skriver på kyrilliska och högst 157 latinska tecken + 3 UDH Om du skickar ett SMS med ett stort antal tecken delas det upp i flera segment och kombineras i den mottagande enheten. Vid segmentering reduceras antalet tecken med meddelandehuvuden, som indikerar en del av meddelandet. När du skickar ett stort SMS innehåller det därför högst 153 latinska tecken eller 67 atypiska tecken.

Datakodningsschema

Symboler kräver dock kodning för att förmedla ett budskap. I SMPP-protokollet är ett speciellt fält ansvarigt för kodning - Data Coding Scheme, eller DCS. Detta är ett fält som anger hur meddelanden ska kännas igen. Dessutom innehåller DCS-fältet:

  • teckenuppsättningen som definierar kodningen;
  • meddelandeklass;
  • begäran om automatisk radering efter läsning;
  • indikation på meddelandekomprimering;
  • språk för sändningsmeddelanden;

Standard 7-bitars alfabet (GSM 03.38). Det utvecklades för GSM-meddelandesystemet. Denna kodning är lämplig för engelska och ett antal latinska språk. Varje tecken består av 7 bitar och kodas till en oktett.

UTF-16 (i GSM UCS2) För att inkludera saknade tecken i 7-bitars alfabetet utvecklades UTF-16-kodningen, som lägger till ytterligare tecken (inklusive kyrilliska) genom att minska meddelandestorleken från 160 till 70; denna typ av kodning nästan replikerar helt Unicode.

8-bitars användardefinierad data. Dessa inkluderar KOI8-R och Windows-1251. Även om denna lösning verkar mer ekonomisk jämfört med samma UTF-16. En rimlig fråga uppstår om kompatibilitet på olika enheter. För i det här fallet måste båda enheterna konfigureras i förväg.

Meddelandeklass

  • Class0, eller flash, meddelande lagrat i telefonens minne på användarens begäran;
  • Klass1, eller de som är lagrade i telefonens minne;
  • Klass1, eller de som är lagrade i telefonens minne;
  • Klass2 måste se till att meddelandet sparas i mobilterminalens minne, annars måste den varna SMS-centralen om omöjligheten att spara;
  • Klass3 – i det här fallet måste telefonen skicka ett meddelande om att meddelandet kan lagras, oavsett mängden minne i enheten. Denna typ av meddelande innebär att meddelandet har nått mottagaren;

Meddelandetyp

Tyst meddelande (SMS0) Typ av SMS utan innehåll. Detta SMS kommer utan avisering och visas inte på enhetens skärm.

PDU:er

Varje pdu-operation är parad och består av en begäran och ett svar. Till exempel: ett kommando som säger att en anslutning har upprättats (bind_transmitter / bind_transmitter_resp), eller att ett meddelande har överförts (deliver_sm / delivery_sm_resp)

SMPP - Short Message Peer-to-Peer Protocol

Varje pdu-paket består av två delar - en header och en body. Rubrikstrukturen är densamma för alla pdu-paket: kommandolängden är paketets längd, id är namnet på paketet och statuskommandot anger om meddelandet överfördes framgångsrikt eller med ett fel.

Ytterligare TLV-parametrar

TLV (Tag Length Value) eller ytterligare fält. Sådana parametrar används för att utöka funktionaliteten hos protokollet och krävs inte. Detta fält visas i slutet av pdu-fältet. Som ett exempel, med hjälp av TLV dest_addr_np_information, kan du organisera överföringen av information om portabiliteten för ett nummer.

Ton och Npi

TON-parametern (Type of Number) informerar SMSC om adresseringsformat och nätverkstyp.
NPI-parameter (Numbering Plan Identification) som anger numreringsplanen.

SMPP - Short Message Peer-to-Peer Protocol

Meddelandekällans adress eller alfanamn

Meddelanden som skickas till din telefon finns i två varianter: digitala och alfabetiska. Digitala nummer kan vara långa (liknar ett telefonnummer) eller korta. Ibland har operatörer restriktioner för att skicka från neutrala namn, till exempel Infosms, Alert etc. Ibland tillåter inte operatörer trafik om namnet inte är registrerat i deras nätverk. Dessa är dock snarare operatörsegenskaper.

Inlämningsstadier

SMPP - Short Message Peer-to-Peer Protocol

SMS-Skicka - det här är att skicka ett MO FSM-meddelande (kortmeddelande från en mobilterminal)
SMS-Skicka RAPPORT — bekräftelse på att meddelandet skickades av SMSC
SRI SM (SendRoutingInfo) - SMSC tar emot information från HLR angående MSC/VLR-position för abonnenten
SRI SM RESP — svar från HLR angående abonnentpositionen kött
MT-FSM — efter att ha mottagit platsen skickas ett meddelande med funktionen "Vidarebefordra kortmeddelande".
MT-FSM ACK — svar från SMSC att meddelandet har skickats
SMS-STATUSRAPPORT — SMSC skickar meddelandeleveransstatus.

Meddelandeleveransstatus

SMS-STATUSRAPPORT kan ta flera värden:
DELIVRD meddelande levereras framgångsrikt
AVVISAD — meddelande som avvisats av SMS-centralen
UTGÅNGET — meddelandet tas bort från sändningskön efter slutet av TTL (meddelandelivslängd)
UNDELIV - andra fall av utebliven leverans
OKÄND- Inget svar mottaget angående avsändning.

Överföringsfel

Ibland finns det anledningar till att SMS-meddelanden inte levereras till abonnenten. Konsekvensen av dessa skäl är förekomsten av fel. Fel returneras till PDUs_sms_resp. Alla fel kan delas in i tillfälliga (Tillfälliga) och permanenta (Permanenta).

Som ett exempel kan absent_subscriber klassificeras som tillfällig - abonnenten är inte tillgänglig eller är inte online, och permanent - abonnenten finns inte. Beroende på de fel som uppstår, skapas en policy för att återsända dessa meddelanden.

Till exempel, om abonnenten var upptagen under ett samtal och fick felet att MT-luren är upptagen, kan meddelandet skickas om efter några minuter, men om abonnentens meddelandemottagningstjänst är blockerad, är det inte meningsfullt att skicka om igen. Du kan hitta en lista över fel på SMSC-sidorna, till exempel detta.

Källa: will.com

Lägg en kommentar