Format raportu dostarczenia SMPP

Raporty dostarczenia SMPP są wysyłane przez serwer SMPP do klienta SMPP po pomyślnym dostarczeniu wiadomości tekstowej do telefonu. Oryginalna SMS jest przesyłana przez klienta SMPP przy użyciu żądania smpp submit_sm. Gdy submit_sm zostanie zaakceptowany przez serwer SMPP, zwraca on odpowiedź submit_sm_resp z identyfikatorem referencyjnym SMS. Raport dostarczenia przychodzi później. Zawiera czas dostarczenia oraz identyfikator referencyjny SMS, który identyfikuje wiadomość. Poniższy dokument wyjaśnia zawartość PDU raportu dostarczenia SMPP i przedstawia przykład raportu dostarczenia.

Jaki jest format raportu dostarczenia SMPP

Raport dostarczenia SMPP jest odbierany jako standardowa wiadomość tekstowa. Tekst wiadomości ma specjalny format, który zawiera różne pola dotyczące oryginalnie wysłanej SMS. Te pola mogą być używane do określenia stanu dostarczenia SMS.

Przykład raportu dostarczenia

Odebrano raport dostarczenia. +44251234567->+0000000 'Dostarczono; Do: +44251234567; O: 2022-10-03 12:07:00; 
Ref: 636445148; id:636445148 sub:000 dlvrd:001 data wysłania:2210031207 data wykonania:2210031207 
stat:DELIVRD err: tekst:'

Pomyślne dostarczenie zgłoszone do admin@localhost. ID zadania: cdfd66e1-880e-4ead-a559-7ca46d9ec669. 
Dostarczono; Do: +44251234567; O: 2022-10-03 12:07:00; Ref: 636445148; id:636445148 sub:000 dlvrd:001 
data wysłania:2210031207 data wykonania:2210031207 stat:DELIVRD err: tekst:

Jak odebrać raport dostarczenia SMPP

Aby odebrać raport dostarczenia SMPP

  1. Połącz klienta SMPP
  2. Zbinduj jako transceiver
  3. Wyślij SMS przy użyciu PDU submit_sm
  4. Zapisz ID SMS z odpowiedzi submit_sm_resp
  5. Poczekaj, aż SMS dotrze do telefonu
  6. Odbierz PDU raportu dostarczenia SMS
  7. Dopasuj ID SMS do wysłanej wiadomości
  8. Zapisz znacznik czasu dostarczenia SMS

Parametry raportu dostarczenia SMPP

SMPP obsługuje potwierdzenia dostarczenia / raporty (DLR) dla wiadomości SMS, aby Twoja aplikacja mogła określić wynik dostarczenia.

Zwrot potwierdzenia dostarczenia / raportu (DLR) zależy od wartości ustawionej w polu registered_delivery wiadomości oryginalnie wysłanej z ESME do MC w operacji submit_sm. Może to być skonfigurowane dla scenariuszy braku dostarczenia i tylko dostarczenia, co może skutkować sytuacjami, w których potwierdzenie nie zostanie zwrócone. Potwierdzenia dostarczenia wiadomości są zwracane w operacjach deliver_sm i data_sm.

Następujące pola są istotne w operacjach deliver_sm i data_sm, gdy są używane do przesyłania potwierdzeń dostarczenia.

  • adres źródłowy (tj. source_addr_ton, source_addr_npi, source_addr) - Adres źródłowy zostanie pobrany z adresu docelowego oryginalnej wiadomości krótkiej, która wygenerowała potwierdzenie dostarczenia. Potwierdzenie wygląda, jakby pochodziło od odbiorcy oryginalnej zarejestrowanej wiadomości.
  • adres docelowy (tj. dest_addr_ton, dest_addr_npi, destination_addr) - Adres docelowy zostanie pobrany z adresu źródłowego oryginalnej wiadomości krótkiej, która wygenerowała potwierdzenie dostarczenia. Potwierdzenie jest adresowane do SME, które oryginalnie wysłało zarejestrowaną wiadomość.
  • esm_class - Bit 2 esm_class jest ustawiony na 1, aby wskazać, że wiadomość jest potwierdzeniem dostarczenia MC. Jeśli bit 5 jest ustawiony, wiadomość jest Powiadomieniem Pośrednim.
  • TLV message_state - Wskazuje końcowy stan oryginalnej wiadomości. Zobacz Stany wiadomości poniżej.
  • TLV network_error_code - Zobacz Kody błędów poniżej.
  • TLV receipted_message_id - ID wiadomości, które zostało zwrócone do ESME przez MC w PDU submit_sm_resp.

