SMPP – Peer-to-Peer Short Message Protocol

Helló! Bár az azonnali üzenetküldők és a közösségi hálózatok nap mint nap felváltják a hagyományos kommunikációs módszereket, ez mit sem von le az SMS népszerűségéből. Az ellenőrzés egy népszerű webhelyen vagy a tranzakciós értesítés megismétli, hogy élnek és élni fognak. Gondolkodtál már azon, hogyan működik mindez? Nagyon gyakran az SMPP protokollt használják tömeges üzenetek küldésére, amelyekről a kivágás alatt lesz szó.

Habrénak már voltak cikkei az smpp-ről, 1,2, de nem magának a protokollnak a leírása volt a céljuk. Természetesen azonnal indulhat a forrásból - specifikációk, de szerintem jó lenne, ha lenne egy összefoglaló a tartalmáról. Példaként a v3.4-et magyarázom, örülök objektív kritikájának.

Az SMPP protokoll egy peer-to-peer üzenetkezelési protokoll. Ez azt jelenti, hogy minden peer/hub szerver egyenlő. A legegyszerűbb esetben az SMS üzenetküldési séma így néz ki:

SMPP – Peer-to-Peer Short Message Protocol

Ha azonban az országos szolgáltatónak nincs útvonala, akkor egy közvetítőt kér erre valamilyen távoli régióba - egy SMS-központba. Néha egy SMS küldéséhez több ország vagy akár kontinens közötti láncot kell kiépíteni.

A protokollról

Az SMPP egy alkalmazási rétegbeli protokoll, amely a PDU-k cseréjén alapul, és TCP / IP-n vagy X25-ös szekciókon keresztül továbbítható SMS- és ussd-üzenetek küldésére. Általában az SMPP-t tartós kapcsolati módban használják, ami időt takarít meg. Az SMPP kliens-szerver kommunikációs modellt használ.

Kommunikációs mód

SMPP – Peer-to-Peer Short Message Protocol

Az SMPP-n keresztüli üzenetváltás a feladó és az SMS-központ között a következő módokban valósítható meg:

Transmitter (transmitter) - az üzenet továbbítása egy irányba, viszont
Vevő (vevő) - csak üzenet fogadása az SMS-központból.
Transceiver (transceiver) - Üzenetváltás az SMS központ és a felhasználó között

Szerkezet

SMPP – Peer-to-Peer Short Message Protocol

Az üzenet hossza

Egy SMS-üzenet cirill betűkkel írva 70 karaktert tartalmazhat, és legfeljebb 157 latin karakter + 3 UDH Ha sok karakterből álló SMS-t küld, akkor az több szegmensre oszlik, és a fogadó készülékben kombinálódik. Szegmentálás esetén a karakterek számát csökkentik az üzenetfejlécek, amelyek az üzenet részét jelzik. Ezért egy nagyméretű SMS küldésekor az legfeljebb 153 latin karaktert vagy 67 nem tipikus karaktert tartalmazhat.

Adatkódolási séma

Az üzenet közvetítéséhez azonban a karaktereket kódolni kell. Az SMPP protokollban egy speciális mező felel a kódolásért - Data Coding Scheme vagy DCS. Ez egy mező, amely meghatározza, hogyan kell felismerni az üzeneteket. Ezenkívül a DCS mező a következőket tartalmazza:

  • a kódolást meghatározó karakterkészlet;
  • üzenet osztály;
  • automatikus törlés kérése olvasás után;
  • üzenettömörítés jelzése;
  • sugárzott üzenet nyelve;

Szabványos 7 bites ábécé (GSM 03.38). A GSM üzenetküldő rendszerhez fejlesztették ki. Ez a kódolás alkalmas angolra és számos latin nyelvre. Minden karakter 7 bitből áll, és egy oktettbe van kódolva.

UTF-16 (GSM UCS2-ben) A hiányzó karakterek 7 bites ábécébe való beillesztésére kifejlesztették az UTF-16 kódolást, amely további karaktereket ad hozzá (beleértve a cirill karaktereket is) az üzenet méretének 160-ról 70-re való csökkentésével, ez a kódolási típus szinte teljesen megismétli a Unicode -ot.

8 bites felhasználó által definiált adatok. Ezek közé tartozik a KOI8-R és a Windows-1251. Bár ez a megoldás gazdaságosabbnak tűnik ugyanazon UTF-16-hoz képest. Ésszerű kérdés a kompatibilitás a különböző eszközökön. Mivel ebben az esetben mindkét eszközt előre konfigurálni kell.

