Cum să configurezi câmpul Validity Period în SMPP
Ce este câmpul Validity Period?
Validity Period în SMPP (Short Message Peer-to-Peer Protocol) este un câmp de tip șir de caractere terminat cu null în PDU-uri precum submit_sm
care definește
durata în care un SMSC va încerca să livreze un mesaj înainte de a-l elimina. Acest câmp este critic pentru:
- Prevenirea încercărilor indefinite pentru mesaje nedeliverabile
- Gestionarea resurselor de stocare ale SMSC
- Prelucrarea conținutului sensibil la timp (de ex., OTP-uri, promoții)
Formatul și structura câmpului
Perioada de valabilitate utilizează același format de timp absolut ca și timpul de livrare programat (specificația SMPP v3.4):
YYMMDDhhmmssnnp
Unde componentele corespund formatului timpului de livrare programat. Sunt acceptate și formate relative comune:
Format | Exemplu | Descriere |
---|---|---|
Absolut | 231215235959000+ |
15 dec. 2023 23:59:59 UTC+0 |
Relativ | 000003000000000R |
3 zile de la momentul trimiterii |
-
NULL
: Utilizează valoarea implicită a SMSC (de obicei 24-72 de ore)-
00
: Valoarea implicită a SMSC (sisteme vechi)
Formate cheie pentru Validity Period
1. Format de timp absolut
YYMMDDhhmmssnnp // Format complet 231215143000000+ // 15 dec. 2023 14:30:00 UTC+0
2. Format de timp relativ
00000X000000000R // X = Zile (00-99) 000003000000000R // 3 zile valabilitate
Cazuri de utilizare
1. Expirare OTP (Valabilitate scurtă)
validity_period: "000000010000000R" // 1 oră valabilitate
2. Campanie promoțională (Valabilitate extinsă)
validity_period: "000007000000000R" // 7 zile valabilitate
3. Expirare la miezul nopții (Timp absolut)
validity_period: "231215235959000+" // Expiră 15 dec. 2023 23:59:59 UTC+0
Exemple de PDU-uri SMPP
Exemplul 1: Valabilitate 24 de ore (Format relativ)
0000001D // Lungimea comenzii (29 de octeți) 00000004 // ID-ul comenzii (SubmitSM) 00000001 // Numărul de secvență ... 00 // Flag de prioritate 00 // Timp de livrare programat 303030303234303030303030305200 // "00002400000000R" (24 de ore) 00 // Livrare înregistrată ...
Exemplul 2: Timp de expirare absolut
0000002A // Lungimea comenzii (42 de octeți) 00000004 // ID-ul comenzii (SubmitSM) 00000002 // Numărul de secvență ... 00 // Timp de livrare programat 3233313231323332353935393030302B00 // "231212235959000+" (12 dec. 2023 23:59:59 UTC+0) ...
Interacțiuni cu alte câmpuri
- scheduled_delivery_time: Perioada de valabilitate începe de la timpul programat dacă este setat
- priority_flag: Mesajele cu prioritate mare pot suprascrie setările de valabilitate pe unele SMSC-uri
- registered_delivery: Confirmările de livrare sunt trimise chiar și după expirarea perioadei de valabilitate
Grese comune
- Utilizarea formatului relativ fără sufixul 'R'
- Setarea perioadelor de valabilitate mai lungi decât limitele SMSC (de ex., maxim 30 de zile)
- Neconcordanța fusurilor orare între timpul programat și perioada de valabilitate
- Presupunerea că toate SMSC-urile acceptă formatul relativ (verifică cu furnizorul)
Multe SMSC-uri convertesc perioadele relative în timestamp-uri absolute la primirea mesajului. Numărătoarea inversă continuă chiar dacă SMSC-ul repornește.
Perioada de valabilitate vs. Valori implicite SMSC
Valoarea Validity Period | Comportament SMSC |
---|---|
NULL sau 00 | Folosește valoarea implicită a SMSC (variază în funcție de furnizor) |
Valoare explicită | Respectă valoarea (în limitele SMSC) |
Timestamp în trecut | Mesaj eliminat imediat |
Concluzie
Câmpul Validity Period este esențial pentru controlul ciclului de viață al mesajelor în SMPP. În timp ce timestamp-urile absolute oferă precizie, formatele relative oferă simplitate pentru cazurile comune. Coordonează întotdeauna setările de valabilitate cu politicile SMSC și testează cazurile limită (de ex., tranziții la ora de vară). Pentru implementări detaliate, consultă Secțiunea 5.2.18 din SMPP v3.4 și documentația 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