Jak nakonfigurovat pole Registered Delivery v SMPP
Co je pole Registered Delivery?
Pole Registered Delivery v SMPP je 1bajtová bitová maska v PDU jako submit_sm a data_sm, která řídí
doručovací potvrzení a potvrzení o přijetí. Umožňuje odesílatelům sledovat stav doručení zpráv prostřednictvím potvrzení generovaných SMSC. Mezi klíčové funkce patří:
- Žádost o konečné potvrzení doručení (úspěch/neúspěch)
- Povolení průběžných oznámení o doručení
- Zpracování potvrzení od SME (Short Message Entity)
Struktura pole a bitová maska
Definováno v SMPP v3.4, pole používá následující bitovou masku:
| Bit | Popis |
|---|---|
| 0 | Potvrzení doručení od SMSC (0 = vypnuto, 1 = zapnuto) |
| 1 | Potvrzení od SME (0 = vypnuto, 1 = zapnuto) |
| 2 | Průběžné oznámení (0 = vypnuto, 1 = zapnuto) |
| 3-7 | Rezervováno |
Běžné hodnoty
| Hodnota (Hex) | Binární | Popis |
|---|---|---|
| 0x00 | 00000000 | Bez potvrzení |
| 0x01 | 00000001 | Pouze potvrzení od SMSC |
| 0x03 | 00000011 | Potvrzení od SMSC + potvrzení od SME |
| 0x05 | 00000101 | Potvrzení od SMSC + průběžná oznámení |
Příklady použití
1. Základní potvrzení doručení
registered_delivery: 0x01 // Žádost o konečný stav doručení
2. Vysoká spolehlivost zpráv
registered_delivery: 0x05 // Potvrzení + průběžná oznámení
3. Obousměrná komunikace
registered_delivery: 0x03 // Potvrzení od SMSC i SME
Příklady SMPP PDU
Příklad 1: Bez potvrzení (0x00)
0000001D // Délka příkazu (29 bajtů)
00000004 // ID příkazu (SubmitSM)
00000001 // Číslo sekvence
00 // Zdrojový TON
00 // Zdrojový NPI
736F7572636500 // Zdrojová adresa ("source")
00 // Cílový TON
00 // Cílový NPI
36353433323100 // Cílová adresa ("654321")
00 // Třída ESM
00 // ID protokolu
00 // Priorita
00 // Čas plánovaného doručení
00 // Platnost
00 // Registered Delivery (0x00: Bez potvrzení)
00 // Nahradit, pokud existuje
00 // Kódování dat (DCS=0x00)
00 // Výchozí ID zprávy
07 // Délka zprávy (7 septetů)
C8329BFD06DDDF72 // Obsah ("Hello!")
Příklad 2: Potvrzení od SMSC (0x01)
0000001D // Délka příkazu (29 bajtů)
00000004 // ID příkazu (SubmitSM)
00000002 // Číslo sekvence
...
00 // Platnost
01 // Registered Delivery (0x01: Potvrzení od SMSC)
00 // Nahradit, pokud existuje
...
Příklad 3: Průběžná oznámení (0x05)
0000001D // Délka příkazu (29 bajtů)
00000004 // ID příkazu (SubmitSM)
00000003 // Číslo sekvence
...
05 // Registered Delivery (0x05: Potvrzení od SMSC + průběžná oznámení)
...
Formát potvrzení doručení
SMSC vrací potvrzení prostřednictvím PDU deliver_sm s obsahem ve formátu:
id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm done date:YYMMDDhhmm stat:STATUS err:EEE
Příklad potvrzení pro doručenou zprávu:
id:1896384752 sub:001 dlvrd:001 submit date:2310151430 done date:2310151431 stat:DELIVRD err:000
Interakce s dalšími poli
- esm_class: Bit 6 (flag potvrzení doručení) musí odpovídat nastavení registered_delivery
- validity_period: Určuje, jak dlouho se SMSC bude pokoušet o doručení před odesláním potvrzení o neúspěchu
- message_id: Klíčové pro propojení potvrzení s původními zprávami
Běžné problémy
- Povolení potvrzení, ale neposlouchání PDU
deliver_sm - Předpoklad, že všechny SMSC podporují potvrzení od SME (0x02)
- Nesoulad mezi flagy
registered_deliveryaesm_class - Ignorování limitů SMSC pro generování potvrzení
Někteří poskytovatelé účtují extra poplatky za potvrzení doručení. Ověřte si ceny před aktivací.
Závěr
Pole Registered Delivery je klíčové pro sledování stavu doručení SMS v SMPP. Zatímco základní potvrzení (0x01) je široce podporováno,
pokročilé funkce jako průběžná oznámení vyžadují testování specifické pro SMSC. Vždy implementujte robustní parsování potvrzení a propojujte zprávy
pomocí message_id. Pro podrobné chování konzultujte SMPP v3.4 Sekci 5.2.17 a dokumentaci vašeho poskytovatele.