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)
Uwaga: Wartości 0x04-0x0F są zarezerwowane. Większość SMSC ignoruje te bity.

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-Indication w 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)
Uwaga regulacyjna:
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.

More information