Jak skonfigurować pola numeru telefonu w SMPP
SMPP (Short Message Peer-to-Peer) to protokół używany przez systemy telekomunikacyjne do wymiany wiadomości SMS między SMSC (Short Message Service Centers) a ESME (External Short Messaging Entities). Kluczowym elementem protokołu jest sposób kodowania numerów telefonów (adresów źródłowych i docelowych) w SMPP PDU (Protocol Data Unit).
Parametry adresu w SMPP
Główne pola używane do definiowania numeru telefonu w SMPP to:
- addr_ton (Type of Number)
- addr_npi (Numbering Plan Indicator)
- address_range lub source_addr/destination_addr
Type of Number (TON)
To pole definiuje format numeru. Typowe wartości to:
Wartość | TON | Opis |
---|---|---|
0 | Nieznany | Nieznany format |
1 | Międzynarodowy | Numer zawiera kod kraju |
2 | Krajowy | Lokalny format numeru |
5 | Alfanumeryczny | Używany dla nazw nadawców, np. "MojaFirma" |
Numbering Plan Indicator (NPI)
To pole wskazuje format numeracji. Typowe wartości:
Wartość | NPI | Opis |
---|---|---|
0 | Nieznany | Nieznany format |
1 | ISDN (E.164) | Standardowy międzynarodowy format numeru telefonu |
3 | Dane | Sieć danych (X.121) |
Kodowanie adresu
Podczas kodowania numeru telefonu w SMPP system wysyła numer jako ciąg znaków ASCII zakończony znakiem NULL, wraz z odpowiednimi wartościami TON i NPI.
Przykład:
Numer telefonu: +14155552671 TON: 1 (Międzynarodowy) NPI: 1 (ISDN/E.164) Zakodowany jako: 31 34 31 35 35 35 35 32 36 37 31 00 (ASCII "14155552671" + NULL)
Przykładowe SMPP PDU
Poniżej znajduje się przykład PDU submit_sm zawierającego numer docelowy:
0000003F // Długość polecenia (63 bajty) 00000004 // ID polecenia (submit_sm) 00000000 // Status polecenia 00000001 // Numer sekwencyjny 74657374 // service_type: "test" 01 // source_addr_ton: Międzynarodowy 01 // source_addr_npi: ISDN 31323334 // source_addr: "1234" (ASCII) 00 // NULL terminator 01 // dest_addr_ton: Międzynarodowy 01 // dest_addr_npi: ISDN 2B393138 // destination_addr: "+918123456789" (ASCII, bez +) 31323334 35363738 3900 // NULL terminator 00 // esm_class 00 // protocol_id 00 // priority_flag 00 // schedule_delivery_time (null) 00 // validity_period (null) 00 // registered_delivery 00 // replace_if_present_flag 00 // data_coding (domyślnie GSM) 00 // sm_default_msg_id 0D // sm_length (13) 48656C6C // Short message ("Hello, World!") 6F2C2057 6F726C64 2100
Przykład nadawcy alfanumerycznego
Przy użyciu alfanumerycznej nazwy nadawcy (częste dla masowych SMS-ów jednokierunkowych):
Nadawca: "MyBrand" TON: 5 (Alfanumeryczny) NPI: 0 (Nieznany lub nieistotny) Zakodowany: ciąg ASCII "MyBrand" + NULL terminator
Ważne uwagi
- Alfanumeryczne identyfikatory nadawcy muszą mieć 11 znaków lub mniej.
- Adresy alfanumeryczne nie są obsługiwane we wszystkich krajach.
- Zawsze dopasuj TON i NPI poprawnie do formatu adresu, aby uniknąć problemów z routingiem.
Podsumowanie
Kodowanie numerów w SMPP jest kluczowe dla zapewnienia prawidłowej dostawy wiadomości. Ustawiając poprawne wartości TON
, NPI
i kodując adres poprawnie w ASCII (zakończony NULL), programiści mogą zapewnić kompatybilność z SMSC i sieciami komórkowymi.
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