Potwierdzenie dostarczenia MC

Ten typ wiadomości jest używany do przenoszenia potwierdzenia dostarczenia MC. MC, po wykryciu końcowego stanu zarejestrowanej wiadomości, zwykle generuje nową wiadomość potwierdzenia adresowaną do nadawcy pierwszej wiadomości. Potwierdzenie dostarczenia MC jest następnie dostarczane do ESME w operacji deliver_sm lub data_sm.

ESME-do-MC: Ustaw bity 0 i 1 w polu registered_delivery operacji submit_sm, aby zażądać potwierdzenia dostarczenia MC.

Bit 1Bit 0Znaczenie
00brak potwierdzenia
01potwierdzenie żądane, gdy końcowy wynik to sukces lub niepowodzenie dostarczenia
10potwierdzenie żądane, gdy końcowy wynik to niepowodzenie dostarczenia
11potwierdzenie żądane, gdy końcowy wynik to sukces dostarczenia (tylko SMPP v5)

MC-do-ESME: Bit 2 w polu esm_class deliver_sm wskazuje, że potwierdzenie jest potwierdzeniem dostarczenia MC.

Powiadomienie Pośrednie

Powiadomienie pośrednie to specjalna forma wiadomości, którą MC może wysłać do ESME w przypadku dostarczenia wiadomości do odbiorcy mobilnego. Dostarcza ono pośredni status próby dostarczenia wiadomości.

Typowe zastosowania to raportowanie wyników prób dostarczenia wykonanych podczas okresu ponawiania wiadomości w MC. Może to być użyte do śledzenia różnych powodów, dla których wiadomość nie została dostarczona do celu, i wykorzystania tego do profilowania dostępności abonenta.

Obsługa funkcjonalności Powiadomień Pośrednich jest specyficzna dla implementacji MC i Dostawcy Usług MC i wykracza poza zakres tej specyfikacji.

ESME-do-MC: Ustaw bit 4 w polu registered_delivery PDU submit_sm, aby zażądać Powiadomienia Pośredniego.

MC-do-ESME: Bit 5 w polu esm_class deliver_sm wskazuje, że potwierdzenie jest Powiadomieniem Pośrednim.

Potwierdzenie odbioru w polu short_message

Wiele interfejsów API sprzed wersji 3.4 oraz centrów wiadomości obsługujących wersję 3.3 prawdopodobnie posiada sposób przekazywania informacji o potwierdzeniu odbioru w polu short_message. Dotyczy to zarówno potwierdzeń dostarczenia MC, jak i powiadomień pośrednich. Szczegóły formatu tych informacji są zależne od bramki SMS oraz platformy SMSC i wykraczają poza zakres specyfikacji. Jednak poniżej przedstawiono typowe podejście:

id:123A456B sub:1 dlvrd:1 submit date:1702281424 done date:1702281424 stat:DELIVRD err:0 text:


Pola są określone następująco:

Pole Rozmiar (oktety) Opis
id Zmienny ID wiadomości przypisane przez SMSC podczas pierwotnego wysłania.
sub 3 Liczba pierwotnie wysłanych wiadomości krótkich. Wartość może być uzupełniona zerami wiodącymi.
dlvrd 3 Liczba dostarczonych wiadomości krótkich. Wartość może być uzupełniona zerami wiodącymi.
submit date 10

Czas i data wysłania wiadomości krótkiej. W przypadku wiadomości, która została zastąpiona, jest to data zastąpienia oryginalnej wiadomości. Format jest następujący:

RRMMDDggmm gdzie:
RR ostatnie dwie cyfry roku (00-99) MM = miesiąc (01-12)
DD dzień (01-31)
gg godzina (00-23)
mm minuta (00-59)

