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
Napomena: Mnogi SMSC-ovi podržavaju samo bit 0 (SMSC potvrde). Proverite mogućnosti sa vašim provajderom.

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_sm PDU-a
  • Pretpostavka da svi SMSC-ovi podržavaju SME potvrde (0x02)
  • Neusklađenost između registered_delivery i esm_class flagova
  • Zanemarivanje SMSC ograničenja brzine za generisanje potvrda
Napomena o naplati:
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.

More information