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 |
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
iesm_class
- Ignorowanie limitów SMSC dotyczących generowania potwierdzeń
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
- Jak skonfigurować pole Typ usługi SMPP
- Jak skonfigurować pola numerów telefonów SMPP
- Jak skonfigurować pole klasy ESM SMPP
- Jak skonfigurować pole PID SMPP
- Jak skonfigurować pole priorytetu SMPP
- Jak skonfigurować pole zaplanowanego czasu SMPP
- Jak skonfigurować pole okresu ważności SMPP
- Jak skonfigurować pole zarejestrowanej dostawy SMPP
- Jak skonfigurować pole Zastąp jeśli obecne SMPP
- Jak skonfigurować pole sm_default_msg_id
- Jak skonfigurować pole DCS SMPP
- Jak obliczyć pole długości wiadomości SMPP
- Jak umieścić dane w polu SM SMPP