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 |
-
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)
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
- How to configure the SMPP Service Type field
- How to configure the SMPP Phone Number fields
- How to configure the SMPP ESM Class field
- How to configure the SMPP PID field
- How to configure the SMPP Prioirity field
- How to configure the SMPP Scheduled Time field
- How to configure the SMPP Validity Period field
- How to configure the SMPP Registered Delivery field
- How to configure the SMPP Replace if Present field
- How to configure the sm_default_msg_id field
- How to configure the SMPP DCS field
- How to calculate the SMPP SM Length field
- How to put data into the SMPP SM field