SMPP - Peer-to-Peer Qısa Mesaj Protokolu

Salam! Ani messencerlər və sosial şəbəkələr ənənəvi ünsiyyət üsullarını hər gün əvəz etsə də, bu, SMS-in populyarlığına heç bir təsir göstərmir. Populyar bir saytda doğrulama və ya bir əməliyyat bildirişi yaşadıqları və yaşayacaqlarını təkrarlayır. Bütün bunların necə işlədiyini düşünmüsünüzmü? Çox vaxt SMPP protokolu toplu mesajlar göndərmək üçün istifadə olunur, bu da kəsilmə altında müzakirə olunacaq.

Habré'nin artıq smpp haqqında məqalələri var idi, 1,2, lakin onların məqsədi protokolun özünü təsvir etmək deyildi. Əlbəttə ki, dərhal mənbədən başlaya bilərsiniz - spesifikasiyalar, amma məncə onun məzmununun xülasəsi olsa yaxşı olardı. Nümunə olaraq v3.4-dən istifadə edərək izah edəcəyəm.Obyektiv tənqidinizə görə şadam.

SMPP protokolu peer-to-peer mesajlaşma protokoludur. Bu o deməkdir ki, hər peer/hub server bərabərdir. Ən sadə halda, SMS mesajlaşma sxemi belə görünür:

SMPP - Peer-to-Peer Qısa Mesaj Protokolu

Bununla belə, milli operatorun marşrutu yoxdursa, bunun üçün hansısa ucqar rayona - SMS mərkəzinə vasitəçidən xahiş edir. Bəzən bir SMS göndərmək üçün bir neçə ölkə, hətta qitələr arasında zəncir qurmaq lazımdır.

Protokol haqqında

SMPP, PDU-ların mübadiləsinə əsaslanan və sms və ussd mesajlarının göndərilməsi üçün TCP/IP və ya X25 seansları üzərindən ötürülən tətbiq səviyyəsi protokoludur. Adətən, SMPP davamlı əlaqə rejimində istifadə olunur ki, bu da vaxta qənaət edir. SMPP müştəri-server rabitə modelindən istifadə edir.

Ünsiyyət rejimi

SMPP - Peer-to-Peer Qısa Mesaj Protokolu

Göndərən ilə SMS mərkəzi arasında SMPP vasitəsilə mesaj mübadiləsi aşağıdakı rejimlərdə həyata keçirilə bilər:

Transmitter (ötürücü) - mesajın bir istiqamətdə, növbə ilə ötürülməsi
Qəbul edən (qəbuledici) - yalnız SMS mərkəzindən mesaj qəbul edir.
Transreceiver (transceiver) - SMS mərkəzi ilə istifadəçi arasında mesaj mübadiləsi

Struktur

SMPP - Peer-to-Peer Qısa Mesaj Protokolu

Mesaj uzunluğu

Kiril əlifbası ilə yazarkən bir SMS mesajı 70 simvoldan ibarət ola bilər və 157 Latın hərfindən çox olmaya bilər + 3 UDH Çox sayda simvolla SMS göndərsəniz, o, bir neçə seqmentə bölünəcək və qəbuledici cihazda birləşdiriləcəkdir. Seqmentləşdirmə vəziyyətində simvolların sayı mesajın bir hissəsini göstərən mesaj başlıqları ilə azaldılır. Buna görə də, böyük SMS mesajı göndərərkən, o, maksimum 153 Latın simvolu və ya 67 qeyri-adi simvol ehtiva edir.

Məlumatların kodlaşdırılması sxemi

Bununla belə, mesajı ötürmək üçün simvollar kodlaşdırılmalıdır. SMPP protokolunda kodlaşdırma üçün xüsusi bir sahə cavabdehdir - Data Coding Scheme və ya DCS. Bu, mesajların necə tanınması lazım olduğunu müəyyən edən sahədir. Bundan əlavə, DCS sahəsinə aşağıdakılar daxildir:

  • kodlaşdırmanı müəyyən edən simvol dəsti;
  • mesaj sinfi;
  • oxuduqdan sonra avtomatik silinmə tələbi;
  • mesajın sıxılmasının göstəricisi;
  • yayım mesaj dili;

Standart 7 bitlik əlifba (GSM 03.38). O, GSM-də mesajlaşma sistemi üçün hazırlanmışdır. Bu kodlaşdırma ingilis və bir sıra latın dilləri üçün uyğundur. Hər bir simvol 7 bitdən ibarətdir və oktet şəklində kodlanır.

UTF-16 (GSM UCS2-də) 7 bitlik əlifbaya çatışmayan simvolları daxil etmək üçün mesaj ölçüsünü 16-dan 160-ə endirməklə əlavə simvollar əlavə edən UTF-70 kodlaşdırması hazırlanmışdır, bu kodlaşdırma növü demək olar ki, tamamilə Unicode təkrarlayır.

8 bitlik istifadəçi tərəfindən müəyyən edilmiş məlumatlar. Bunlara KOI8-R və Windows-1251 daxildir. Baxmayaraq ki, bu həll eyni UTF-16 ilə müqayisədə daha qənaətcil görünür. Müxtəlif cihazlarda uyğunluq haqqında ağlabatan bir sual var. Çünki bu halda hər iki cihaz əvvəlcədən konfiqurasiya edilməlidir.

