Kako konfigurisati polje Validity Period u SMPP-u

Šta je polje Validity Period?

Validity Period u SMPP-u (Short Message Peer-to-Peer Protocol) je polje u PDU-ovima poput submit_sm koje definiše koliko će vremena SMSC pokušavati da isporuči poruku pre nego što je odbaci. Ovo polje je ključno za:

  • Sprečavanje beskonačnih pokušaja za neisporučive poruke
  • Upravljanje resursima SMSC-a
  • Rukovanje vremenski osetljivim sadržajima (npr. OTP-ovi, promocije)

Format i struktura polja

Validity period koristi isti format apsolutnog vremena kao i zakazano vreme isporuke (SMPP v3.4 specifikacija):

YYMMDDhhmmssnnp

Gde komponente odgovaraju formatu zakazanog vremena isporuke. Podržani su i uobičajeni skraćeni formati relativnog vremena:

Format Primer Opis
Apsolutno 231215235959000+ 15. dec 2023. 23:59:59 UTC+0
Relativno 000003000000000R 3 dana od vremena slanja
Specijalne vrednosti:
- NULL: Koristi podrazumevanu vrednost SMSC-a (obično 24-72 sata)
- 00: Podrazumevana vrednost SMSC-a (stari sistemi)

Ključni formati Validity Period-a

1. Format apsolutnog vremena

YYMMDDhhmmssnnp // Pun format
231215143000000+  // 15. dec 2023. 14:30:00 UTC+0

2. Format relativnog vremena

00000X000000000R // X = Dani (00-99)
000003000000000R  // 3 dana važenja

Primeri upotrebe

1. Isticanje OTP-a (Kratko važenje)

validity_period: "000000010000000R" // 1 sat važenja

2. Promotivna kampanja (Produženo važenje)

validity_period: "000007000000000R" // 7 dana važenja

3. Isticanje u ponoć (Apsolutno vreme)

validity_period: "231215235959000+" // Ističe 15. dec 2023. 23:59:59 UTC+0

Primeri SMPP PDU-ova

Primer 1: 24-časovno važenje (Relativni format)

0000001D  // Dužina komande (29 bajtova)
00000004  // ID komande (SubmitSM)
00000001  // Redni broj
...
00        // Prioritetni flag
00        // Zakazano vreme isporuke
303030303234303030303030305200  // "00002400000000R" (24 sata)
00        // Registrovana isporuka
...

Primer 2: Apsolutno vreme isteka

0000002A  // Dužina komande (42 bajta)
00000004  // ID komande (SubmitSM)
00000002  // Redni broj
...
00        // Zakazano vreme isporuke
3233313231323332353935393030302B00  // "231212235959000+" (12. dec 2023. 23:59:59 UTC+0)
...

Interakcije sa drugim poljima

  • scheduled_delivery_time: Odbrojavanje validity period-a počinje od zakazanog vremena ako je postavljeno
  • priority_flag: Poruke visokog prioriteta mogu zameniti postavke validity period-a na nekim SMSC-ovima
  • registered_delivery: Potvrde o isporuci se šalju čak i nakon isteka validity period-a

Uobičajene greške

  • Korišćenje relativnog formata bez sufiksa 'R'
  • Postavljanje validity period-a dužeg od ograničenja SMSC-a (npr. maksimum 30 dana)
  • Neusklađenost vremenskih zona između zakazanog vremena i validity period-a
  • Pretpostavka da svi SMSC-ovi podržavaju relativni format (proveriti sa provajderom)
Napomena o ponašanju SMSC-a:
Mnogi SMSC-ovi konvertuju relativne periode u apsolutne vremenske oznake pri prijemu poruke. Odbrojavanje se nastavlja čak i ako se SMSC restartuje.

Validity Period vs podrazumevane vrednosti SMSC-a

Vrednost Validity Period-a Ponašanje SMSC-a
NULL ili 00 Koristi podrazumevanu vrednost SMSC-a (razlikuje se po provajderu)
Eksplicitna vrednost Poštuje vrednost (u okviru ograničenja SMSC-a)
Prošli timestamp Poruka se odmah odbacuje

Zaključak

Polje Validity Period je ključno za kontrolu životnog ciklusa poruka u SMPP-u. Dok apsolutne vremenske oznake pružaju preciznost, relativni formati nude jednostavnost za uobičajene slučajeve upotrebe. Uvek usklađujte postavke validity period-a sa politikama SMSC-a i testirajte granične slučajeve (npr. prelazak na letnje vreme). Za detaljne implementacije, pogledajte SMPP v3.4 odeljak 5.2.18 i GSM 03.40 dokumentaciju.

More information