Kako konfigurirati polje Registered Delivery v SMPP
Kaj je polje Registered Delivery?
Polje Registered Delivery v SMPP je 1-bajtna bitna maska v PDU-jih, kot sta submit_sm in data_sm, ki nadzira potrditve o dostavi in potrditve prejema. Omogoča pošiljateljem sledenje stanju dostave sporočil prek potrdil, ki jih generira SMSC. Ključne funkcije vključujejo:
- Zahteva za končna potrdila o dostavi (uspeh/neuspeh)
- Omogoča vmesna obvestila o dostavi
- Upravlja potrditve SME (Short Message Entity)
Struktura polja in bitna maska
V SMPP v3.4 je polje definirano z naslednjo strukturo bitne maske:
| Bit | Opis |
|---|---|
| 0 | Potrdilo o dostavi SMSC (0 = onemogočeno, 1 = omogočeno) |
| 1 | Potrditev prejema SME (0 = onemogočeno, 1 = omogočeno) |
| 2 | Vmesno obvestilo (0 = onemogočeno, 1 = omogočeno) |
| 3-7 | Rezervirano |
Pogoste vrednosti
| Vrednost (Hex) | Binarno | Opis |
|---|---|---|
| 0x00 | 00000000 | Brez zahtevanih potrdil |
| 0x01 | 00000001 | Samo potrdilo o dostavi SMSC |
| 0x03 | 00000011 | Potrdilo SMSC + potrditev SME |
| 0x05 | 00000101 | Potrdilo SMSC + vmesna obvestila |
Primeri uporabe
1. Osnovna potrdila o dostavi
registered_delivery: 0x01 // Zahteva za končno stanje dostave
2. Sporočila z visoko zanesljivostjo
registered_delivery: 0x05 // Potrdilo + vmesna obvestila
3. Dvosmerna komunikacija
registered_delivery: 0x03 // Potrdi dostavo tako SMSC kot SME
Primeri SMPP PDU-jev
Primer 1: Brez potrdil (0x00)
0000001D // Dolžina ukaza (29 bajtov)
00000004 // ID ukaza (SubmitSM)
00000001 // Zaporedna številka
00 // Vir TON
00 // Vir NPI
736F7572636500 // Naslov pošiljatelja ("source")
00 // Cilj TON
00 // Cilj NPI
36353433323100 // Ciljni naslov ("654321")
00 // Razred ESM
00 // Protokol ID
00 // Prioritetna zastavica
00 // Čas načrtovane dostave
00 // Obdobje veljavnosti
00 // Registered Delivery (0x00: Brez potrdil)
00 // Replace-if-Present
00 // Kodiranje podatkov (DCS=0x00)
00 // Privzeti ID sporočila SM
07 // Dolžina SM (7 septetov)
C8329BFD06DDDF72 // Vsebina ("Hello!")
Primer 2: Potrdilo o dostavi SMSC (0x01)
0000001D // Dolžina ukaza (29 bajtov) 00000004 // ID ukaza (SubmitSM) 00000002 // Zaporedna številka ... 00 // Obdobje veljavnosti 01 // Registered Delivery (0x01: Potrdilo SMSC) 00 // Replace-if-Present ...
Primer 3: Vmesna obvestila (0x05)
0000001D // Dolžina ukaza (29 bajtov) 00000004 // ID ukaza (SubmitSM) 00000003 // Zaporedna številka ... 05 // Registered Delivery (0x05: Potrdilo SMSC + vmesna obvestila) ...
Oblika potrdila o dostavi
SMSC vrača potrdila prek PDU-jev deliver_sm z vsebino, oblikovano kot:
id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm done date:YYMMDDhhmm stat:STATUS err:EEE
Primer potrdila za dostavljeno sporočilo:
id:1896384752 sub:001 dlvrd:001 submit date:2310151430 done date:2310151431 stat:DELIVRD err:000
Interakcije z drugimi polji
- esm_class: Bit 6 (zastavica potrdila o dostavi) mora biti usklajen z nastavitvami registered_delivery
- validity_period: Določa, kako dolgo bo SMSC poskušal dostaviti sporočilo, preden pošlje potrdilo o neuspehu
- message_id: Ključno za povezovanje potrdil z izvirnimi sporočili
Pogoste napake
- Omogočanje potrdil, vendar ne poslušanje PDU-jev
deliver_sm - Predpostavka, da vsi SMSC podpirajo potrditve SME (0x02)
- Neusklajenost zastavic
registered_deliveryinesm_class - Ignoriranje omejitev hitrosti SMSC za generiranje potrdil
Nekateri ponudniki zaračunavajo dodatno za potrdila o dostavi. Pred aktiviranjem preverite cene.
Zaključek
Polje Registered Delivery je ključno za sledenje stanju dostave SMS-jev v SMPP. Medtem ko je osnovna podpora za potrdila (0x01) široko razširjena, zahtevnejše funkcije, kot so vmesna obvestila, zahtevajo testiranje s specifičnim SMSC. Vedno implementirajte robustno razčlenjevanje potrdil in povezujte sporočila z uporabo message_id. Za podrobno vedenje se posvetujte z razdelkom 5.2.17 SMPP v3.4 in dokumentacijo vašega ponudnika.