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ërisin ata të gjallë dhe do të vazhdojnë të jetojnë. A keni menduar ndonjëherë se si funksionon e gjithë kjo? Shpesh, për dërgimin e mesazheve masive përdoret protokolli SMPP, për të cilin do të flasim më poshtë.
ĂshtĂ« shkruar tashmĂ« nĂ« HabrĂ« pĂ«r SMPP, ,, por qĂ«llimi i tyre nuk ishte pĂ«rshkrimi i vetĂ« protokollit. Sigurisht, mund tĂ« filloni menjĂ«herĂ« nga burimi origjinal â , por mendoj se do tĂ« ishte mirĂ« tĂ« ekzistonte edhe njĂ« pĂ«rmbledhje e shkurtĂ«r. Do ta shpjegoj me shembullin e v3.4. Jam i lumtur pĂ«r kritikat tuaja objektive.
Protokolli SMPP është një protokoll për mesazhe në varg. Kjo do të thotë që çdo server peer/hub është i barabartë. Në rastin më të thjeshtë, skema e shkëmbimit të mesazheve SMS duket kështu:

MegjithatĂ«, nĂ«se operatori kombĂ«tar nuk ka rrugĂ« pĂ«r nĂ« ndonjĂ« rajon tĂ« largĂ«t, ai e kĂ«rkon kĂ«tĂ« nga njĂ« ndĂ«rmjetĂ«s â SMS hub. NdonjĂ«herĂ«, pĂ«r tĂ« dĂ«rguar njĂ« SMS, duhet tĂ« ndĂ«rtohet njĂ« zinxhir mes disa vendeve, ose madje kontinenteve.
Për protokollin
SMPP është një protokoll i nivelit aplikativ, i cili bazohet në shkëmbimin e PDU dhe transmetohet mbi TCP/IP, ose seancave X.25 për dërgimin e mesazheve SMS dhe USSD. Zakonisht SMPP përdoret në modin e lidhjes së vazhdueshme, kjo ndihmon për të kursyer kohë. SMPP përdor modelin e komunikimit klient-server.
Regjimi i komunikimit

Shkëmbimi i mesazheve midis dërguesit dhe qendrës SMS përmes SMPP mund të kryhet në këto metoda:
Transmitter (dĂ«rgues) â dĂ«rgimi i mesazhit nĂ« njĂ« drejtim, njĂ« nga njĂ«
Receiver (pranues) â vetĂ«m pranimi i mesazheve nga qendra SMS.
Transreceiver (pranues-dĂ«rgues) â ShkĂ«mbimi i mesazheve midis qendrĂ«s SMS dhe pĂ«rdoruesit
Struktura

Gjatësia e mesazhit
Një SMS e vetme mund të përmbajë 70 karaktere kur shkruhet në cirillicë dhe jo më shumë se 157 karaktere latine + 3 UDH. Nëse dërgoni një SMS me shumë karaktere, ajo do të ndahet në disa segmente dhe do të bashkohet në pajisjen marrëse. Në rast segmentimi, numri i karaktereve zvogëlohet për shkak të titujve të mesazhit në të cilin tregohet pjesa e mesazhit. Prandaj, kur dërgoni një SMS të madhe, ajo përmban maksimum 153 karaktere latine ose 67 karaktere jo standarde.
Data Coding Scheme
MegjithatĂ«, pĂ«r tĂ« dĂ«rguar njĂ« mesazh, simbolet kĂ«rkojnĂ« kodim. NĂ« protokollin SMPP, kodimin e ndihmon njĂ« fushĂ« speciale â Schemi i Kodimit tĂ« tĂ« DhĂ«nave, ose DCS. Kjo Ă«shtĂ« fusha qĂ« tregon si duhet tĂ« dĂ«gjohen mesazhet. PĂ«rveç kĂ«saj, fusha DCS pĂ«rfshin:
- grupin e simboleve që përcakton kodimin;
- klasën e mesazhit;
- kërkesën për fshirje automatike pas leximit;
- të dhëna për kompresimin e mesazhit;
- gjuha e mesazhit për shpërndarje;
Alfabeti standard 7-bitĂ«sh (GSM 03.38). Ai Ă«shtĂ« zhvilluar pĂ«r sistemin e mesazheve GSM. Ky kodim Ă«shtĂ« i pĂ«rshtatshĂ«m pĂ«r anglishten dhe disa gjuhĂ« tĂ« tjera latine. Ădo simbol pĂ«rbĂ«het nga 7 bit dhe kodifikohet nĂ« njĂ« oktet.
UTF-16 (në GSM UCS2) Për të përfshirë simbolet e munguar në alfabetin 7-bit, është zhvilluar kodimi UTF-16, i cili shton simbole të tjera (përfshirë ato cirilike) duke zvogëluar numrin e karaktereve në mesazh nga 160 në 70; ky tip kodimi pothuajse plotësisht përsërit Unicode.
Të dhëna 8-bitëshe të përcaktuara nga përdoruesi. Këtu përfshihen KOI8-R dhe Windows-1251. Edhe pse kjo zgjidhje duket më ekonomike krahasuar me UTF-16, lind një çështje e arsyeshme për kompatibilitetin në pajisje të ndryshme. Në këtë rast, të dy pajisjet duhet të jenë të konfiguruara paraprakisht.
Klasën e mesazhit
- Class0, ose mesazhi flash, i cili ruhet në memorien e telefonit sipas dëshirës së përdoruesit;
- Class1, ose ata që ruhet në memorien e telefonit;
- Class1, ose ata që ruhet në memorien e telefonit;
- Class2, duhet tĂ« garantojĂ« qĂ« mesazhi do tĂ« ruhet nĂ« memorien e terminalit celular, pĂ«rndryshe duhet tâi japĂ« njoftim qendrĂ«s sĂ« SMS 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 tip mesazhi nĂ«nkupton se mesazhi ka arritur te adresati;
Tipi i mesazhit
Mesazhi i qetë (SMS0) Tipi i mesazhit SMS pa përmbajtje. Ky SMS vjen pa njoftim dhe nuk shfaqet në ekranin e pajisjes.
PDU
Ădo operacion pdu Ă«shtĂ« çift dhe pĂ«rbĂ«het nga njĂ« kĂ«rkesĂ« dhe njĂ« pĂ«rgjigje. PĂ«r shembull: komandĂ« qĂ« tregon vendosjen e lidhjes (bind_transmitter / bind_transmitter_resp), ose qĂ« mesazhi Ă«shtĂ« dĂ«rguar (deliver_sm / deliver_sm_resp)

