SMPP – protokół krótkich wiadomości peer-to-peer

Cześć! Choć komunikatory internetowe i portale społecznościowe na co dzień wypierają tradycyjne metody komunikacji, nie umniejsza to popularności SMS-ów. Weryfikacja na popularnym serwisie, czyli powiadomienie o transakcji powtarza się, żyją i będą żyć. Czy zastanawiałeś się jak to wszystko działa? Bardzo często protokół SMPP służy do wysyłania wiadomości masowych, co zostanie omówione w części.

Habré miał już artykuły o smpp, 1,2, ale ich celem nie było opisanie samego protokołu. Oczywiście możesz od razu zacząć od źródła - specyfikacje, ale myślę, że byłoby miło, gdyby znalazło się streszczenie jego treści. Wyjaśnię to na przykładzie wersji 3.4.Cieszę się z Twojej obiektywnej krytyki.

Protokół SMPP jest protokołem przesyłania wiadomości typu peer-to-peer. Oznacza to, że każdy serwer równorzędny/koncentrujący jest równy. W najprostszym przypadku schemat wysyłania wiadomości SMS wygląda następująco:

SMPP – protokół krótkich wiadomości peer-to-peer

Jeśli jednak operator narodowy nie ma trasy, prosi o to pośrednika do jakiegoś odległego regionu – hubu SMS. Czasami, aby wysłać jednego SMS-a, trzeba zbudować łańcuch pomiędzy kilkoma krajami, a nawet kontynentami.

O protokole

SMPP to protokół warstwy aplikacji, który opiera się na wymianie jednostek PDU i jest przesyłany poprzez sesje TCP/IP lub X25 w celu wysyłania wiadomości SMS i USSD. Zwykle SMPP jest używany w trybie połączenia stałego, co oszczędza czas. SMPP wykorzystuje model komunikacji klient-serwer.

Tryb komunikacji

SMPP – protokół krótkich wiadomości peer-to-peer

Wymiana wiadomości pomiędzy nadawcą a centrum SMS poprzez SMPP może odbywać się w następujących trybach:

Nadajnik (nadajnik) - transmisja komunikatu z kolei w jednym kierunku
Odbiorca (odbiorca) - odbiera tylko wiadomość z centrum SMS.
Transceiver (transceiver) - Wymiana wiadomości pomiędzy centrum SMS a użytkownikiem

Struktura

SMPP – protokół krótkich wiadomości peer-to-peer

Długość wiadomości

Jedna wiadomość SMS może zawierać 70 znaków w przypadku pisania cyrylicą i nie więcej niż 157 znaków łacińskich + 3 UDH. Jeśli wyślesz SMS o dużej liczbie znaków, zostanie on podzielony na kilka segmentów i połączony w urządzeniu odbierającym. W przypadku segmentacji liczbę znaków zmniejsza się o nagłówki wiadomości, które wskazują część wiadomości. Dlatego wysyłając dużą wiadomość SMS, zawiera ona maksymalnie 153 znaki łacińskie lub 67 znaków nietypowych.

Schemat kodowania danych

Jednak znaki muszą zostać zakodowane, aby przekazać wiadomość. W protokole SMPP za kodowanie odpowiada specjalne pole - Data Coding Scheme, w skrócie DCS. Jest to pole określające w jaki sposób wiadomości mają być rozpoznawane. Dodatkowo w polu DCS znajdują się:

  • zestaw znaków definiujący kodowanie;
  • klasa wiadomości;
  • prośba o automatyczne usunięcie po przeczytaniu;
  • wskazanie kompresji wiadomości;
  • język wiadomości nadawanych;

Standardowy alfabet 7-bitowy (GSM 03.38). Został opracowany dla systemu przesyłania wiadomości w sieci GSM. To kodowanie jest odpowiednie dla języka angielskiego i wielu języków łacińskich. Każdy znak składa się z 7 bitów i jest zakodowany w oktecie.

UTF-16 (w GSM UCS2) Aby uwzględnić brakujące znaki w 7-bitowym alfabecie, opracowano kodowanie UTF-16, które dodaje dodatkowe znaki (w tym cyrylicę) poprzez zmniejszenie rozmiaru wiadomości ze 160 do 70, ten typ kodowania prawie całkowicie powtarza Unicode.

8-bitowe dane zdefiniowane przez użytkownika. Należą do nich KOI8-R i Windows-1251. Chociaż to rozwiązanie wydaje się bardziej ekonomiczne w porównaniu do tego samego UTF-16. Istnieje uzasadniona kwestia kompatybilności na różnych urządzeniach. Ponieważ w tym przypadku oba urządzenia muszą być skonfigurowane z wyprzedzeniem.

