Konfiguration der SMPP-Telefonnummernfelder
SMPP (Short Message Peer-to-Peer) ist ein Protokoll, das von Telekomsystemen verwendet wird, um SMS-Nachrichten zwischen SMSC (Short Message Service Centers) und ESMEs (External Short Messaging Entities) auszutauschen. Eine Schlüsselkomponente des Protokolls ist die Kodierung von Telefonnummern (Quell- und Zieladressen) in der SMPP-PDU (Protocol Data Unit).
Adressparameter in SMPP
Die wichtigsten Felder zur Definition einer Telefonnummer in SMPP sind:
- addr_ton (Type of Number)
- addr_npi (Numbering Plan Indicator)
- address_range oder source_addr/destination_addr
Type of Number (TON)
Dieses Feld definiert das Format der Nummer. Häufige Werte sind:
| Wert | TON | Beschreibung |
|---|---|---|
| 0 | Unbekannt | Unbekanntes Format |
| 1 | International | Nummer enthält Ländercode |
| 2 | National | Lokales Nummernformat |
| 5 | Alphanumerisch | Wird für Absendernamen wie "MeineFirma" verwendet |
Numbering Plan Indicator (NPI)
Dieses Feld gibt das Nummernformat an. Häufige Werte:
| Wert | NPI | Beschreibung |
|---|---|---|
| 0 | Unbekannt | Unbekanntes Format |
| 1 | ISDN (E.164) | Standardmäßiges internationales Telefonnummernformat |
| 3 | Daten | Datenetzwerk (X.121) |
Kodierung einer Adresse
Bei der Kodierung einer Telefonnummer in SMPP wird die Nummer als nullterminierte ASCII-Zeichenkette zusammen mit den entsprechenden TON- und NPI-Werten gesendet.
Beispiel:
Telefonnummer: +14155552671 TON: 1 (International) NPI: 1 (ISDN/E.164) Kodiert als: 31 34 31 35 35 35 35 32 36 37 31 00 (ASCII "14155552671" + NULL)
Beispiel-SMPP-PDU
Unten ist ein Beispiel einer submit_sm-PDU mit einer Zielnummer:
0000003F // Befehlslänge (63 Bytes)
00000004 // Befehls-ID (submit_sm)
00000000 // Befehlsstatus
00000001 // Sequenznummer
74657374 // service_type: "test"
01 // source_addr_ton: International
01 // source_addr_npi: ISDN
31323334 // source_addr: "1234" (ASCII)
00 // NULL-Terminator
01 // dest_addr_ton: International
01 // dest_addr_npi: ISDN
2B393138 // destination_addr: "+918123456789" (ASCII, ohne +)
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 (Standard GSM)
00 // sm_default_msg_id
0D // sm_length (13)
48656C6C // Kurznachricht ("Hello, World!")
6F2C2057
6F726C64
2100
Beispiel für alphanumerischen Absender
Bei Verwendung eines alphanumerischen Absendernamens (üblich für Einweg-Massen-SMS):
Absender: "MeineMarke" TON: 5 (Alphanumerisch) NPI: 0 (Unbekannt oder irrelevant) Kodiert: ASCII-Zeichenkette "MeineMarke" + NULL-Terminator
Wichtige Hinweise
- Alphanumerische Absenderkennungen dürfen maximal 11 Zeichen lang sein.
- Alphanumerische Adressen werden nicht in allen Ländern unterstützt.
- Stellen Sie sicher, dass TON und NPI korrekt mit Ihrem Adressformat übereinstimmen, um Routing-Probleme zu vermeiden.
Fazit
Die SMPP-Nummernkodierung ist entscheidend für die korrekte Zustellung von Nachrichten. Durch die korrekte Einstellung von TON, NPI und die richtige Kodierung der Adresse in ASCII (nullterminiert) können Entwickler die Kompatibilität mit SMSCs und Mobilfunknetzen sicherstellen.