Kako konfigurirati polje Validity Period u SMPP-u

Što je polje Validity Period?

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

  • Sprečavanje beskonačnih ponovnih pokušaja za nedostupne poruke
  • Upravljanje resursima pohrane SMSC-a
  • Rukovanje vremenski osjetljivim sadržajem (npr. OTP-ovi, promocije)

Format i struktura polja

Validity period koristi isti format apsolutnog vremena kao i zakazano vrijeme isporuke (SMPP verzija 3.4 specifikacija):

YYMMDDhhmmssnnp

Gdje komponente odgovaraju formatu zakazanog vremena isporuke. Podržani su i uobičajeni relativni formati:

Format Primjer Opis
Apsolutni 231215235959000+ 15. prosinca 2023. 23:59:59 UTC+0
Relativni 000003000000000R 3 dana od vremena slanja
Posebne vrijednosti:
- NULL: Koristi zadani SMSC validity period (obično 24-72 sata)
- 00: Zadani SMSC validity period (stari sustavi)

Ključni formati Validity Period-a

1. Format apsolutnog vremena

YYMMDDhhmmssnnp // Potpuni format
231215143000000+  // 15. prosinca 2023. 14:30:00 UTC+0

2. Format relativnog vremena

00000X000000000R // X = Dani (00-99)
000003000000000R  // 3 dana valjanosti

Primjene

1. Istek OTP-a (kratka valjanost)

validity_period: "000000010000000R" // 1 sat valjanosti

2. Promotivna kampanja (produžena valjanost)

validity_period: "000007000000000R" // 7 dana valjanosti

3. Istek u ponoć (apsolutno vrijeme)

validity_period: "231215235959000+" // Istječe 15. prosinca 2023. 23:59:59 UTC+0

Primjeri SMPP PDU-ova

Primjer 1: 24-satna valjanost (relativni format)

0000001D  // Duljina naredbe (29 bajtova)
00000004  // ID naredbe (SubmitSM)
00000001  // Redni broj
...
00        // Zastavica prioriteta
00        // Zakazano vrijeme isporuke
303030303234303030303030305200  // "00002400000000R" (24 sata)
00        // Registrirana isporuka
...

Primjer 2: Apsolutno vrijeme isteka

0000002A  // Duljina naredbe (42 bajta)
00000004  // ID naredbe (SubmitSM)
00000002  // Redni broj
...
00        // Zakazano vrijeme isporuke
3233313231323332353935393030302B00  // "231212235959000+" (12. prosinca 2023. 23:59:59 UTC+0)
...

Interakcije s drugim poljima

  • scheduled_delivery_time: Odbrojavanje validity perioda počinje od zakazanog vremena ako je postavljeno
  • priority_flag: Poruke visokog prioriteta mogu nadjačati postavke validity perioda na nekim SMSC-ovima
  • registered_delivery: Potvrde isporuke se šalju čak i nakon isteka validity perioda

Uobičajene zamke

  • Korištenje relativnog formata bez sufiksa 'R'
  • Postavljanje validity perioda dužih od SMSC ograničenja (npr. maksimalno 30 dana)
  • Neusklađenost vremenskih zona između zakazanog vremena i validity perioda
  • Pretpostavka da svi SMSC-ovi podržavaju relativni format (provjerite s pružateljem usluge)
Napomena o ponašanju SMSC-a:
Mnogi SMSC-ovi pretvaraju relativne periode u apsolutne vremenske oznake prilikom primitka poruke. Odbrojavanje se nastavlja čak i ako se SMSC ponovno pokrene.

Validity Period vs zadane vrijednosti SMSC-a

Vrijednost Validity Period-a Ponašanje SMSC-a
NULL ili 00 Koristi zadane vrijednosti SMSC-a (razlikuje se ovisno o pružatelju)
Eksplicitna vrijednost Poštuje vrijednost (unutar SMSC ograničenja)
Prošla vremenska oznaka Poruka se odmah odbacuje

Zaključak

Polje Validity Period ključno je za kontrolu životnog ciklusa poruke u SMPP-u. Dok apsolutne vremenske oznake pružaju preciznost, relativni formati nude jednostavnost za uobičajene slučajeve upotrebe. Uvijek usklađujte postavke validity perioda s SMSC politikama i testirajte rubne slučajeve (npr. prijelaz na ljetno vrijeme). Za detaljne implementacije, pogledajte SMPP v3.4 odjeljak 5.2.18 i GSM 03.40 dokumentaciju.

More information