Ako nakonfigurovať pole Registered Delivery v SMPP
Čo je pole Registered Delivery?
Pole Registered Delivery v SMPP je 1-bajtová bitová maska v PDU ako submit_sm a data_sm, ktorá kontroluje
doručovacie potvrdenia a potvrdenia o prijatí. Umožňuje odosielateľom sledovať stav doručenia správy prostredníctvom potvrdení generovaných SMSC. Medzi kľúčové funkcie patrí:
- Žiadosť o konečné potvrdenie o doručení (úspech/zlyhanie)
- Povolenie priebežných oznámení o doručení
- Spracovanie potvrdení SME (Short Message Entity)
Štruktúra poľa a bitová maska
Podľa SMPP v3.4 má pole nasledujúcu bitovú masku:
| Bit | Popis |
|---|---|
| 0 | Potvrdenie o doručení od SMSC (0 = vypnuté, 1 = zapnuté) |
| 1 | Potvrdenie od SME (0 = vypnuté, 1 = zapnuté) |
| 2 | Priebežné oznámenie (0 = vypnuté, 1 = zapnuté) |
| 3-7 | Rezervované |
Bežné hodnoty
| Hodnota (Hex) | Binárne | Popis |
|---|---|---|
| 0x00 | 00000000 | Bez potvrdení |
| 0x01 | 00000001 | Iba potvrdenie o doručení od SMSC |
| 0x03 | 00000011 | Potvrdenie od SMSC + potvrdenie od SME |
| 0x05 | 00000101 | Potvrdenie od SMSC + priebežné oznámenia |
Príklady použitia
1. Základné potvrdenia o doručení
registered_delivery: 0x01 // Žiadosť o konečný stav doručenia
2. Správy s vysokou spoľahlivosťou
registered_delivery: 0x05 // Potvrdenie + priebežné oznámenia
3. Obojsmerná komunikácia
registered_delivery: 0x03 // Potvrdenie od SMSC aj SME
Príklady SMPP PDU
Príklad 1: Bez potvrdení (0x00)
0000001D // Dĺžka príkazu (29 bajtov)
00000004 // ID príkazu (SubmitSM)
00000001 // Poradové číslo
00 // Zdrojový TON
00 // Zdrojový NPI
736F7572636500 // Zdrojová adresa ("source")
00 // Cieľový TON
00 // Cieľový NPI
36353433323100 // Cieľová adresa ("654321")
00 // Trieda ESM
00 // ID protokolu
00 // Príznak priority
00 // Čas naplánovaného doručenia
00 // Platnosť
00 // Registered Delivery (0x00: Bez potvrdení)
00 // Nahradiť, ak je prítomné
00 // Kódovanie dát (DCS=0x00)
00 // Predvolené ID správy
07 // Dĺžka správy (7 septetov)
C8329BFD06DDDF72 // Obsah ("Hello!")
Príklad 2: Potvrdenie o doručení od SMSC (0x01)
0000001D // Dĺžka príkazu (29 bajtov) 00000004 // ID príkazu (SubmitSM) 00000002 // Poradové číslo ... 00 // Platnosť 01 // Registered Delivery (0x01: Potvrdenie od SMSC) 00 // Nahradiť, ak je prítomné ...
Príklad 3: Priebežné oznámenia (0x05)
0000001D // Dĺžka príkazu (29 bajtov) 00000004 // ID príkazu (SubmitSM) 00000003 // Poradové číslo ... 05 // Registered Delivery (0x05: Potvrdenie od SMSC + priebežné oznámenia) ...
Formát potvrdenia o doručení
SMSC vracajú potvrdenia prostredníctvom PDU deliver_sm s obsahom vo formáte:
id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm done date:YYMMDDhhmm stat:STATUS err:EEE
Príklad potvrdenia o doručenej správe:
id:1896384752 sub:001 dlvrd:001 submit date:2310151430 done date:2310151431 stat:DELIVRD err:000
Interakcie s inými poľami
- esm_class: Bit 6 (príznak potvrdenia o doručení) musí byť v súlade s nastaveniami registered_delivery
- validity_period: Určuje, ako dlho sa SMSC bude pokúšať doručiť správu pred odoslaním potvrdenia o zlyhaní
- message_id: Kritické pre spárovanie potvrdení s pôvodnými správami
Bežné problémy
- Povolenie potvrdení, ale nepočúvanie PDU
deliver_sm - Predpoklad, že všetky SMSC podporujú potvrdenia od SME (0x02)
- Nesúlad medzi príznakmi
registered_deliveryaesm_class - Ignorovanie limitov SMSC pre generovanie potvrdení
Niektorí poskytovatelia si účtujú extra poplatky za potvrdenia o doručení. Overte si ceny pred aktiváciou.
Záver
Pole Registered Delivery je nevyhnutné pre sledovanie stavu doručenia SMS v SMPP. Zatiaľ čo základné spracovanie potvrdení (0x01) je široko podporované,
pokročilé funkcie ako priebežné oznámenia vyžadujú testovanie konkrétneho SMSC. Vždy implementujte robustné spracovanie potvrdení a spárujte správy
pomocou message_id. Pre podrobné správanie sa pozrite na sekciu 5.2.17 v SMPP v3.4 a dokumentáciu vášho poskytovateľa.