Kako konfigurisati SMPP Registered Delivery polje
Šta je Registered Delivery polje?
Registered Delivery polje u SMPP-u je 1-bajtni bitmask u PDU-ima kao što su submit_sm i data_sm koja kontroliše
potvrde o isporuci i potvrde o prijemu. Omogućava pošiljaocima da prate status isporuke poruke putem potvrda generisanih od strane SMSC-a. Ključne funkcije uključuju:
- Zahtevanje finalnih potvrda o isporuci (uspeh/neuspeh)
- Omogućavanje intermedijarnih obaveštenja o isporuci
- Rukovanje SME (Short Message Entity) potvrdama
Struktura polja i bitmask
Definisano u SMPP v3.4, polje koristi sledeću strukturu bitmask-e:
| Bit | Opis |
|---|---|
| 0 | SMSC Delivery Receipt (0 = isključeno, 1 = uključeno) |
| 1 | SME Originated Acknowledgment (0 = isključeno, 1 = uključeno) |
| 2 | Intermediate Notification (0 = isključeno, 1 = uključeno) |
| 3-7 | Rezervisano |
Uobičajene vrednosti
| Vrednost (Hex) | Binarno | Opis |
|---|---|---|
| 0x00 | 00000000 | Nema zahteva za potvrde |
| 0x01 | 00000001 | Samo SMSC potvrda o isporuci |
| 0x03 | 00000011 | SMSC potvrda + SME potvrda |
| 0x05 | 00000101 | SMSC potvrda + intermedijarna obaveštenja |
Primeri upotrebe
1. Osnovne potvrde o isporuci
registered_delivery: 0x01 // Zahtev za finalni status isporuke
2. Poruke sa visokim nivoom pouzdanosti
registered_delivery: 0x05 // Potvrda + intermedijarna obaveštenja
3. Dvosmerna komunikacija
registered_delivery: 0x03 // Potvrda i SMSC i SME isporuke
Primeri SMPP PDU-a
Primer 1: Bez potvrda (0x00)
0000001D // Dužina komande (29 bajtova)
00000004 // ID komande (SubmitSM)
00000001 // Redni broj sekvence
00 // Source TON
00 // Source NPI
736F7572636500 // Source Address ("source")
00 // Dest TON
00 // Dest NPI
36353433323100 // Destination Address ("654321")
00 // ESM Class
00 // Protocol ID
00 // Priority Flag
00 // Schedule Delivery Time
00 // Validity Period
00 // Registered Delivery (0x00: Bez potvrda)
00 // Replace-if-Present
00 // Data Coding (DCS=0x00)
00 // SM Default Message ID
07 // SM Length (7 septeta)
C8329BFD06DDDF72 // Payload ("Hello!")
Primer 2: SMSC potvrda o isporuci (0x01)
0000001D // Dužina komande (29 bajtova)
00000004 // ID komande (SubmitSM)
00000002 // Redni broj sekvence
...
00 // Validity Period
01 // Registered Delivery (0x01: SMSC potvrda)
00 // Replace-if-Present
...
Primer 3: Intermedijarna obaveštenja (0x05)
0000001D // Dužina komande (29 bajtova)
00000004 // ID komande (SubmitSM)
00000003 // Redni broj sekvence
...
05 // Registered Delivery (0x05: SMSC potvrda + intermedijarna obaveštenja)
...
Format potvrde o isporuci
SMSC-ovi vraćaju potvrde putem deliver_sm PDU-a sa payload-om formatiranim kao:
id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm done date:YYMMDDhhmm stat:STATUS err:EEE
Primer potvrde za isporučenu poruku:
id:1896384752 sub:001 dlvrd:001 submit date:2310151430 done date:2310151431 stat:DELIVRD err:000
Interakcije sa drugim poljima
- esm_class: Bit 6 (flag potvrde o isporuci) mora biti usklađen sa registered_delivery postavkama
- validity_period: Određuje koliko dugo će SMSC pokušavati isporuku pre slanja potvrde o neuspehu
- message_id: Ključno za povezivanje potvrda sa originalnim porukama
Uobičajene greške
- Omogućavanje potvrda ali ne osluškivanje
deliver_smPDU-a - Pretpostavka da svi SMSC-ovi podržavaju SME potvrde (0x02)
- Neusklađenost između
registered_deliveryiesm_classflagova - Zanemarivanje SMSC ograničenja brzine za generisanje potvrda
Neki provajderi naplaćuju dodatno za potvrde o isporuci. Proverite cene pre omogućavanja.
Zaključak
Registered Delivery polje je ključno za praćenje statusa isporuke SMS-ova u SMPP-u. Dok je osnovna podrška za potvrde (0x01) široko rasprostranjena,
napredne funkcije kao što su intermedijarna obaveštenja zahtevaju SMSC-specifično testiranje. Uvek implementirajte robustno parsiranje potvrda i povezujte poruke
koristeći message_id. Za detaljno ponašanje, konsultujte SMPP v3.4 Sekciju 5.2.17 i dokumentaciju vašeg provajdera.