done date 10 Czas i data, w której wiadomość krótka osiągnęła swój końcowy stan. Format jest taki sam jak dla submit date.
stat 7 Końcowy status wiadomości. Patrz Stany wiadomości poniżej. Tekst stanu może być skrócony.
err 3 Kod błędu sieci lub SMSC dla wiadomości. Patrz Kody błędów poniżej.
text 20 Nieużywane pole, wynik będzie pusty.

Ulepszenia Ozeki SMPP

Po zaimplementowaniu bardzo dużej liczby połączeń SMPP, zidentyfikowaliśmy następujące problemy w różnych implementacjach:

Odkrycie 1:

Wartość pola ID w raporcie dostarczenia (które w Ozeki nazywamy Submit Reference) często różni się od ID otrzymanego od dostawcy usług SMS. Najczęstsza różnica polega na tym, że oryginalne ID jest zwracane jako standardowa liczba całkowita, a ID w raporcie dostarczenia jest zwracane jako liczba szesnastkowa. Może to również działać w odwrotną stronę. Dobrą wiadomością jest to, że w tej sytuacji, po konwersji, obie liczby pasują do siebie, więc raporty dostarczenia mogą być dopasowane. Implementacje SMS Ozeki wykonują różne sprawdzenia i potrafią prawidłowo obsłużyć opisaną sytuację.

Odkrycie 2:

Wartości pól dat często występują w niestandardowych formatach. Ozeki obecnie analizuje pola dat przy użyciu następujących wzorców. Możesz również zdefiniować własny wzorzec pola daty w formularzu konfiguracyjnym oprogramowania.

  • "yyMMddHHmm",
  • "yyMMddHHmmss",
  • "dd-MMM-yyHH:mm",
  • "dd-MMM-yyHH:mm:ss",
  • "dd-MMM-yy HH:mm",
  • "dd-MMM-yy HH:mm:ss",
  • "yyyyMMddHHmmss",
  • "yyyyMMddHHmm",
  • niestandardowy

Stany wiadomości

Poniżej znajduje się lista dopuszczalnych stanów dla krótkiej wiadomości. MC zwraca wartość message_state do ESME jako część PDU query_sm_resp, query_broadcast_sm_resp lub deliver_sm potwierdzenia dostarczenia.

Stany pośrednie to stany, które mogą ulec zmianie. Stany końcowe to stany, które reprezentują stan końcowy życia wiadomości.

Na przykład, wiadomość w stanie ponawiania może zwrócić stan ENROUTE. W pewnym momencie w przyszłości ta wiadomość wygaśnie lub zostanie dostarczona. Stan następnie przejdzie do EXPIRED lub DELIVERED. Zatem wiadomość w stanie ENROUTE jest uważana za stan pośredni.

Wiadomość w stanie DELIVERED lub EXPIRED nie może przejść do innego stanu. Te stany są zatem stanami końcowymi.

Stan wiadomości Wartość Typ
SCHEDULED 0 Pośredni
Wiadomość jest zaplanowana. Dostarczenie nie zostało jeszcze zainicjowane. Wiadomość przesłana z zaplanowanym czasem dostarczenia może zwrócić ten stan podczas zapytania. Ta wartość została dodana dla SMPP v5.0. MC obsługujące wcześniejsze wersje SMPP v3.3 i SMPP v3.4 prawdopodobnie zwrócą ENROUTE dla wiadomości zaplanowanych.
ENROUTE
lub EN_ROUTE
1 Pośredni
Wiadomość jest w stanie enroute. Jest to ogólny stan używany do opisania wiadomości jako aktywnej w MC. Wiadomość może być w trakcie ponawiania lub wysłana do sieci komórkowej w celu dostarczenia do odbiorcy.
DELIVERED 2 Końcowy
Wiadomość została dostarczona do odbiorcy. Wiadomość została dostarczona do celu. Nie będą podejmowane dalsze próby dostarczenia.
EXPIRED 3 Końcowy
Okres ważności wiadomości wygasł. Wiadomość nie została dostarczona w swoim okresie ważności i/lub okresie ponawiania. Nie będą podejmowane dalsze próby dostarczenia.
DELETED 4 Końcowy
Wiadomość została usunięta. Wiadomość została anulowana lub usunięta z MC. Nie będą podejmowane dalsze próby dostarczenia.
UNDELIVERABLE 5 Końcowy
Wiadomość jest niemożliwa do dostarczenia. Wiadomość napotkała błąd dostarczenia i jest uznawana za trwale niemożliwą do dostarczenia. Nie będą podejmowane dalsze próby dostarczenia. Pewne błędy sieciowe lub wewnętrzne MC skutkują trwałym niedostarczeniem wiadomości. Przykłady takich błędów to nieznany abonent lub błąd sieciowy wskazujący, że dany odbiorca mobilny został pozbawiony usługi SMS lub nie może jej obsługiwać.

