Jak skonfigurować pole Validity Period w SMPP
Co to jest pole Validity Period?
Validity Period w SMPP (Short Message Peer-to-Peer Protocol) to pole w postaci zakończonej znakiem null w PDU, takich jak submit_sm
, które określa,
jak długo SMSC będzie próbował dostarczyć wiadomość przed jej odrzuceniem. To pole jest kluczowe dla:
- Zapobiegania nieskończonym próbom dostarczenia nieosiągalnych wiadomości
- Zarządzania zasobami pamięci SMSC
- Obsługi treści wrażliwych na czas (np. OTP, promocje)
Format i struktura pola
Okres ważności używa tego samego formatu czasu absolutnego co zaplanowany czas dostawy (specyfikacja SMPP v3.4):
YYMMDDhhmmssnnp
Gdzie składniki pasują do formatu zaplanowanego czasu dostawy. Obsługiwane są również skróty formatu względnego:
Format | Przykład | Opis |
---|---|---|
Absolutny | 231215235959000+ |
15 grudnia 2023 23:59:59 UTC+0 |
Względny | 000003000000000R |
3 dni od czasu wysłania |
-
NULL
: Używa domyślnego okresu ważności SMSC (zazwyczaj 24-72 godziny)-
00
: Domyślny okres ważności SMSC (starsze systemy)
Kluczowe formaty Validity Period
1. Format czasu absolutnego
YYMMDDhhmmssnnp // Pełny format 231215143000000+ // 15 grudnia 2023 14:30:00 UTC+0
2. Format czasu względnego
00000X000000000R // X = Dni (00-99) 000003000000000R // 3 dni ważności
Przykłady zastosowań
1. Wygaśnięcie OTP (krótki okres ważności)
validity_period: "000000010000000R" // 1 godzina ważności
2. Kampania promocyjna (dłuższy okres ważności)
validity_period: "000007000000000R" // 7 dni ważności
3. Wygaśnięcie o północy (czas absolutny)
validity_period: "231215235959000+" // Wygasa 15 grudnia 2023 23:59:59 UTC+0
Przykłady PDU SMPP
Przykład 1: 24-godzinny okres ważności (format względny)
0000001D // Długość polecenia (29 bajtów) 00000004 // ID polecenia (SubmitSM) 00000001 // Numer sekwencji ... 00 // Flaga priorytetu 00 // Zaplanowany czas dostawy 303030303234303030303030305200 // "00002400000000R" (24 godziny) 00 // Zarejestrowana dostawa ...
Przykład 2: Absolutny czas wygaśnięcia
0000002A // Długość polecenia (42 bajty) 00000004 // ID polecenia (SubmitSM) 00000002 // Numer sekwencji ... 00 // Zaplanowany czas dostawy 3233313231323332353935393030302B00 // "231212235959000+" (12 grudnia 2023 23:59:59 UTC+0) ...
Interakcje z innymi polami
- scheduled_delivery_time: Odliczanie okresu ważności zaczyna się od zaplanowanego czasu, jeśli jest ustawiony
- priority_flag: Wiadomości o wysokim priorytecie mogą nadpisać ustawienia okresu ważności w niektórych SMSC
- registered_delivery: Potwierdzenia dostawy są wysyłane nawet po wygaśnięciu okresu ważności
Częste błędy
- Używanie formatu względnego bez sufiksu 'R'
- Ustawianie okresów ważności dłuższych niż limity SMSC (np. maksymalnie 30 dni)
- Niezgodność stref czasowych między zaplanowanym czasem a okresem ważności
- Założenie, że wszystkie SMSC obsługują format względny (należy to zweryfikować z dostawcą)
Wiele SMSC konwertuje okresy względne na znaczniki czasu absolutnego po otrzymaniu wiadomości. Odliczanie trwa nawet po restarcie SMSC.
Okres ważności a domyślne ustawienia SMSC
Wartość Validity Period | Zachowanie SMSC |
---|---|
NULL lub 00 | Używa domyślnego ustawienia SMSC (różni się w zależności od dostawcy) |
Jawna wartość | Przestrzega wartości (w granicach limitów SMSC) |
Znacznik czasu z przeszłości | Wiadomość odrzucana natychmiast |
Podsumowanie
Pole Validity Period jest niezbędne do kontrolowania cyklu życia wiadomości w SMPP. Chociaż znaczniki czasu absolutnego zapewniają precyzję, formaty względne oferują prostotę dla typowych przypadków użycia. Zawsze koordynuj ustawienia ważności z politykami SMSC i testuj przypadki brzegowe (np. zmiany czasu letniego). Szczegółowe implementacje można znaleźć w sekcji 5.2.18 specyfikacji SMPP v3.4 oraz w dokumentacji GSM 03.40.
More information
- Jak skonfigurować pole Typ usługi SMPP
- Jak skonfigurować pola numerów telefonów SMPP
- Jak skonfigurować pole klasy ESM SMPP
- Jak skonfigurować pole PID SMPP
- Jak skonfigurować pole priorytetu SMPP
- Jak skonfigurować pole zaplanowanego czasu SMPP
- Jak skonfigurować pole okresu ważności SMPP
- Jak skonfigurować pole zarejestrowanej dostawy SMPP
- Jak skonfigurować pole Zastąp jeśli obecne SMPP
- Jak skonfigurować pole sm_default_msg_id
- Jak skonfigurować pole DCS SMPP
- Jak obliczyć pole długości wiadomości SMPP
- Jak umieścić dane w polu SM SMPP