Jak skonfigurować pole Priority w SMPP
Co to jest pole Priority?
Flaga Priority w SMPP (Short Message Peer-to-Peer Protocol) to 1-bajtowe pole w PDU SMPP, takich jak submit_sm i deliver_sm.
Wskazuje ono pilność wiadomości, wpływając na sposób, w jaki SMSC (Short Message Service Centers) obsługują kolejkowanie, ponowne próby dostarczenia i routing.
Kluczowe przypadki użycia obejmują:
- Priorytetyzowanie alertów awaryjnych nad SMS-ami promocyjnymi
- Optymalizację alokacji zasobów sieciowych
- Spełnianie wymagań SLA dla wiadomości o wysokim priorytecie
Wartości pola Priority i ich interpretacja
Zdefiniowana w SMPP v3.4 flaga priority używa 4-bitowej wartości (choć zazwyczaj używane są tylko wartości 0-3):
| Priority (Hex) | Dziesiętnie | Opis |
|---|---|---|
| 0x00 | 0 | Najniższy priorytet (wiadomości masowe) |
| 0x01 | 1 | Normalny priorytet (standardowe SMS-y) |
| 0x02 | 2 | Priorytet interaktywny (czasowo wrażliwy) |
| 0x03 | 3 | Najwyższy priorytet (alerty awaryjne) |
Jak Priority wpływa na obsługę wiadomości
1. Zachowanie kolejkowania
Wiadomości o wysokim priorytecie przeskakują na początek kolejek SMSC. Przykład:
Priority 3: Dostarczane przed wiadomościami Priority 0
2. Ponowne próby dostarczenia
Wyższe priorytety mogą otrzymać więcej prób dostarczenia. Przykładowa polityka SMSC:
Priority 3: 5 prób w ciągu 24 godzin
Priority 0: 2 próby w ciągu 2 godzin
3. Routing sieciowy
Niektóre SMSC routują wiadomości o wysokim priorytecie przez dedykowane kanały.
Przykładowe PDU SMPP
Przykład 1: SMS masowy (Priority=0x00)
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 (PID)
00 // Flaga Priority (0x00: Najniższy)
00 // Czas planowanego dostarczenia
00 // Okres ważności
00 // Zarejestrowane dostarczenie
00 // Zastąp-jeśli-obecne
00 // Kodowanie danych (DCS=0x00)
00 // Domyślne ID wiadomości SM
07 // Długość SM (7 septetów)
C8329BFD06DDDF72 // Ładunek ("Hello!")
Przykład 2: Alert awaryjny (Priority=0x03)
0000001D // Długość polecenia (29 bajtów)
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 (PID)
03 // Flaga Priority (0x03: Najwyższy)
00 // Czas planowanego dostarczenia
FF // Okres ważności (maks.)
01 // Zarejestrowane dostarczenie (potwierdzenie)
00 // Zastąp-jeśli-obecne
00 // Kodowanie danych (DCS=0x00)
00 // Domyślne ID wiadomości SM
0A // Długość SM (10 septetów)
E8329BFD0E... // Ładunek ("ALERT: Flood!")
Interakcje z innymi polami
- Bity Priority w klasie ESM: Bity 3-2 klasy ESM mogą nadpisać to pole w niektórych SMSC.
- validity_period: Wiadomości o wysokim priorytecie często mają krótszy okres ważności (np. 1 godzina vs 3 dni).
- registered_delivery: Wiadomości Priority 3 często wymagają potwierdzeń dostarczenia.
Typowe pułapki
- Zakładanie, że wszystkie SMSC respektują poziomy priorytetów (należy to zweryfikować z dostawcą)
- Mylenie Priority SMPP z
TP-Status-Report-Indicationw GSM - Ustawianie Priority=3 dla treści niebędących alarmami (może naruszać przepisy)
- Niezgodność Priority i validity_period (np. Priority=3 z validity=7 dni)
W niektórych krajach użycie Priority=3 jest ograniczone do uprawnionych podmiotów (np. alerty rządowe).
Priority vs bity Priority w klasie ESM
| Pole | Bity | Poziomy priorytetów | Typowe użycie |
|---|---|---|---|
| Flaga Priority SMPP | Cały oktet | 0-3 | Priorytet end-to-end |
| Klasa ESM (bity 3-2) | 2 bity | 00=Normalny, 01=Interaktywny, 10=Pilny, 11=Awaryjny | Priorytetyzacja na poziomie sieci |
Podsumowanie
Pole Priority jest kluczowe dla zarządzania pilnością dostarczania SMS-ów, ale wymaga starannej koordynacji z możliwościami SMSC i przepisami. Zawsze testuj zachowanie priorytetów z dostawcą i dostosuj ustawienia do lokalnych wytycznych telekomunikacyjnych. Szczegółowe implementacje można znaleźć w SMPP v3.4 Sekcja 5.2.12 i dokumentacji GSM 03.40.