Mesaj sinfi

  • Class0 və ya flash, istifadəçinin istəyi ilə telefonun yaddaşında saxlanılan mesaj;
  • Class1 və ya telefonun yaddaşında saxlanılanlar;
  • Class1 və ya telefonun yaddaşında saxlanılanlar;
  • Class2, mesajın mobil terminalın yaddaşında saxlanmasını təmin etməli, əks halda yadda saxlamağın mümkünsüzlüyü barədə SMS mərkəzinə bildirişlər verməlidir;
  • Class3 - bu halda telefon cihazda yaddaşın həcmindən asılı olmayaraq mesajın yadda saxlanıla biləcəyi barədə bildiriş göndərməlidir. Bu tip mesaj mesajın təyinat yerinə çatdığını nəzərdə tutur;

Mesaj növü

Səssiz mesaj (SMS0) məzmunsuz SMS mesaj növü. Belə SMS bildiriş olmadan gəlir və cihazın ekranında göstərilmir.

PDU-lar

Hər bir pdu əməliyyatı qoşalaşır və sorğu və cavabdan ibarətdir. Məsələn: əlaqənin qurulduğunu bildirən əmr (bind_transmitter / bind_transmitter_resp) və ya mesaj göndərildi (deliver_sm / delivery_sm_resp)

SMPP - Peer-to-Peer Qısa Mesaj Protokolu

Hər bir pdu paketi iki hissədən ibarətdir - başlıq (başlıq) və gövdə (gövdə). Başlıq strukturu istənilən pdu paketi üçün eynidir: komanda uzunluğu paketin uzunluğu, id paketin adı, status əmri isə mesajın uğurla və ya uğursuz göndərildiyini göstərir.

Əlavə TLV parametrləri

TLV (Etiket Uzunluğu Dəyəri) və ya əlavə sahələr. Bu cür parametrlər protokolun funksionallığını genişləndirmək üçün istifadə olunur və isteğe bağlıdır. Bu sahə pdu sahəsinin sonunda göstərilmişdir. Nümunə olaraq, dest_addr_np_information TLV-dən istifadə edərək nömrənin daşınması haqqında məlumatın ötürülməsini təşkil edə bilərsiniz.

Ton və Npi

TON (Nömrə Növü) parametri SMSC-yə ünvan formatı və şəbəkə növü haqqında məlumat verir.
NPI (Nömrələmə Planının İdentifikasiyası) nömrələmə planını göstərən parametr.

SMPP - Peer-to-Peer Qısa Mesaj Protokolu

Mesaj mənbəyi ünvanı və ya alfa adı

Telefona göndərilən mesajlar iki növdə olur: ədədi və əlifba. Nömrələr uzun (telefon nömrəsinə bənzər) və ya qısa ola bilər. Bəzən operatorlar neytral adlardan göndərməyə məhdudiyyətlər qoyurlar, məsələn, Infosms, Alert və s. Bəzən operatorlar ad onların şəbəkəsində qeydiyyatdan keçmədiyi halda trafikə icazə vermirlər. Ancaq bu, daha çox operatorun xüsusiyyətidir.

Təqdimat mərhələləri

SMPP - Peer-to-Peer Qısa Mesaj Protokolu

SMS-TƏQDİM MO FSM mesajı göndərir (mobil terminaldan qısa mesaj)
SMS-TƏQDİM HESABATI — mesajın SMSC tərəfindən göndərilməsinin təsdiqi
SRI SM (SendRoutingInfo) - SMSC abunəçinin MSC/VLR yeri ilə bağlı HLR-dən məlumat alır.
SRI SM RESP — abunəçi mövqeyi ətlə bağlı HLR-dən cavab
MT-FSM - yeri aldıqdan sonra "Qısa mesajı yönləndirmək" əməliyyatından istifadə edərək mesaj göndərilir
MT-FSM-ACK — SMSC-dən mesajın göndərilməsinə dair cavab
SMS STATUS HESABATI — SMSC mesajın çatdırılma statusunu göndərir.

Mesajın çatdırılma vəziyyəti

SMS STATUS HESABATI bir neçə dəyər qəbul edə bilər:
ÇATDIRIN mesaj uğurla çatdırıldı
RƏDD ETMƏKD — SMS mərkəzi tərəfindən rədd edilən mesaj
ƏMƏLİYYAT - TTL bitdikdən sonra mesaj göndərmə növbəsindən silinir (mesajın ömrü)
GERİ VERİN - digər çatdırılma halları
NAMƏLUM- Cavab alınmadı.

Transmissiya xətaları

Bəzən SMS mesajlarının abunəçiyə çatdırılmamasının səbəbləri. Bu səbəblərin nəticəsi səhvlərin baş verməsidir. Səhvlər PDUs_sms_resp-də qaytarılır. Bütün səhvlər müvəqqəti (Müvəqqəti) və daimi (Daimi) bölünə bilər.

Məsələn, absent_subscriber müvəqqətidir, abunəçi mövcud deyil və ya onlayn deyil, daimi - abunəçi yoxdur. Baş verən səhvlərdən asılı olaraq, bu mesajların yenidən göndərilməsi üçün siyasət formalaşır.

Məsələn, əgər abunəçi söhbətlə məşğul olubsa və MT telefonu məşğuldur xətası alıbsa, mesaj bir neçə dəqiqədən sonra yenidən göndərilə bilər, lakin abunəçi mesajın qəbulu xidmətini bloklayıbsa, təkrar göndərməyin mənası olmayacaq. SMSC səhifələrində səhvlərin siyahısını tapa bilərsiniz, məsələn, kimi bu.

Mənbə: www.habr.com

Добавить комментарий