Ădo paketĂ« pdu pĂ«rbĂ«het nga dy pjesĂ« â njĂ« kryefjalĂ« (header) dhe njĂ« trup (body). Struktura e kryefjalĂ«s Ă«shtĂ« e njĂ«jtĂ« pĂ«r çdo paketĂ« pdu: gjatĂ«sia e komandĂ«s Ă«shtĂ« gjatĂ«sia e paketĂ«s, id Ă«shtĂ« emri i paketĂ«s, dhe komanda status tregon nĂ«se mesazhi Ă«shtĂ« dĂ«rguar me sukses, apo me gabim.
Parametrat shtesë TLV
TLV (Tag Length Value), ose fushat shtesë. Këto parametra përdoren për të zgjeruar funksionet e protokollit dhe nuk janë të detyrueshme. Ky fushë tregtohet në fund të fushës pdu. Si një shembull, me anë të TLV dest_addr_np_information mund të organizohet transmetimi i informacionit rreth portabilitetit të numrit.
Ton dhe Npi
TON (Lloji i Numrit) është një parametr që i tregon SMSC formatin e adresimit dhe tipin e rrjetit.
NPI (Identifikimi i Planit të Numrave) është një parametr që tregon planin e numërimit.

Adresa e burimit të mesazhit, ose emri alfa
Mesazhet e dërguara në telefon janë dy lloje: numerike dhe alfabetike. Të parat mund të jenë të gjatë (si numri i telefonit) dhe të shkurtra. Ndonjëherë operatorët kanë kufizime për 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ë kryesisht veçori të operatorit.
Fazat e dërgimit
![]()
SMS-SUBMIT â dĂ«rgimi i mesazhit MO FSM (mesazh i shkurtĂ«r nga terminali mobile)
SMS-SUBMIT REPORT â konfirmimi qĂ« mesazhi Ă«shtĂ« dĂ«rguar SMSC
SRI SM (SendRoutingInfo) â SMSC merr informacion nga HLR nĂ« lidhje me MSC / VLR pĂ«r vendndodhjen e abonentit
SRI SM RESP â pĂ«rgjigjja nga HLR nĂ« lidhje me vendndodhjen e abonentit
MT-FSM â pas marrjes sĂ« vendndodhjes dĂ«rgohet mesazhi duke pĂ«rdorur operacionin "Forward Short Message"
MT-FSM ACK â pĂ«rgjigjja e SMSC qĂ« mesazhi Ă«shtĂ« dĂ«rguar
SMS-STATUS REPORT â SMSC dĂ«rgon statusin e dorĂ«zimit tĂ« mesazhit.
Statusi i dorëzimit të mesazhit
SMS-STATUS REPORT mund të marrë disa vlera:
DELIVRD mesazhi është dorëzuar me sukses
REJECTD â mesazhi Ă«shtĂ« refuzuar nga qendra SMS
EXPIRED â mesazhi Ă«shtĂ« fshirĂ« nga radhĂ«t e dĂ«rgimit pas skadimit tĂ« TTL (koha e jetĂ«s sĂ« mesazhit)
UNDELIV â raste tĂ« tjera tĂ« mosdĂ«rgimit
UNKNOWN- nuk ka marrë përgjigje për dërgimin.
Gabimet e transmetimit
Ndonjëherë, arsyet pse mesazhet sms nuk dërgohen te abonenti. Pasojat e këtyre arsyeve janë shfaqja e gabimeve. Gabimet kthehen në PDUs_sms_resp. Të gjitha gabimet mund të ndahen në të përkohshme (Temporary) dhe të përhershme (Permanent).
Si shembull, nĂ« mesazhet temporale mund tĂ« pĂ«rfshihen abone absent_subscriber qĂ« nuk Ă«shtĂ« i disponueshĂ«m ose nuk Ă«shtĂ« nĂ« rrjet, ndĂ«rsa ato permanente â abone qĂ« nuk ekziston. VarĂ«sisht nga gabimet qĂ« ndodhin, formohet politika e rizgjedhjes sĂ« kĂ«tyre mesazheve.
Për shembull, nëse abone ishte e zënë duke biseduar dhe mori gabimin MT handset is busy, mesazhi mund të dërgohet sërish pas disa minutash, megjithatë, nëse shërbimi për pranimin e mesazheve është bllokuar, dërgimi sërish nuk do të ketë kuptim. Listën e gabimeve mund ta gjeni në faqet e SMSC, për shembull, si .
Burimi: habr.com
