SMPP - Peer-to-Peer Short Message Protocol

Kaixo! Berehalako mezulariek eta sare sozialek egunero komunikazio-metodo tradizionalak ordezkatzen dituzten arren, horrek ez du SMSen ospea kentzen. Gune ezagun batean egiaztatzeak edo transakzioen jakinarazpenak bizi eta biziko dira errepikatzen du. Pentsatu al duzu nola funtzionatzen duen? Askotan, SMPP protokoloa erabiltzen da ontziratu gabeko mezuak bidaltzeko, eta horiek mozketan eztabaidatuko dira.

HabrΓ©k bazituen smpp-i buruzko artikuluak, 1,2, baina haien helburua ez zen protokoloa bera deskribatzea. Jakina, berehala has zaitezke iturritik - zehaztapenak, baina uste dut ondo legokeela bere edukiaren laburpena balego. Adibide gisa v3.4 erabiliz azalduko dut. Pozten naiz zure kritika objektiboagatik.

SMPP protokoloa peer-to-peer mezularitza-protokoloa da. Horrek esan nahi du peer/hub zerbitzari guztiak berdinak direla. Kasurik errazenean, SMS mezuen eskemak itxura hau du:

SMPP - Peer-to-Peer Short Message Protocol

Hala ere, operadore nazionalak ibilbiderik ez badu, bitartekari bati eskatzen dio urruneko eskualde batzuetarako - SMS zentro batera. Batzuetan, SMS bat bidaltzeko, hainbat herrialde edo kontinenteen artean kate bat eraiki behar duzu.

Protokoloari buruz

SMPP aplikazio geruzako protokoloa da, PDU-en trukean oinarritzen dena eta TCP / IP edo X25 saioen bidez transmititzen dena sms eta ussd mezuak bidaltzeko. Normalean SMPP konexio iraunkorrean erabiltzen da, honek denbora aurrezten du. SMPP bezero-zerbitzariaren komunikazio eredua erabiltzen du.

Komunikazio modua

SMPP - Peer-to-Peer Short Message Protocol

SMPP bidez igorlearen eta SMS zentroaren arteko mezuen trukea modu hauetan egin daiteke:

Transmitter (transmitter) - mezu baten transmisioa norabide bakarrean, aldi berean
Hartzailea (hartzailea) - SMS zentroko mezu bat soilik jasotzen du.
Transceiver (transceiver) - SMS zentroaren eta erabiltzailearen arteko mezu-trukea

Egitura

SMPP - Peer-to-Peer Short Message Protocol

Mezuaren luzera

SMS mezu batek 70 karaktere izan ditzake zirilikoan idazten duzunean eta gehienez 157 karaktere latindarrak + 3 UDH SMS bat karaktere kopuru handiarekin bidaltzen baduzu, hainbat segmentutan banatuko da eta gailuan konbinatuko da. Segmentazioari dagokionez, karaktere kopurua murrizten da mezuaren goiburuek, mezuaren zatia adierazten baitute. Beraz, SMS mezu handi bat bidaltzean, gehienez 153 karaktere latindarrak edo 67 karaktere ez-ohikoak ditu.

Datuak Kodetzeko Eskema

Hala ere, karaktereak kodetu behar dira mezu bat helarazteko. SMPP protokoloan, eremu berezi bat arduratzen da kodeketaz - Data Coding Scheme edo DCS. Mezuak nola ezagutu behar diren zehazten duen eremu bat da. Horrez gain, DCS eremuak barne hartzen ditu:

  • kodeketa definitzen duen karaktere multzoa;
  • mezu klasea;
  • irakurri ondoren automatikoki ezabatzeko eskaera;
  • mezuen konpresioaren adierazle;
  • igorpen-mezuen hizkuntza;

7 biteko alfabeto estandarra (GSM 03.38). GSMko mezularitza sistemarako garatu zen. Kodeketa hau ingeleserako eta latinezko hainbat hizkuntzatarako egokia da. Karaktere bakoitza 7 bitz osatuta dago eta zortzikote batean kodetuta dago.

UTF-16 (GSM UCS2n) 7 biteko alfabetoan falta diren karaktereak sartzeko, UTF-16 kodeketa garatu zen, karaktere gehigarriak gehitzen dituena (zirilikoak barne) mezuaren tamaina 160tik 70era murriztuz, kodeketa mota hau. ia guztiz errepikatzen du Unicode .

8 biteko erabiltzaileak definitutako datuak. Horien artean KOI8-R eta Windows-1251 daude. Irtenbide hau UTF-16 beraren aldean ekonomikoagoa dela dirudien arren. Gailu desberdinetan bateragarritasunari buruzko arrazoizko galdera dago. Kasu honetan bi gailuak aldez aurretik konfiguratu behar direnez.

