Jak skonfigurować pole Scheduled Delivery Time w SMPP
Co to jest pole Scheduled Delivery Time?
Pole Scheduled Delivery Time w SMPP (Short Message Peer-to-Peer Protocol) to opcjonalny parametr w PDU submit_sm
,
który umożliwia zaplanowanie wysłania wiadomości na określoną datę i godzinę w przyszłości. To pole jest kluczowe dla:
- Opóźnienia dostarczenia wiadomości poza godziny szczytu
- Planowania kampanii czasowych (np. życzenia urodzinowe)
- Koordynacji wiadomości w różnych strefach czasowych
Format i struktura pola
Specyfikacja SMPP v3.4 definiuje to pole jako C-Octet String
(zakończony znakiem null) z określonym formatem daty i godziny:
YYMMDDhhmmssnnp
Gdzie:
Składnik | Opis | Zakres |
---|---|---|
YY | Dwie ostatnie cyfry roku | 00-99 |
MM | Miesiąc | 01-12 |
DD | Dzień | 01-31 |
hh | Godzina (format 24h) | 00-23 |
mm | Minuta | 00-59 |
ss | Sekunda | 00-59 |
nn | Ułamki sekund (opcjonalne) | 00-99 |
p | Przesunięcie strefy czasowej (np. +, -) | +/- followed by 4 digits (HHMM) |
-
NULL
(natychmiastowe dostarczenie)-
000000000000000
(natychmiastowe dostarczenie, systemy legacy)
Przykładowe ciągi czasowe
Cząg czasowy | Interpretacja |
---|---|
231015143000000+ |
15 paź 2023 14:30:00 UTC+0 |
231015143000000-0800 |
15 paź 2023 14:30:00 UTC-08:00 |
000000000000000 |
Natychmiastowe dostarczenie (legacy) |
NULL |
Natychmiastowe dostarczenie (zalecane) |
Przykłady zastosowań
1. Wiadomości urodzinowe
Zaplanuj wiadomość na dokładnie północ w dniu urodzin odbiorcy:
scheduled_delivery_time: "231016000000000+" // 16 paź 2023 00:00:00 UTC+0
2. Dostarczenie poza godzinami szczytu
Unikaj przeciążenia sieci, wysyłając masowe wiadomości w nocy:
scheduled_delivery_time: "231015020000000+" // 15 paź 2023 02:00:00 UTC+0
3. Koordynacja stref czasowych
Dostarcz wiadomości o 9 rano czasu lokalnego dla odbiorców w Nowym Jorku (UTC-5):
scheduled_delivery_time: "231015090000000-0500" // 15 paź 2023 09:00:00 UTC-05:00
Przykładowe PDU SMPP
Przykład 1: Natychmiastowe dostarczenie (NULL)
0000001D // Długość polecenia (29 bajtów) 00000004 // ID polecenia (SubmitSM) 00000001 // Numer sekwencji 00 // Źródłowy TON 00 // Źródłowy NPI 736F7572636500 // Adres źródłowy ("source") 00 // Docelowy TON 00 // Docelowy NPI 36353433323100 // Adres docelowy ("654321") 00 // Klasa ESM 00 // ID protokołu 00 // Flaga priorytetu 00 // Scheduled Delivery Time (NULL: natychmiastowe) 00 // Okres ważności 00 // Zarejestrowane dostarczenie 00 // Zastąp jeśli obecne 00 // Kodowanie danych (DCS=0x00) 00 // Domyślny ID wiadomości SM 07 // Długość SM (7 septetów) C8329BFD06DDDF72 // Zawartość ("Hello!")
Przykład 2: Dostarczenie w przyszłości (15 paź 2023 14:30 UTC)
0000002A // Długość polecenia (42 bajty) 00000004 // ID polecenia (SubmitSM) 00000002 // Numer sekwencji 00 // Źródłowy TON 00 // Źródłowy NPI 736F7572636500 // Adres źródłowy ("source") 00 // Docelowy TON 00 // Docelowy NPI 36353433323100 // Adres docelowy ("654321") 00 // Klasa ESM 00 // ID protokołu 00 // Flaga priorytetu 3233313031353134333030303030302B00 // "231015143000000+" (16 bajtów + null) 00 // Okres ważności 00 // Zarejestrowane dostarczenie 00 // Zastąp jeśli obecne 00 // Kodowanie danych (DCS=0x00) 00 // Domyślny ID wiadomości SM 07 // Długość SM (7 septetów) C8329BFD06DDDF72 // Zawartość ("Hello!")
Interakcje z innymi polami
- validity_period: Określa, jak długo SMSC będzie próbować dostarczyć wiadomość. Odliczanie zaczyna się od zaplanowanego czasu.
- priority_flag: Wiadomości o wyższym priorytecie mogą omijać kolejki planowania w niektórych SMSC.
Częste problemy
- Używanie czasu lokalnego bez określenia przesunięcia strefy czasowej.
- Nieprawidłowe formatowanie ciągu daty (np. nieprawidłowy miesiąc "13").
- Założenie, że wszystkie SMSC obsługują zaplanowane dostarczenie (należy to zweryfikować z dostawcą).
- Ustawienie czasu w przeszłości, co powoduje natychmiastowe dostarczenie.
Niektóre SMSC ignorują ułamki sekund (
nn
) lub ograniczają, jak daleko w przyszłość można zaplanować wiadomości (np. maksymalnie 7 dni).
Podsumowanie
Pole Scheduled Delivery Time umożliwia precyzyjną kontrolę nad czasem dostarczenia wiadomości SMS. Właściwe użycie wymaga starannego formatowania ciągów czasowych i koordynacji z możliwościami SMSC. Zawsze testuj zaplanowane wiadomości z dostawcą i odwołuj się do specyfikacji SMPP v3.4 w przypadku szczególnych sytuacji (np. lata przestępne, zmiany stref czasowych).
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