Kody błędów dostarczenia SMPP

Kody błędów zwracane w potwierdzeniach dostarczenia służą do wskazania sytuacji błędu napotkanej podczas próby dostarczenia wiadomości. Kody błędów są specyficzne dla bramki SMS i platformy SMSC. Jednak poniżej przedstawiono często stosowane podejście:

Kod	Znaczenie
1	Numer MT jest nieznany w HLR sieci MT
2	Numer MT jest nieznany w HLR sieci MT
5	Numer MT jest nieznany w MSC sieci MT
9	Numer MT jest klasyfikowany jako nielegalny abonent w MSC sieci MT
11	MT HLR zwraca błąd „Teleservice not provisioned” w odpowiedzi na SRI
12	Urządzenie MT jest oznaczone jako nielegalne w MSC.
13	Klient jest zablokowany według HLR MT z powodu otrzymywania SMS
15	Klient MT jest częścią CUG, który nie może otrzymywać SMS
21	SMS nie jest obsługiwany w sieci MT.
22	SMS nie jest obsługiwany w MSC MT
31	Urządzenie MT jest zajęte. Kanał sterowania sygnalizacją jest w użyciu. 
	(Prawdopodobnie odbiera inny SMS w tym samym czasie)
32	GPRS – Jak powyżej
34	Awaria systemu w sieci MT.
35	Brak danych w HLR lub MSC MT
36	Nieoczekiwana wartość danych otrzymana w odpowiedzi na FSM lub SRI
40	Przekroczona pojemność pamięci w urządzeniu MT
41	Błąd protokołu w urządzeniu MT
42	Urządzenie MT nie jest wyposażone do obsługi SMS
43	Typ wiadomości krótkiej „0” nie jest obsługiwany przez urządzenie MT.
44	Sieć MT nie może zastąpić SMS na urządzeniu klienta MT
45	Nieokreślony błąd protokołu w urządzeniu MT
46	Klasa wiadomości nie jest obsługiwana przez urządzenie MT
47	Nieokreślony błąd DCS (schemat kodowania danych) w urządzeniu MT
48	PDU warstwy transferowej nie jest obsługiwane przez urządzenie MT
49	Karta SIM pełna w urządzeniu MT
50	Karta SIM w urządzeniu MT nie może przechować wiadomości
51	Błąd w urządzeniu MT
52	Przekroczona pojemność pamięci w urządzeniu MT
53	Aplikacja SIM toolkit zajęta w urządzeniu MS
54	Błąd pobierania danych SIM w urządzeniu klienta MT
55	Nieokreślony błąd urządzenia MS
60	Abonent nieobecny. Przyczyna nieznana
61	Abonent nieobecny z powodu wyłączenia telefonu
62	Abonent nieobecny z powodu braku zasięgu/rozładowanej baterii
63	Abonent nieobecny z powodu ograniczenia roamingu/obszaru ograniczonego
64	Abonent nieobecny z powodu wyrejestrowania w HLR
65	Abonent nieobecny z powodu usunięcia w VLR (wyłączony przez 24+ godziny)
66	Abonent nieobecny (GPRS) nie może być przywołany przez SGSN
67	Abonent nieobecny z powodu odłączenia GPRS
68	Abonent nieobecny z powodu wyrejestrowania w HLR (GPRS)
69	Abonent nieobecny z powodu usunięcia GPRS MS w VLR
70	Abonent nieobecny z powodu nieznanego abonenta w MSC, do którego wysłano FSM.
71	Abonent nieobecny z powodu nieznanego abonenta w SGSN

Jak testować raporty dostarczenia SMPP

