SMPP - protokoll peer-to-peer për mesazhe të shkurtra

Përshëndetje! Edhe pse mesazherët dhe rrjetet sociale po zëvendësojnë çdo ditë mënyrat tradicionale të komunikimit, kjo nuk e ul popullaritetin e SMS-ve. Verifikimi në një faqe të njohur ose njoftimi për një transaksion i përsërit ato dhe do të vazhdojë të ekzistojë. A keni menduar ndonjëherë se si funksionon gjithçka? Shumë shpesh, për dërgimin e mesazheve masive përdoret protokolli SMPP, për të cilin do të flasim më vonë.

NĂ« Habr janĂ« publikuar artikuj lidhur me SMPP, 1,2, por qĂ«llimi i tyre nuk ishte pĂ«rshkrimi i vetĂ« protokollit. Natyrisht, mund tĂ« filloni menjĂ«herĂ« me burimin fillestar — specifikacioni, por mendoj se do tĂ« ishte mirĂ« qĂ« tĂ« ekzistonte njĂ« pĂ«rmbledhje e shkurtĂ«r. Do ta shpjegoj me shembuj nga v3.4 Jam i lumtur pĂ«r kritikĂ«n tuaj objektive.

Protokolli SMPP është një protokoll për mesazhe peer-to-peer. Kjo do të thotë se çdo server peer/hub është baraz. Në rastin më të thjeshtë, skema e shkëmbimit të mesazheve SMS duket kështu:

SMPP - protokoll peer-to-peer për mesazhe të shkurtra

MegjithatĂ«, nĂ«se operatori kombĂ«tar nuk ka njĂ« rrugĂ« pĂ«r nĂ« njĂ« rajon tĂ« largĂ«t, ai kĂ«rkon ndihmĂ«n e njĂ« ndĂ«rmjetĂ«si — SMS hub. NdonjĂ«herĂ«, pĂ«r tĂ« dĂ«rguar njĂ« SMS, Ă«shtĂ« e nevojshme tĂ« ndĂ«rtohet njĂ« zinxhir mes disa vendeve, ose madje kontinenteve.

Rreth protokollit

SMPP — njĂ« protokoll i nivelit aplikativ qĂ« bazohet nĂ« shkĂ«mbimin e PDU dhe transmetohet mbi TCP/IP ose sesione X25 pĂ«r dĂ«rgimin e mesazheve SMS dhe USSD. Zakonisht SMPP pĂ«rdoret me njĂ« lidhje tĂ« vazhdueshme pĂ«r tĂ« kursyer kohĂ«. SMPP pĂ«rdor njĂ« model komunikimi klient - server.

Rehimi i komunikimit

SMPP - protokoll peer-to-peer për mesazhe të shkurtra

Shkëmbimi i mesazheve midis dërguesit dhe qendrës SMS përmes SMPP mund të kryhet në këto mënyra:

Transmitter (dĂ«rguesi) — dĂ«rgimi i mesazhit nĂ« njĂ« drejtim, nĂ« mĂ«nyrĂ« tĂ« rregullt
Receiver (pranuesi) — vetĂ«m pranimi i mesazhit nga qendra SMS.
Transreceiver (pranues-dĂ«rgues) — ShkĂ«mbimi i mesazheve midis qendrĂ«s SMS dhe pĂ«rdoruesit

Struktura

SMPP - protokoll peer-to-peer për mesazhe të shkurtra

Gjatësia e mesazhit

Një SMS mund të përmbajë 70 karaktere në shkrimin cirilik dhe jo më shumë se 157 karaktere latine + 3 UDH. Nëse dërgohet një SMS me më shumë karaktere, ai do të ndahet në disa segmente dhe do të bashkohet në pajisjen e pranimit. Në rastin e segmentimit, numri i karaktereve zvogëlohet për shkak të titujve të mesazhit ku shënohet seksi i mesazhit. Prandaj, kur dërgohet një SMS i madh, ai përmban maksimum 153 karaktere latine ose 67 karaktere të pazakonta.

Skema e Kodimit të të Dhënave

