SMPP - Peer-to-Peer Short Message Protocol

Ahoj! I když instant messenger a sociální sítě každý den nahrazují tradiční způsoby komunikace, nic to neubírá na popularitě SMS. Ověření na oblíbeném webu nebo oznámení o transakci se opakuje, jsou a budou fungovat. Přemýšleli jste o tom, jak to celé funguje? Protokol SMPP se velmi často používá k rozesílání hromadných zpráv, o kterých bude řeč pod střihem.

Habré už měl články o smpp, 1,2, ale jejich účelem nebylo popisovat samotný protokol. Samozřejmě můžete okamžitě začít od zdroje - Specifikace, ale myslím, že by bylo fajn, kdyby tam bylo shrnutí jeho obsahu. Vysvětlím použití v3.4 jako příklad.Jsem rád za vaši objektivní kritiku.

Protokol SMPP je protokol zasílání zpráv typu peer-to-peer. To znamená, že každý peer/hub server je rovnocenný. V nejjednodušším případě vypadá schéma SMS zpráv takto:

SMPP - Peer-to-Peer Short Message Protocol

Pokud však národní operátor trasu nemá, požádá o ni prostředníka do nějakého vzdáleného regionu - SMS hub. Někdy je k odeslání jedné SMS potřeba vytvořit řetězec mezi několika zeměmi nebo dokonce kontinenty.

O protokolu

SMPP je protokol aplikační vrstvy, který je založen na výměně PDU a je přenášen přes TCP/IP nebo X25 relace pro odesílání sms a ussd zpráv. Obvykle se SMPP používá v režimu trvalého připojení, což šetří čas. SMPP používá komunikační model klient-server.

Komunikační režim

SMPP - Peer-to-Peer Short Message Protocol

Výměna zpráv mezi odesílatelem a SMS centrem přes SMPP může probíhat v následujících režimech:

Vysílač (vysílač) - přenos zprávy postupně jedním směrem
Receiver (receiver) - pouze příjem zprávy z SMS centra.
Transreceiver (transceiver) - Výměna zpráv mezi SMS centrem a uživatelem

Struktura

SMPP - Peer-to-Peer Short Message Protocol

Délka zprávy

Jedna SMS zpráva může obsahovat 70 znaků při psaní v azbuce a ne více než 157 znaků latinky + 3 UDH Pokud posíláte SMS s velkým počtem znaků, bude rozdělena do několika segmentů a v přijímacím zařízení spojena. V případě segmentace se počet znaků snižuje o hlavičky zprávy, které označují část zprávy. Při odesílání velké SMS zprávy tedy obsahuje maximálně 153 latinských znaků nebo 67 netypických znaků.

Schéma kódování dat

Znaky však musí být zakódovány, aby mohly předat zprávu. V protokolu SMPP je za kódování zodpovědné speciální pole - Data Coding Scheme neboli DCS. Toto je pole, které určuje, jak mají být rozpoznávány zprávy. Kromě toho pole DCS zahrnuje:

  • znaková sada, která definuje kódování;
  • třída zpráv;
  • požadavek na automatické smazání po přečtení;
  • indikace komprese zprávy;
  • jazyk vysílaných zpráv;

Standardní 7bitová abeceda (GSM 03.38). Byl vyvinut pro systém zpráv v GSM. Toto kódování je vhodné pro angličtinu a řadu latinských jazyků. Každý znak se skládá ze 7 bitů a je zakódován do oktetu.

UTF-16 (v GSM UCS2) Pro zahrnutí chybějících znaků v 7bitové abecedě bylo vyvinuto kódování UTF-16, které přidává další znaky (včetně azbuky) zmenšením velikosti zprávy ze 160 na 70, tento typ kódování téměř úplně opakuje Unicode .

8bitová uživatelsky definovaná data. Patří mezi ně KOI8-R a Windows-1251. Ačkoli se toto řešení zdá být ekonomičtější ve srovnání se stejným UTF-16. Existuje rozumná otázka kompatibility na různých zařízeních. Protože v tomto případě musí být obě zařízení nakonfigurována předem.