Możesz utworzyć konfigurację symulatora SMPP, aby testować raporty dostarczenia SMS. W symulatorze połączenie testera może zwracać raporty dostarczenia udane i nieudane. Zrobi to, jeśli skonfigurujesz „Żądanie raportu dostarczenia” na karcie „Zaawansowane” formularza konfiguracyjnego połączenia SMPP Tester. Jeśli ta opcja jest włączona, raport dostarczenia zostanie zwrócony dla każdego przesłanego SMS w losowym późniejszym terminie z losowym statusem udanego lub nieudanego dostarczenia.

FAQ

Co to jest raport dostawy?

Podczas wysyłania wiadomości SMS potwierdzenie jej dotarcia do telefonu odbiorcy jest kluczowe. SMS wykorzystuje dwuetapowy system potwierdzenia, aby to zapewnić.

Po przesłaniu wiadomości do Centrum Usług Wiadomości Krótkich (SMSC) sieci komórkowej, otrzymujesz „raport o przesłaniu wiadomości”. Ten raport oznacza, że SMSC zaakceptowało Twoją wiadomość do dostarczenia. Zawiera on również unikalny identyfikator, często nazywany „referencją wiadomości” lub „callback ID”, który umożliwia śledzenie wiadomości w systemie SMSC.

Po zaakceptowaniu wiadomość jest przechowywana w SMSC, aż będzie możliwe jej dostarczenie. Może to być opóźnione, jeśli telefon odbiorcy jest wyłączony, co może wydłużyć czas oczekiwania nawet do kilku dni. Gdy telefon odbiorcy stanie się dostępny, wiadomość zostanie dostarczona. Po pomyślnym dostarczeniu „raport dostawy” jest wysyłany z powrotem do nadawcy jako oddzielna wiadomość SMS.

Ta potwierdzająca wiadomość SMS zawiera:

  • Numer telefonu odbiorcy: Potwierdza, że wiadomość dotarła do zamierzonego odbiorcy.
  • Referencję wiadomości (callback ID): Pasuje do identyfikatora z oryginalnego raportu przesłania, zapewniając jasne powiązanie między obydwoma etapami.
  • Znacznik czasu dostarczenia: Podaje dokładny czas, w którym wiadomość dotarła do telefonu odbiorcy.
Warto zaznaczyć, że „raport dostawy” zazwyczaj odnosi się do tej potwierdzającej wiadomości SMS otrzymanej przez nadawcę. Nie wszystkie sieci komórkowe oferują raporty dostawy, a niektóre wymagają ich aktywacji przez użytkownika.

Czy mogę dostosować, jak długo wiadomość jest przechowywana w SMSC?

Chociaż wiadomości SMS oferują wygodny sposób komunikacji, kluczowe jest zapewnienie, że wiadomość dotrze do odbiorcy na czas. Tutaj pojawia się koncept „okresu ważności”.

Okres ważności odnosi się do czasu, przez jaki wiadomość SMS jest przechowywana w Centrum Usług Wiadomości Krótkich (SMSC), gdy telefon odbiorcy jest niedostępny. Jeśli wiadomość pozostanie niedostarczona po upływie tego okresu, jest automatycznie usuwana z SMSC, zapobiegając opóźnionej dostawie.

Korzyści z wykorzystania okresu ważności:

  • Wiadomości czasowo wrażliwe: Wyobraź sobie wysłanie SMS-a dotyczącego wydarzenia czasowo wrażliwego, np. programu na żywo w TV. Ustawienie odpowiedniego okresu ważności zapewnia, że wiadomość nie zostanie dostarczona po zakończeniu wydarzenia, czyniąc ją nieaktualną.
  • Efektywność sieci: Zapobiegając niepotrzebnym próbom dostarczenia do niedostępnych telefonów, okres ważności optymalizuje zasoby sieci.
Chociaż niektóre sieci komórkowe oferują możliwość bezpośredniego ustawienia okresu ważności dla wychodzących wiadomości, domyślne ustawienie to często maksymalna wartość sieci (zazwyczaj jeden tydzień). Tę wartość można dostosować poprzez wbudowane opcje menu telefonu.

Należy pamiętać, że nie wszystkie sieci komórkowe oferują konfigurowalne przez użytkownika okresy ważności, a niektóre mogą wymagać aktywacji przez użytkownika raportów dostawy (potwierdzenia, że wiadomość dotarła do odbiorcy).

More information