MegjithatĂ«, pĂ«r tĂ« transmetuar njĂ« mesazh, simbolet kĂ«rkojnĂ« kodim. NĂ« protokollin SMPP, kodimi Ă«shtĂ« pĂ«rgjegjĂ«si e njĂ« fushe tĂ« veçantĂ« — Skema e Kodimit tĂ« tĂ« DhĂ«nave, ose DCS. Kjo fushĂ« tregon se si duhet tĂ« njihen mesazhet. PĂ«rveç kĂ«saj, fusha DCS pĂ«rfshin:

  • grupin e simboleve qĂ« pĂ«rcakton kodimin;
  • klasa e mesazhit;
  • kĂ«rkesa pĂ«r fshirje automatike pas leximit;
  • tĂ« dhĂ«nat mbi kompresimin e mesazhit;
  • gjuha e mesazhit tĂ« transmetuar;

Alfabeti standard 7-bit (GSM 03.38). ËshtĂ« zhvilluar pĂ«r sistemin e mesazheve nĂ« GSM. Ky kodim Ă«shtĂ« i pĂ«rshtatshĂ«m pĂ«r anglishten dhe disa gjuhĂ« tĂ« tjera latine. Çdo simbol pĂ«rbĂ«het nga 7 bite dhe kodifikohet nĂ« njĂ« oktet.

UTF-16 (në GSM UCS2) Për të përfshirë simbolet që mungojnë në alfabetin 7-bit, është zhvilluar kodimi UTF-16, i cili shton simbole të tjera (përfshirë ato cirilike) duke reduktuar madhësinë e mesazhit nga 160 në 70. Ky lloj kodimi përsërit pothuajse plotësisht Unicode.

Të dhëna 8-bit që përcaktohen nga përdoruesi. Këto përfshijnë KOI8-R dhe Windows-1251. Megjithëse kjo zgjidhje duket më ekonomike në krahasim me UTF-16, ngrit një pyetje të arsyeshme për kompatibilitetin në pajisje të ndryshme. Në këtë rast, të dy pajisjet duhet të jenë të konfiguruara paraprakisht.

Lloji i mesazhit

  • Class0, ose mesazh flash, i ruajtur nĂ« memorien e telefonit sipas dĂ«shirĂ«s sĂ« pĂ«rdoruesit;
  • Class1, ose ata qĂ« ruhen nĂ« memorien e telefonit;
  • Class1, ose ata qĂ« ruhen nĂ« memorien e telefonit;
  • Class2, duhet tĂ« garantojĂ« qĂ« mesazhi do tĂ« ruhet nĂ« memorien e terminalit mobil, pĂ«rndryshe duhet tĂ« dĂ«rgojĂ« njoftime nĂ« qendrĂ«n e SMS-sĂ« pĂ«r pamundĂ«sinĂ« e ruajtjes;
  • Class3 — nĂ« kĂ«tĂ« rast telefoni duhet tĂ« dĂ«rgojĂ« njĂ« njoftim qĂ« mesazhi mund tĂ« ruhet, pavarĂ«sisht nga sasia e memories nĂ« pajisje. Ky lloj mesazhi nĂ«nkupton se mesazhi ka arritur te adresati;

Lloji i mesazhit

Mesazh i heshtur (SMS0), lloji i mesazhit SMS pa përmbajtje. Ky SMS vjen pa njoftim dhe nuk shfaqet në ekranin e pajisjes.

PDU

Çdo operacion PDU Ă«shtĂ« i çiftĂ«zuar dhe pĂ«rbĂ«het nga njĂ« kĂ«rkesĂ« dhe njĂ« pĂ«rgjigje. PĂ«r shembull: komanda qĂ« flet pĂ«r krijimin e njĂ« lidhjeje (bind_transmitter / bind_transmitter_resp), ose pĂ«r faktin se mesazhi Ă«shtĂ« dĂ«rguar (deliver_sm / deliver_sm_resp)

SMPP - protokoll peer-to-peer për mesazhe të shkurtra

Çdo paketĂ« PDU pĂ«rbĂ«het nga dy pjesĂ« — njĂ« krye (header) dhe njĂ« trup (body). Struktura e kryes tĂ« paketĂ«s Ă«shtĂ« identike pĂ«r çdo paketĂ« PDU: gjatĂ«si komande tregon gjatĂ«si tĂ« paketĂ«s, id Ă«shtĂ« emri i paketĂ«s, dhe komandĂ« statusi tregon nĂ«se mesazhi Ă«shtĂ« dĂ«rguar me sukses, ose ka ndodhur njĂ« gabim.