Üzenet osztály

  • Class0, vagy flash, a telefon memóriájában tárolt üzenet a felhasználó kérésére;
  • Class1, vagy a telefon memóriájában tároltak;
  • Class1, vagy a telefon memóriájában tároltak;
  • Class2, gondoskodnia kell arról, hogy az üzenet a mobil terminál memóriájában tárolva legyen, ellenkező esetben értesítenie kell az SMS központot a mentés lehetetlenségéről;
  • Class3 - ebben az esetben a telefonnak értesítést kell küldenie arról, hogy az üzenet elmenthető, függetlenül a készülék memóriájának méretétől. Ez az üzenettípus azt jelenti, hogy az üzenet elérte a célállomást;

Üzenet típusa

Csendes üzenet (SMS0) Tartalom nélküli SMS-üzenet típusa. Az ilyen SMS értesítés nélkül érkezik, és nem jelenik meg a készülék képernyőjén.

PDU-k

Minden pdu-művelet párosítva van, és egy kérésből és egy válaszból áll. Például: egy parancs, amely azt mondja, hogy a kapcsolat létrejött (bind_transmitter / bind_transmitter_resp), vagy hogy üzenetet küldtek (deliver_sm / delivery_sm_resp)

SMPP – Peer-to-Peer Short Message Protocol

Minden pdu csomag két részből áll - egy fejlécből (fejléc) és egy törzsből (body). A fejléc szerkezete minden pdu-csomag esetében megegyezik: a parancs hossza a csomag hossza, az id a csomag neve, a status parancs pedig azt jelzi, hogy az üzenet elküldése sikeres volt-e vagy sikertelen.

További TLV paraméterek

TLV (Tag Length Value) vagy további mezők. Az ilyen paraméterek a protokoll funkcionalitásának kiterjesztésére szolgálnak, és nem kötelezőek. Ez a mező a pdu mező végén van megadva. Például a dest_addr_np_information TLV használatával megszervezheti a számhordozással kapcsolatos információk átvitelét.

Ton és Npi

A TON (szám típusa) paraméter tájékoztatja az SMSC-t a címzési formátumról és a hálózat típusáról.
A számozási tervet jelző NPI (Numbering Plan Identification) paraméter.

SMPP – Peer-to-Peer Short Message Protocol

Üzenetforrás címe vagy alfa név

A telefonra küldött üzenetek kétféle formában vannak: numerikus és alfabetikus. A számok lehetnek hosszúak (hasonlóak egy telefonszámhoz) vagy rövidek. Néha az operátorok korlátozzák a semleges nevekről történő küldést, például Infosms, Alert stb. Néha az üzemeltetők nem engedélyezik a forgalmat, ha a név nincs regisztrálva a hálózatukban. Ez azonban inkább az üzemeltető sajátossága.

Beküldési szakaszok

SMPP – Peer-to-Peer Short Message Protocol

SMS-KÜLDÉS MO FSM üzenetet küld (rövid üzenet a mobil terminálról)
SMS-JELENTÉS KÜLDÉSE — annak megerősítése, hogy az üzenetet SMSC küldte
SRI SM (SendRoutingInfo) - Az SMSC információt kap a HLR-től az előfizető MSC/VLR helyére vonatkozóan
SRI SM RESP — a HLR válasza az előfizetői pozícióval kapcsolatban
MT-FSM - a hely kézhezvétele után üzenetet küldenek a "Rövid üzenet továbbítása" művelettel
MT-FSM-ACK — az SMSC válasza, hogy az üzenetet elküldték
SMS ÁLLAPOTJELENTÉS — Az SMSC elküldi az üzenet kézbesítési állapotát.

Üzenet kézbesítési állapota

SMS ÁLLAPOTJELENTÉS több értéket vehet fel:
DELIVRD üzenet sikeresen kézbesítve
ELUTASÍTVA — az SMS-központ elutasította az üzenetet
LEJÁRT - az üzenet a TTL (üzenet élettartama) lejárta után törlődik a küldési sorból
UNDELIV - a kézbesítés egyéb esetei
ISMERETLEN- Nem érkezett válasz.

Átviteli hibák

Néha azok az okok, amelyek miatt az SMS-eket nem kézbesítik az előfizetőnek. Ezen okok következménye a hibák előfordulása. A hibákat a PDUs_sms_resp. Minden hiba felosztható ideiglenes (Temporary) és állandó (Permanent) típusokra.

Például az absent_subscriber ideiglenes, az előfizető nem elérhető vagy nem online, és állandó - az előfizető nem létezik. Az előforduló hibáktól függően az üzenetek újraküldésére vonatkozó szabályzat jön létre.

Például, ha az előfizető elfoglalt volt a beszélgetéssel, és MT kézibeszélő foglalt hibaüzenetet kapott, az üzenet néhány perc múlva újra elküldhető, azonban ha az előfizető letiltotta az üzenetfogadási szolgáltatást, az újraküldésnek nincs értelme. Az SMSC oldalain megtalálhatja a hibalistát, például as ezt.

Forrás: will.com

Hozzászólás