Klasa wiadomości

  • Class0, czyli flash, wiadomość zapisana w pamięci telefonu na żądanie użytkownika;
  • Class1, czyli te zapisane w pamięci telefonu;
  • Class1, czyli te zapisane w pamięci telefonu;
  • Klasa 2, musi zadbać o to, aby wiadomość została zapisana w pamięci terminala mobilnego, w przeciwnym razie musi powiadomić centrum SMS o niemożności zapisania;
  • Klasa 3 – w tym przypadku telefon powinien wysłać powiadomienie, że wiadomość może zostać zapisana, niezależnie od ilości pamięci w urządzeniu. Ten typ wiadomości oznacza, że ​​wiadomość dotarła do miejsca przeznaczenia;

Typ wiadomości

Cicha wiadomość (SMS0) Typ wiadomości SMS bez treści. Taka wiadomość SMS przychodzi bez powiadomienia i nie jest wyświetlana na ekranie urządzenia.

PDU

Każda operacja pdu jest sparowana i składa się z żądania i odpowiedzi. Na przykład: polecenie informujące o nawiązaniu połączenia (bind_transmitter / bind_transmitter_resp) lub o wysłaniu wiadomości (deliver_sm / dostarczanie_sm_resp)

SMPP – protokół krótkich wiadomości peer-to-peer

Każdy pakiet pdu składa się z dwóch części - nagłówka (nagłówka) i treści (body). Struktura nagłówka jest taka sama dla każdego pakietu pdu: długość polecenia to długość pakietu, id to nazwa pakietu, a polecenie statusu wskazuje, czy wiadomość została wysłana pomyślnie, czy nie.

Dodatkowe parametry TLV

TLV (wartość długości tagu) lub dodatkowe pola. Parametry te służą do rozszerzenia funkcjonalności protokołu i są opcjonalne. Pole to znajduje się na końcu pola pdu. Przykładowo, korzystając z dest_addr_np_information TLV, możesz zorganizować przesyłanie informacji o przeniesieniu numeru.

Tona i Npi

Parametr TON (Type of Number) informuje SMSC o formacie adresowania i typie sieci.
Parametr NPI (Numbering Plan Identification) wskazujący plan numeracji.

SMPP – protokół krótkich wiadomości peer-to-peer

Adres źródła wiadomości lub nazwa alfa

Wiadomości wysyłane na telefon występują w dwóch odmianach: numerycznej i alfabetycznej. Numery mogą być długie (podobnie jak numer telefonu) lub krótkie. Czasami operatorzy mają ograniczenia dotyczące wysyłania z nazw neutralnych, takich jak Infosms, Alert itp. Czasami operatorzy nie zezwalają na ruch, jeśli nazwa nie jest zarejestrowana w ich sieci. Jest to jednak raczej cecha operatora.

Etapy składania

SMPP – protokół krótkich wiadomości peer-to-peer

WYŚLIJ SMS wysyła wiadomość MO FSM (krótka wiadomość z terminala mobilnego)
WYŚLIJ RAPORT SMS-em — potwierdzenie wysłania wiadomości przez SMSC
SRI SM (SendRoutingInfo) – SMSC odbiera informację od HLR dotyczącą lokalizacji abonenta MSC/VLR
SRI SM ODPOWIEDŹ — odpowiedź HLR dotycząca stanowiska abonenta
MT-FSM - po odebraniu lokalizacji wysyłana jest wiadomość za pomocą operacji „Przekaż krótką wiadomość”.
MT-FSM-ACK — odpowiedź z SMSC, że wiadomość została wysłana
RAPORT STANU SMS — SMSC wysyła status dostarczenia wiadomości.

Stan dostarczenia wiadomości

RAPORT STANU SMS może przyjmować kilka wartości:
DOSTAWA wiadomość pomyślnie dostarczona
ODRZUCONY — wiadomość odrzucona przez centrum SMS
EXPIRED - wiadomość jest usuwana z kolejki wysyłkowej po upływie TTL (czasu życia wiadomości)
NIEDOWIERZ - inne przypadki braku dostawy
NIEZNANE- Nie otrzymano odpowiedzi.

Błędy transmisji

Czasami przyczyny, dla których wiadomości SMS nie są dostarczane do abonenta. Konsekwencją tych przyczyn jest występowanie błędów. Błędy są zwracane w PDUs_sms_resp. Wszystkie błędy można podzielić na tymczasowe (tymczasowe) i trwałe (stałe).

Przykładowo nieobecny_subskrybent jest tymczasowy, abonent jest niedostępny lub nie jest online i stały - abonent nie istnieje. W zależności od występujących błędów tworzona jest polityka ponownego wysyłania tych wiadomości.

Przykładowo, jeśli abonent był zajęty rozmową i otrzymał komunikat MT, że słuchawka jest zajęta, wiadomość może zostać wysłana ponownie po kilku minutach, jednak jeżeli abonent zablokował usługę odbierania wiadomości, ponowne wysłanie wiadomości nie będzie miało sensu. Listę błędów znajdziesz na stronach SMSC np to.

Źródło: www.habr.com

Dodaj komentarz