Třída zpráv

  • Class0, neboli flash, zpráva uložená v paměti telefonu na žádost uživatele;
  • Class1, nebo ty uložené v paměti telefonu;
  • Class1, nebo ty uložené v paměti telefonu;
  • třída 2, musí zajistit uložení zprávy do paměti mobilního terminálu, jinak musí SMS centrum upozornit na nemožnost uložení;
  • Class3 – v tomto případě by měl telefon odeslat upozornění, že zprávu lze uložit, bez ohledu na velikost paměti v zařízení. Tento typ zprávy znamená, že zpráva dosáhla svého cíle;

Typ zprávy

Tichá zpráva (SMS0) Typ zprávy SMS bez obsahu. Takové SMS přicházejí bez upozornění a nezobrazují se na obrazovce zařízení.

PDU

Každá operace pdu je spárována a skládá se z požadavku a odpovědi. Například: příkaz, který říká, že připojení bylo navázáno (bind_transmitter / bind_transmitter_resp) nebo že byla odeslána zpráva (deliver_sm / delivery_sm_resp)

SMPP - Peer-to-Peer Short Message Protocol

Každý pdu balíček se skládá ze dvou částí - hlavičky (header) a těla (body). Struktura záhlaví je stejná pro jakýkoli paket pdu: délka příkazu je délka paketu, id je název paketu a příkaz status označuje, zda byla zpráva odeslána úspěšně nebo selhala.

Další parametry TLV

TLV (Tag Length Value) nebo další pole. Tyto parametry se používají k rozšíření funkčnosti protokolu a jsou volitelné. Toto pole je uvedeno na konci pole pdu. Například pomocí dest_addr_np_information TLV můžete zorganizovat přenos informací o přenesení čísla.

Ton a Npi

Parametr TON (Type of Number) informuje SMSC o formátu adresování a typu sítě.
Parametr NPI (Numbering Plan Identification) označující číslovací plán.

SMPP - Peer-to-Peer Short Message Protocol

Adresa zdroje zprávy nebo alfa název

Zprávy odeslané do telefonu přicházejí ve dvou variantách: numerické a abecední. Čísla mohou být dlouhá (podobně jako telefonní číslo) nebo krátká. Někdy mají operátoři omezení na odesílání z neutrálních jmen, jako jsou Infosms, Alert atd. Někdy operátoři nepovolí provoz, pokud jméno není zaregistrováno v jejich síti. To je však spíše vlastnost operátora.

Fáze odevzdání

SMPP - Peer-to-Peer Short Message Protocol

SMS-ODESLAT posílá MO FSM zprávu (krátkou zprávu z mobilního terminálu)
SMS-ODESLAT HLÁŠENÍ — potvrzení, že zpráva byla odeslána SMSC
SRI-SM (SendRoutingInfo) - SMSC přijímá informace z HLR týkající se MSC/VLR umístění účastníka
SRI SM RESP — odpověď od HLR ohledně pozice předplatitele
MT-FSM - po obdržení polohy je odeslána zpráva pomocí operace "Přeposlat krátkou zprávu".
MT-FSM-ACK — odpověď od SMSC, že zpráva byla odeslána
SMS HLÁŠENÍ STAVU — SMSC odešle stav doručení zprávy.

Stav doručení zprávy

SMS HLÁŠENÍ STAVU může nabývat několika hodnot:
DELIVRD zpráva úspěšně doručena
ODMÍTNUTO — zpráva odmítnuta centrem SMS
EXPIRED - zpráva je odstraněna z fronty odesílání po skončení TTL (života zprávy)
UNDELIV - ostatní případy nedoručení
NEZNÁMÝ- Žádná odpověď.

Chyby přenosu

Někdy důvody, pro které nejsou SMS zprávy doručeny účastníkovi. Důsledkem těchto důvodů je výskyt chyb. Chyby jsou vráceny v PDUs_sms_resp. Všechny chyby lze rozdělit na dočasné (Temporary) a trvalé (Permanent).

Například absent_subscriber je dočasný, odběratel není dostupný nebo není online, a trvalý - odběratel neexistuje. V závislosti na chybách, které se vyskytnou, se vytvoří politika pro opětovné zaslání těchto zpráv.

Například, pokud byl účastník zaneprázdněn a přijal MT sluchátko je obsazeno, zpráva může být znovu odeslána po několika minutách, pokud však účastník zablokoval službu příjmu zpráv, opětovné odeslání nebude mít smysl. Seznam chyb najdete na stránkách SMSC např. jako tohle.

Zdroj: www.habr.com

Přidat komentář