Jak nakonfigurovat pole Validity Period v SMPP

Co je pole Validity Period?

Validity Period v SMPP (Short Message Peer-to-Peer Protocol) je pole ukončené nulou v PDU jako submit_sm, které definuje, jak dlouho se SMSC bude pokoušet doručit zprávu, než ji zahodí. Toto pole je klíčové pro:

  • Zabránění neomezeným pokusům o doručení nedoručitelných zpráv
  • Správu úložných zdrojů SMSC
  • Zpracování časově citlivého obsahu (např. OTP, akce)

Formát a struktura pole

Platnost používá stejný formát absolutního času jako naplánovaný čas doručení (specifikace SMPP v3.4):

RRMMDDhhmmssnnp

Kde komponenty odpovídají formátu naplánovaného času doručení. Podporovány jsou také běžné zkratky relativního formátu:

Formát Příklad Popis
Absolutní 231215235959000+ 15. prosince 2023 23:59:59 UTC+0
Relativní 000003000000000R 3 dny od odeslání
Speciální hodnoty:
- NULL: Použije výchozí platnost SMSC (obvykle 24-72 hodin)
- 00: Výchozí platnost SMSC (starší systémy)

Klíčové formáty platnosti

1. Absolutní časový formát

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

2. Relativní časový formát

00000X000000000R // X = Dny (00-99)
000003000000000R  // Platnost 3 dny

Příklady použití

1. Vypršení OTP (krátká platnost)

validity_period: "000000010000000R" // Platnost 1 hodina

2. Propagační kampaň (prodloužená platnost)

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

3. Vypršení o půlnoci (absolutní čas)

validity_period: "231215235959000+" // Vyprší 15. prosince 2023 23:59:59 UTC+0

Příklady SMPP PDU

Příklad 1: 24hodinová platnost (relativní formát)

0000001D  // Délka příkazu (29 bajtů)
00000004  // ID příkazu (SubmitSM)
00000001  // Číslo sekvence
...
00        // Příznak priority
00        // Naplánovaný čas doručení
303030303234303030303030305200  // "00002400000000R" (24 hodin)
00        // Registrované doručení
...

Příklad 2: Absolutní čas vypršení

0000002A  // Délka příkazu (42 bajtů)
00000004  // ID příkazu (SubmitSM)
00000002  // Číslo sekvence
...
00        // Naplánovaný čas doručení
3233313231323332353935393030302B00  // "231212235959000+" (12. prosince 2023 23:59:59 UTC+0)
...

Interakce s dalšími poli

  • scheduled_delivery_time: Odpočet platnosti začíná od naplánovaného času, pokud je nastaven
  • priority_flag: Vysoce prioritní zprávy mohou na některých SMSC přepsat nastavení platnosti
  • registered_delivery: Potvrzení o doručení jsou odesílána i po vypršení platnosti

Běžné problémy

  • Použití relativního formátu bez přípony 'R'
  • Nastavení platnosti delší než limity SMSC (např. max. 30 dní)
  • Nesoulad časových pásem mezi naplánovaným časem a platností
  • Předpoklad, že všechny SMSC podporují relativní formát (ověřte u poskytovatele)
Poznámka k chování SMSC:
Mnoho SMSC převádí relativní období na absolutní časová razítka při přijetí zprávy. Odpočet pokračuje, i když se SMSC restartuje.

Platnost vs. výchozí hodnoty SMSC

Hodnota platnosti Chování SMSC
NULL nebo 00 Použije výchozí hodnotu SMSC (liší se podle poskytovatele)
Explicitní hodnota Respektuje hodnotu (v rámci limitů SMSC)
Časová značka v minulosti Zpráva je okamžitě zahozena

Závěr

Pole Validity Period je nezbytné pro řízení životního cyklu zpráv v SMPP. Zatímco absolutní časová razítka poskytují přesnost, relativní formáty nabízejí jednoduchost pro běžné případy použití. Vždy koordinujte nastavení platnosti s politikami SMSC a testujte hraniční případy (např. přechody na letní čas). Pro podrobné implementace se řiďte SMPP v3.4, oddíl 5.2.18 a dokumentací GSM 03.40.

More information