Mezu klasea

  • Class0, edo flash, telefonoaren memorian gordetako mezua, erabiltzaileak eskatuta;
  • Class1, edo telefonoaren memorian gordeta daudenak;
  • Class1, edo telefonoaren memorian gordeta daudenak;
  • Class2, mezua terminal mugikorraren memorian gordeta dagoela ziurtatu behar du, bestela gordetzeko ezintasunari buruzko jakinarazpenak eman behar dizkio SMS zentroari;
  • Class3 - kasu honetan, telefonoak jakinarazpen bat bidali beharko luke mezua gorde daitekeela esanez, gailuko memoria kopurua edozein dela ere. Mezu mota honek mezua helmugara iritsi dela adierazten du;

Mezu mota

Mezu isila (SMS0) SMS mezu mota edukirik gabe. SMS hori jakinarazpenik gabe dator eta ez da gailuaren pantailan bistaratzen.

PDUak

Pdu eragiketa bakoitza parekatuta dago eta eskaera eta erantzun batez osatuta dago. Adibidez: konexio bat ezarri dela dioen komando bat (bind_transmitter / bind_transmitter_resp) edo mezu bat bidali dela (deliver_sm / deliver_sm_resp)

SMPP - Peer-to-Peer Short Message Protocol

Pdu pakete bakoitzak bi zati ditu: goiburua (goiburua) eta gorputza (gorputza). Goiburuko egitura berdina da edozein pdu paketerentzat: komandoaren luzera paketearen luzera da, id paketearen izena eta egoera komandoak mezua ondo edo huts egin den adierazten du.

TLV parametro osagarriak

TLV (Tag Length Value) edo eremu gehigarriak. Horrelako parametroak protokoloaren funtzionaltasuna zabaltzeko erabiltzen dira eta aukerakoak dira. Eremu hau pdu eremuaren amaieran zehazten da. Adibide gisa, dest_addr_np_information TLV erabiliz, zenbakia eramateari buruzko informazioaren transferentzia antola dezakezu.

Ton eta Npi

TON (Zenbaki Mota) parametroak helbideratze formatuari eta sare motari buruz SMSCri jakinarazten dio.
NPI (Numbering Plan Identification) parametroa zenbaketa-plana adierazten duena.

SMPP - Peer-to-Peer Short Message Protocol

Mezuaren iturburuaren helbidea edo alfa-izena

Telefonora bidalitako mezuak bi motatakoak dira: zenbakizkoak eta alfabetikoak. Zenbakiak luzeak (telefono-zenbaki baten antzekoak) edo laburrak izan daitezke. Batzuetan, operadoreek mugak dituzte izen neutroetatik bidaltzeko, hala nola Infosms, Alert etab. Batzuetan, operadoreek ez dute trafikoa onartzen izena bere sarean erregistratuta ez badago. Hala ere, hau operadorearen ezaugarri bat da.

Aurkezteko faseak

SMPP - Peer-to-Peer Short Message Protocol

SMS-BIDALI MO FSM mezua bidaltzen ari da (mezu laburra terminal mugikorretik)
SMS-BIDALI TXOSTENA β€” mezua SMSC-k bidali duela berrestea
SRI SM (SendRoutingInfo) - SMSC-k HLR-ren informazioa jasotzen du harpidedunaren MSC/VLR kokapenari buruz.
SRI SM ERRESP β€” HLRren erantzuna harpidedun posizioaren haragiari buruz
MT-FSM - kokapena jaso ondoren, mezu bat bidaltzen da "Bidali mezu laburrak" eragiketa erabiliz
MT-FSM-ACK β€” SMSC-ren erantzuna mezua bidali dela
SMS EGOERA TXOSTENA β€” SMSCk mezuak bidaltzeko egoera bidaltzen du.

Mezuak bidaltzeko egoera

SMS EGOERA TXOSTENA hainbat balio har ditzake:
ELIKADURA mezua behar bezala entregatu da
EZETSI D β€” SMS zentroak baztertu duen mezua
iraungi - mezua bidalketa-ilaratik kentzen da TTL (mezuaren iraupena) amaitu ondoren
EZGABEA - entregatu gabeko gainerako kasuak
EZEZAGUNA- Ez da erantzunik jaso.

Transmisio akatsak

Batzuetan, harpidedunari SMS mezuak ez bidaltzeko arrazoiak. Arrazoi horien ondorioa akatsak agertzea da. Erroreak PDUs_sms_resp atalean itzultzen dira. Akats guztiak aldi baterako (Behin-behinekoa) eta iraunkorra (Iraunkorra) bereiz daitezke.

Adibide gisa, absent_subscriber aldi baterakoa da, harpideduna ez dago erabilgarri edo ez dago sarean, eta iraunkorra - harpideduna ez da existitzen. Gertatzen diren akatsen arabera, mezu hauek berriro bidaltzeko politika eratzen da.

Adibidez, harpideduna hitz egiten lanpetuta bazegoen eta MT telefonoa lanpetuta dagoen errorea jasoz gero, mezua minutu gutxiren buruan berriro bidal daiteke; hala ere, harpidedunak mezuak jasotzeko zerbitzua blokeatu badu, berriro bidaltzeak ez du zentzurik izango. SMSC orrietan akatsen zerrenda aurki dezakezu, adibidez, honela hau.

Iturria: www.habr.com

Gehitu iruzkin berria