Parametrat shtesë TLV

TLV (Tag Length Value), ose fushat shtesë. Këta parametra përdoren për të zgjeruar funksionet e protokollit dhe nuk janë të detyrueshëm. Ky fushë tregohet në fund të fushës PDU. Si një shembull, me anë të TLV dest_addr_np_information mund të organizohet transferimi i informacionit mbi portimin e numrit.

Ton dhe Npi

TON (Tipi i Numrit) është një parametër që informon SMSC për formatin e adresimit dhe llojin e rrjetit.
NPI (Identifikimi i Planit të Numrave) është një parametër që tregon mbi planin e numrimit.

SMPP - protokoll peer-to-peer për mesazhe të shkurtra

Adresa e burimit të mesazhit, ose emri alfa

Mesazhet e dërguara në telefon janë nga dy lloje: dixhitale dhe alfanumerike. Mesazhet dixhitale mund të jenë të gjata (si numri i telefonit) ose të shkurtra. Ndonjëherë, operatorët kanë kufizime në dërgimin nga emra neutralë, si Infosms, Alert etj. Ndonjëherë, operatorët nuk lejojnë trafikun nëse emri nuk është regjistruar në rrjetin e tyre. Megjithatë, këto janë më shumë veçori të operatorit.

Fazat e dërgimit

SMPP - protokoll peer-to-peer për mesazhe të shkurtra

SMS-SUBMIT — Ă«shtĂ« dĂ«rgimi i mesazhit MO FSM (mesazh i shkurtĂ«r nga terminali mobil)
SMS-SUBMIT REPORT — konfirmimi qĂ« mesazhi Ă«shtĂ« dĂ«rguar nĂ« SMSC
SRI SM (SendRoutingInfo) — SMSC merr informacionin nga HLR nĂ« lidhje me MSC / VLR vendndodhjen e abonenetit
SRI SM RESP — pĂ«rgjigja nga HLR nĂ« lidhje me vendndodhjen e abonenetit
MT-FSM — pas merrjes sĂ« vendndodhjes, dĂ«rgohet mesazhi duke pĂ«rdorur operacionin "Forward Short Message"
MT-FSM ACK — pĂ«rgjigje nga SMSC qĂ« mesazhi Ă«shtĂ« dĂ«rguar
SMS-STATUS REPORT — SMSC dĂ«rgon statusin e dĂ«rgesĂ«s sĂ« mesazhit.

Statusi i dërgesës së mesazhit

SMS-STATUS REPORT mund të prijë disa vlera:
DELIVRD mesazhi është dërguar me sukses
REJECTD — mesazhi Ă«shtĂ« refuzuar nga SMS-qendra
EXPIRED — mesazhi Ă«shtĂ« fshirĂ« nga radhĂ«t e dĂ«rgimit pasi pĂ«rfundoi TTL (kohĂ«zgjatja e jetĂ«s sĂ« mesazhit)
NEDHËS — raste tĂ« tjera tĂ« mosdĂ«rgimit
UNKNOWN- nuk është marrë përgjigje për dërgimin.

Gabimet e transmetimit

Nganjëherë shkaku për të cilat mesazhet SMS nuk dërgohen te abonenti. Pasojat e këtyre shkakut janë shfaqja e gabimeve. Gabimet kthehen në PDUs_sms_resp. Të gjitha gabimet mund të ndahen në përkohshme (Temporary) dhe të përhershme (Permanent).

Si një shembull, përkohësor mund të konsiderohet absent_subscriber, abonenti nuk është i qasshëm ose jashtë rrjetit, ndërsa përherë është abonenti që nuk ekziston. Sipas gabimeve që ndodhin formohet politika e ripërpjesëtimit të këtyre mesazheve.

Për shembull, nëse abonenti ishte i zënë në një bisedë dhe mori gabimin MT handset is busy, mesazhi mund të dërgohet përsëri pas disa minutash, megjithatë nëse abonenti ka bllokuar shërbimin e pranimit të mesazheve, ripërsëritja e dërgimit nuk do të ketë kuptim. Listën e gabimeve mund ta gjeni në faqet e SMSC, për shembull, si kjo.

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster