Jak skonfigurować pole ESM Class w SMPP
Ustawienia klasy ESM w Ozeki SMS Gateway
Ozeki SMS Gateway umożliwia ręczną konfigurację pola klasy ESM (Rysunek 1)
Co to jest pole klasy ESM?
Rozszerzona klasa wiadomości usługowej (ESM) w SMPP to 1-bajtowe pole w PDU SMPP, które kontroluje zaawansowane funkcje obsługi wiadomości.
Jest używane w operacjach submit_sm
, deliver_sm
i data_sm
do określenia:
- Typów wiadomości (np. SMS, potwierdzenie dostarczenia)
- Zachowania potwierdzenia dostarczenia
- Obecności nagłówka UDH (User Data Header)
- Priorytetu wiadomości i flag routingu
Struktura klasy ESM i maska bitowa
Klasa ESM to maska bitowa, w której każdy bit lub grupa bitów aktywuje określone funkcje:
Bity | Opis |
---|---|
7 | Tryb wiadomości: 0 = Domyślny, 1 = Datagram |
6 | Typ wiadomości: 0 = Normalny, 1 = Potwierdzenie dostarczenia |
5 | Wskaźnik UDHI: 1 = UDH obecny w ładunku |
4 | Ścieżka odpowiedzi: 1 = Żądana ścieżka odpowiedzi |
3-2 | Priorytet wiadomości (00 = Normalny, 01 = Interaktywny, 10 = Pilny, 11 = Nagły) |
1-0 | Zarezerwowane |
Typowe wartości klasy ESM
ESM (Hex) | Binarnie | Opis |
---|---|---|
0x00 | 00000000 | Domyślne (brak specjalnej obsługi) |
0x04 | 00000100 | Flaga UDHI ustawiona (UDH obecny) |
0x08 | 00001000 | Żądana ścieżka odpowiedzi |
0x20 | 00100000 | Potwierdzenie dostarczenia (bit 6 = 1) |
0x30 | 00110000 | Priorytet pilny + potwierdzenie dostarczenia |
0x60 | 01100000 | Tryb datagramu + potwierdzenie dostarczenia |
Kluczowe przypadki użycia
1. Złożone SMS-y (flaga UDHI)
Podczas wysyłania wiadomości wieloczęściowych ustaw bit 5 (UDHI=1) i dołącz nagłówek danych użytkownika (UDH) do ładunku. Przykład dla wiadomości 3-częściowej:
Klasa ESM: 0x40 (binarnie 01000000: UDHI włączone) Ładunek: 05 00 03 02 01 // UDH (5 bajtów: IEI=00, IEDL=03, część 1 z 2) C8329BFD06 // Ładunek GSM-7 ("Hello")
2. Żądania potwierdzenia dostarczenia
Ustaw bit 6 (0x20), aby zażądać potwierdzenia dostarczenia. Często łączone z polem registered_delivery
:
Klasa ESM: 0x20 (binarnie 00100000) registered_delivery: 0x01 (żądanie potwierdzenia)
3. Wiadomości priorytetowe
Użyj bitów 3-2, aby nadać priorytet wiadomościom. Przykład dla priorytetu pilnego:
Klasa ESM: 0x10 (binarnie 00010000: Priorytet pilny)
Przykładowe PDU SMPP
Przykład 1: Podstawowy SMS (ESM=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 (0x00: Domyślna) 00 // ID protokołu (PID) 00 // Priorytet 00 // Czas dostarczenia harmonogramu 00 // Okres ważności 00 // Zarejestrowana dostawa 00 // Zamień-jeśli-obecny 00 // Kodowanie danych (DCS=0x00) 00 // Domyślny ID wiadomości SM 07 // Długość SM (7 septetów) C8329BFD06DDDF72 // Ładunek ("Hello!")
Przykład 2: Złożony SMS (ESM=0x40)
00000025 // Długość polecenia (37 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") 40 // Klasa ESM (0x40: UDHI włączone) 00 // ID protokołu (PID) 00 // Priorytet 00 // Czas dostarczenia harmonogramu 00 // Okres ważności 00 // Zarejestrowana dostawa 00 // Zamień-jeśli-obecny 00 // Kodowanie danych (DCS=0x00) 00 // Domyślny ID wiadomości SM 0C // Długość SM (12 bajtów) 0500030201C8329BFD06DDDF72 // UDH + "Hello" (Część 1/2)
Przykład 3: Potwierdzenie dostarczenia (ESM=0x20)
0000001D // Długość polecenia (29 bajtów) 00000004 // ID polecenia (SubmitSM) 00000003 // 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") 20 // Klasa ESM (0x20: Potwierdzenie dostarczenia) 00 // ID protokołu (PID) 00 // Priorytet 00 // Czas dostarczenia harmonogramu 00 // Okres ważności 01 // Zarejestrowana dostawa (żądanie potwierdzenia) 00 // Zamień-jeśli-obecny 00 // Kodowanie danych (DCS=0x00) 00 // Domyślny ID wiadomości SM 07 // Długość SM (7 septetów) C8329BFD06DDDF72 // Ładunek ("Hello!")
Interakcje z innymi polami
- UDHI (ESM) + DCS: Jeśli UDHI jest ustawione, upewnij się, że DCS obsługuje UDH (np. GSM-7 lub 8-bitowy).
- Klasa ESM + registered_delivery: Użyj obu, aby wyraźnie zażądać potwierdzenia dostarczenia.
- Bity priorytetu + flaga priorytetu: Niektóre SMSC ustalają priorytet wiadomości na podstawie bitów ESM zamiast osobnego pola priorytetu.
Typowe pułapki
- Ustawienie UDHI bez dołączenia prawidłowego nagłówka danych użytkownika.
- Używanie flag potwierdzenia dostarczenia (ESM=0x20) bez ustawienia
registered_delivery
. - Niezgodność bitów priorytetu ESM z osobnym polem
priority_flag
.
Klasa ESM to potężne narzędzie do kontrolowania zachowania wiadomości w SMPP. Jej projekt oparty na bitmasce umożliwia funkcje takie jak łączenie, potwierdzenia odbioru i priorytetyzację. Zawsze sprawdzaj wsparcie SMSC dla zaawansowanych flag i dokładnie testuj konfiguracje. W celu uzyskania autorytatywnych szczegółów, odwołaj się do specyfikacji SMPP w wersji 3.4 lub 5.0.
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