Jak skonfigurować pole Registered Delivery w SMPP

Co to jest pole Registered Delivery?

Pole Registered Delivery w SMPP to 1-bajtowa maska bitowa w PDU, takich jak submit_sm i data_sm, która kontroluje potwierdzenia dostarczenia i odbiór wiadomości. Umożliwia nadawcom śledzenie statusu dostarczenia wiadomości poprzez potwierdzenia generowane przez SMSC. Główne funkcje obejmują:

  • Żądanie potwierdzeń dostarczenia (sukces/porażka)
  • Włączanie powiadomień o pośrednim dostarczeniu
  • Obsługę potwierdzeń SME (Short Message Entity)

Struktura pola i maska bitowa

Zdefiniowane w SMPP v3.4, pole używa następującej struktury maski bitowej:

Bit Opis
0 Potwierdzenie dostarczenia SMSC (0 = wyłączone, 1 = włączone)
1 Potwierdzenie od SME (0 = wyłączone, 1 = włączone)
2 Powiadomienie pośrednie (0 = wyłączone, 1 = włączone)
3-7 Zarezerwowane
Uwaga: Wiele SMSC obsługuje tylko bit 0 (potwierdzenia SMSC). Potwierdź możliwości z dostawcą.

Typowe wartości

Wartość (Hex) Binarnie Opis
0x00 00000000 Brak potwierdzeń
0x01 00000001 Tylko potwierdzenie dostarczenia SMSC
0x03 00000011 Potwierdzenie SMSC + potwierdzenie SME
0x05 00000101 Potwierdzenie SMSC + powiadomienia pośrednie

Przykłady zastosowań

1. Podstawowe potwierdzenia dostarczenia

registered_delivery: 0x01  // Żądanie statusu dostarczenia
    

2. Wiadomości o wysokiej niezawodności

registered_delivery: 0x05  // Potwierdzenie + powiadomienia pośrednie
    

3. Komunikacja dwukierunkowa

registered_delivery: 0x03  // Potwierdzenie dostarczenia SMSC i SME
    

Przykłady PDU SMPP

Przykład 1: Brak potwierdzeń (0x00)

0000001D  // Długość polecenia (29 bajtów)
00000004  // ID polecenia (SubmitSM)
00000001  // Numer sekwencji
00        // Źródło TON
00        // Źródło NPI
736F7572636500  // Adres źródłowy ("source")
00        // Cel TON
00        // Cel NPI
36353433323100  // Adres docelowy ("654321")
00        // Klasa ESM
00        // ID protokołu
00        // Flaga priorytetu
00        // Czas dostarczenia
00        // Okres ważności
00        // Registered Delivery (0x00: Brak potwierdzeń)
00        // Replace-if-Present
00        // Kodowanie danych (DCS=0x00)
00        // Domyślne ID wiadomości
07        // Długość wiadomości (7 septetów)
C8329BFD06DDDF72  // Zawartość ("Hello!")
    

Przykład 2: Potwierdzenie dostarczenia SMSC (0x01)

0000001D  // Długość polecenia (29 bajtów)
00000004  // ID polecenia (SubmitSM)
00000002  // Numer sekwencji
...
00        // Okres ważności
01        // Registered Delivery (0x01: Potwierdzenie SMSC)
00        // Replace-if-Present
...
    

Przykład 3: Powiadomienia pośrednie (0x05)

0000001D  // Długość polecenia (29 bajtów)
00000004  // ID polecenia (SubmitSM)
00000003  // Numer sekwencji
...
05        // Registered Delivery (0x05: Potwierdzenie SMSC + powiadomienia pośrednie)
...
    

Format potwierdzenia dostarczenia

SMSC zwraca potwierdzenia poprzez PDU deliver_sm z zawartością w formacie:

id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm done date:YYMMDDhhmm stat:STATUS err:EEE
    

Przykład potwierdzenia dostarczenia:

id:1896384752 sub:001 dlvrd:001 submit date:2310151430 done date:2310151431 stat:DELIVRD err:000
    

Interakcje z innymi polami

  • esm_class: Bit 6 (flaga potwierdzenia dostarczenia) musi być zgodny z ustawieniami registered_delivery
  • validity_period: Określa, jak długo SMSC będzie próbował dostarczyć wiadomość przed wysłaniem potwierdzenia porażki
  • message_id: Kluczowe dla powiązania potwierdzeń z oryginalnymi wiadomościami

Typowe problemy

  • Włączanie potwierdzeń bez nasłuchiwania PDU deliver_sm
  • Zakładanie, że wszystkie SMSC obsługują potwierdzenia SME (0x02)
  • Niezgodność flag registered_delivery i esm_class
  • Ignorowanie limitów SMSC dotyczących generowania potwierdzeń
Uwaga dotycząca rozliczeń:
Niektórzy dostawcy pobierają dodatkowe opłaty za potwierdzenia dostarczenia. Potwierdź cennik przed włączeniem.

Podsumowanie

Pole Registered Delivery jest niezbędne do śledzenia statusu dostarczenia SMS w SMPP. Podczas gdy podstawowa obsługa potwierdzeń (0x01) jest powszechnie obsługiwana, zaawansowane funkcje, takie jak powiadomienia pośrednie, wymagają testów specyficznych dla SMSC. Zawsze implementuj solidne parsowanie potwierdzeń i powiązuj wiadomości za pomocą message_id. Aby uzyskać szczegółowe informacje, zapoznaj się z sekcją 5.2.17 SMPP v3.4 i dokumentacją dostawcy.

More information