OTP SMPP Integration Guide - Enhance Your Security with SMPP
Schnittstelleninformationen
Dieses Protokoll definiert das SMPP-Protokoll für OTP-Dienste und gewährleistet eine effiziente und zuverlässige Nachrichtenübermittlung sowie Statusberichte über TCP-Verbindungen. Die Schnittstelleninformationen umfassen IP-Adresse, Port und Authentifizierungsdaten. Bitte stellen Sie sicher, dass die von autorisierten Kanälen bereitgestellten Zugangsdaten korrekt konfiguriert sind.
SMPP-Adresse
Bitte fordern Sie die folgenden Informationen über autorisierte Kanäle (z. B. Vertrieb oder technischer Support) an:
- IP-Adresse:
{ ip } - Port:
{ port } - Account:
{ system_id } - Passwort:
{ password }
Verbindungsaufbau
Client-Datenpaket
Nach Aufbau der TCP-Verbindung muss das erste Datenpaket den Befehl BindTransceiver (0x00000009) zur Authentifizierung senden. Das Paket muss folgende Felder enthalten:
- system_id: Das dem Client zugewiesene Systemkonto zur Authentifizierung.
- password: Das zugehörige Passwort zur Authentifizierung.
Server-Antwort
Erfolgreiche Antwort
- Der Server sendet als Antwort den Befehl
BindTransceiverResp(0x80000009). - Das Feld
system_idwird mit dem im Request übermittelten Wert ausgefüllt.
Fehlgeschlagene Antwort
- Bei fehlgeschlagener Authentifizierung trennt der Server die TCP-Verbindung und protokolliert den Grund.
Nachrichtenübermittlung
Server-Logik
Der Versand von Nachrichten erfolgt über den Befehl SUBMIT_SM (0x00000004) zur Übermittlung von Nachrichtenanfragen. Die Server-Logik ist wie folgt:
- Der Server analysiert den Anfrageinhalt und nutzt den SMS-Kanal zur Zustellung.
- Die Nachrichten werden synchron verarbeitet und das Ergebnis wird mit dem Befehl
SUBMIT_SM_RESP(0x80000004) zurückgemeldet. - Zustellberichte werden gemäß Abschnitt Zustellbericht gesendet.
- Es wird empfohlen,
UCS2-Codierung zu verwenden, um Sonderzeichen und Internationalisierung zu unterstützen.
Client-Datenpaket
Der Client sendet den Befehl SUBMIT_SM (0x00000004) mit folgenden Feldern:
- service_type
- Werte:
MSG/CODE/MRKT - Standard:
MSG
- Werte:
- source_addr
- Kann leer bleiben; wird aktuell für OTP nicht verwendet.
- destination_addr
- Zielnummer im internationalen Telefonnummernformat (z. B.
+491701234567).
- Zielnummer im internationalen Telefonnummernformat (z. B.
- short_message
- Nachrichteninhalt im JSON-Format, Beispiel:{ "id": "xxx", // Vorlagen-ID "language": "default", // Sprache, Standard ist "default" "code": "xx", // Verifizierungscode, bei service_type "CODE" "params": { // Benutzerdefinierte Schlüssel-Wert-Paare "key1": "val1" // Wert muss ein String sein } }
{ "id": "xxx", // Vorlagen-ID "language": "default", // Sprache, Standard ist "default" "code": "xx", // Verifizierungscode, bei service_type "CODE" "params": { // Benutzerdefinierte Schlüssel-Wert-Paare "key1": "val1" // Wert muss ein String sein } }Diesen Codeblock im schwebenden Fenster anzeigen
- Nachrichteninhalt im JSON-Format, Beispiel:
- data_coding
- Es wird empfohlen,
UCS2zu verwenden, damit Sonderzeichen wie{}korrekt verarbeitet werden. - Falls
{}direkt gesendet werden kann, kann die Standardcodierung (0x00) verwendet werden.
- Es wird empfohlen,
- header status
- Auf
0x00000000setzen.
- Auf
Server-Antwort
Der Server antwortet auf Versandanforderungen mit dem Befehl SUBMIT_SM_RESP (0x80000004).
Erfolgreiche Antwort
- header status Feldwert:
0x00000000 - MESSAGE_ID Feld: Die Nachrichten-ID zur Zuordnung von Zustellberichten.
Fehlgeschlagene Antwort
- Der Server füllt das header status Feld aus, um den Fehlergrund anzugeben:
| Status-Code | Beschreibung | Wert |
|---|---|---|
ESME_RINVPARAM |
Ungültige Parameter, bitte prüfen Sie die Anfrage | 0x00000032 |
ESME_RSYSERR |
Interner Serverfehler, später erneut versuchen | 0x00000008 |
ESME_RSUBMITFAIL |
Zustellung fehlgeschlagen, evtl. Templatefehler | 0x00000045 |
ESME_RINVNUMMSGS |
Ungültiges short_message-Format |
0x00000055 |
ESME_RUNKNOWNERR |
Unbekannter Fehler, technischen Support kontaktieren | 0x000000FF |
Zustellbericht
Der Server übermittelt Zustellergebnisse mit dem Befehl DELIVER_SM (0x00000005). Die Felder sind wie folgt:
- service_type
- Fester Wert:
MSG
- Fester Wert:
- source_addr
- Leer.
- destination_addr
- Entspricht dem Feld
destination_addrim BefehlSUBMIT_SM.
- Entspricht dem Feld
- data_coding
- Codierungsmethode: Standardwert
0x00.
- Codierungsmethode: Standardwert
- esm_class
- Auf
0x00setzen.
- Auf
- short_message
- Enthält den Zustellbericht im
delivery receipt-Format.
- Enthält den Zustellbericht im
- ReceiptedMessageID in tlv
- Nachrichten-ID zur Zuordnung.
- MessageState in tlv
- Nachrichtenstatus, Feldwert
0x0427.
- Nachrichtenstatus, Feldwert
Statusauswertung
Das Feld short_message enthält das Attribut stat, das Folgendes angibt:
| Status | Bedeutung |
|---|---|
DELIVRD |
Erfolgreich zugestellt |
UNDELIV |
Zustellung fehlgeschlagen |
Weitere Informationen
Ungültige Befehle
Bei ungültigen Befehlen antwortet der Server mit dem Befehl GENERIC_NACK (0x80000000) und protokolliert das Ereignis. Der Server unterstützt nur folgende Befehle:
EnquireLink(0x00000015)Unbind(0x00000006)SubmitSM(0x00000004)DeliverSMResp(0x80000005)BindTransceiver(0x00000009)
Verbindung aufrechterhalten
Der Client muss alle 30 Sekunden (±5 Sekunden) den Befehl EnquireLink (0x00000015) senden, um die Verbindung aufrechtzuerhalten.
Bedeutung der Zustellstatus
| Status-Code | Bedeutung |
|---|---|
ESME_RINVPARAM |
Ungültige Parameter, bitte prüfen Sie die Anfrage |
ESME_RINVNUMMSGS |
Ungültiges short_message-Format |
ESME_RSUBMITFAIL |
Zustellung fehlgeschlagen, evtl. Templatefehler |
ESME_RSYSERR |
Interner Serverfehler, später erneut versuchen |
ESME_RUNKNOWNERR |
Unbekannter Fehler, technischen Support kontaktieren |
DELIVRD |
Erfolgreich zugestellt |
UNDELIV |
Zustellung fehlgeschlagen |
Begriffsdefinitionen
- SMPP: Short Message Peer-to-Peer Protocol für den Nachrichtenaustausch zwischen SMS-Gateways.
- SUBMIT_SM: SMPP-Befehl zum Übermitteln von Nachrichten.
- DELIVER_SM: SMPP-Befehl zur Übermittlung des Zustellstatus.
Bei Fragen wenden Sie sich bitte an den technischen Support.

