Ako nakonfigurovať pole Validity Period v SMPP

Čo je pole Validity Period?

Validity Period v SMPP (Short Message Peer-to-Peer Protocol) je pole ukončené nulou v PDU ako submit_sm, ktoré definuje, ako dlho sa SMSC pokúsi doručiť správu pred jej zahodením. Toto pole je kritické pre:

  • Zabránenie nekonečným pokusom o doručenie nedoručiteľných správ
  • Riadenie zdrojov úložiska SMSC
  • Spracovanie časovo citlivého obsahu (napr. OTP, propagačné akcie)

Formát a štruktúra poľa

Platnosť používa rovnaký formát absolútneho času ako naplánovaný čas doručenia (špecifikácia SMPP v3.4):

RRMMDDhhmmssnnp

Kde komponenty zodpovedajú formátu naplánovaného času doručenia. Podporované sú aj bežné skratky relatívneho formátu:

Formát Príklad Popis
Absolútny 231215235959000+ 15. dec. 2023 23:59:59 UTC+0
Relatívny 000003000000000R 3 dni od času odoslania
Špeciálne hodnoty:
- NULL: Použije sa predvolená platnosť SMSC (typicky 24-72 hodín)
- 00: Predvolená platnosť SMSC (staršie systémy)

Kľúčové formáty platnosti

1. Absolútny časový formát

RRMMDDhhmmssnnp // Úplný formát
231215143000000+  // 15. dec. 2023 14:30:00 UTC+0

2. Relatívny časový formát

00000X000000000R // X = Dni (00-99)
000003000000000R  // 3 dni platnosti

Prípady použitia

1. Exspirácia OTP (krátka platnosť)

validity_period: "000000010000000R" // 1 hodina platnosti

2. Propagačná kampaň (predĺžená platnosť)

validity_period: "000007000000000R" // 7 dní platnosti

3. Exspirácia o polnoci (absolútny čas)

validity_period: "231215235959000+" // Exspiruje 15. dec. 2023 23:59:59 UTC+0

Príklady SMPP PDU

Príklad 1: 24-hodinová platnosť (relatívny formát)

0000001D  // Dĺžka príkazu (29 bajtov)
00000004  // ID príkazu (SubmitSM)
00000001  // Poradové číslo
...
00        // Príznak priority
00        // Naplánovaný čas doručenia
303030303234303030303030305200  // "00002400000000R" (24 hodín)
00        // Registrované doručenie
...

Príklad 2: Absolútny čas exspirácie

0000002A  // Dĺžka príkazu (42 bajtov)
00000004  // ID príkazu (SubmitSM)
00000002  // Poradové číslo
...
00        // Naplánovaný čas doručenia
3233313231323332353935393030302B00  // "231212235959000+" (12. dec. 2023 23:59:59 UTC+0)
...

Interakcie s inými poľami

  • scheduled_delivery_time: Odpočítavanie platnosti začína od naplánovaného času, ak je nastavený
  • priority_flag: Správy s vysokou prioritou môžu na niektorých SMSC prepísať nastavenia platnosti
  • registered_delivery: Potvrdenia o doručení sa odosielajú aj po exspirácii platnosti

Bežné problémy

  • Použitie relatívneho formátu bez prípony 'R'
  • Nastavenie platnosti dlhšej ako limity SMSC (napr. max. 30 dní)
  • Nesúlad časových pásiem medzi naplánovaným časom a platnosťou
  • Predpoklad, že všetky SMSC podporujú relatívny formát (overte si u poskytovateľa)
Poznámka k správaniu SMSC:
Mnohé SMSC konvertujú relatívne obdobia na absolútne časové pečiatky pri prijatí správy. Odpočítavanie pokračuje aj v prípade reštartu SMSC.

Platnosť vs predvolené hodnoty SMSC

Hodnota platnosti Správanie SMSC
NULL alebo 00 Použije predvolenú hodnotu SMSC (líši sa podľa poskytovateľa)
Explicitná hodnota Rešpektuje hodnotu (v rámci limitov SMSC)
Časová pečiatka v minulosti Správa sa okamžite zahodí

Záver

Pole Validity Period je nevyhnutné pre kontrolu životného cyklu správ v SMPP. Zatiaľ čo absolútne časové pečiatky poskytujú presnosť, relatívne formáty ponúkajú jednoduchosť pre bežné prípady použitia. Vždy koordinujte nastavenia platnosti s politikami SMSC a testujte hraničné prípady (napr. prechod na letný čas). Pre podrobné implementácie si pozrite sekciu 5.2.18 špecifikácie SMPP v3.4 a dokumentáciu GSM 03.40.

More information