SMPP-API
API-Informationen
Dieses Protokoll definiert das SMPP-Kommunikationsprotokoll für den EngageLab-OTP-Dienst und wurde entwickelt, um eine effiziente und zuverlässige Nachrichtenübermittlung sowie Statusberichte über TCP-Verbindungen zu ermöglichen. Die API-Informationen umfassen die für die Verbindung erforderliche IP-Adresse, Portnummer und Authentifizierungsdetails. Bitte stellen Sie sicher, dass das über autorisierte Kanäle bereitgestellte Konto und Passwort korrekt konfiguriert sind.
SMPP-Adresse
SMPP-Adresse: otpsmpp.api.engagelab.cc
Bitte beziehen Sie die folgenden Informationen über einen autorisierten Kanal, z. B. über den Business- oder technischen Support:
- Port:
{ port } - Account:
{ system_id } - Password:
{ password }
Verbindungsaufbau
Client-Paket
Nach dem Aufbau der TCP-Verbindung muss das erste Paket zur Authentifizierung den Befehl BindTransceiver (0x00000009) senden. Dieses Paket muss die folgenden Felder enthalten:
- system_id: Das dem Client zugewiesene Systemkonto, das zur Identifizierung des Clients verwendet wird.
- password: Das dem Systemkonto zugeordnete Zugriffspasswort, das zur Authentifizierung verwendet wird.
Serverantwort
Erfolgreiche Antwort
- Der Server gibt den Befehl
BindTransceiverResp(0x80000009) zurück. - Das Feld
system_idwird mit demselben Wert gefüllt wie das empfangene Feldsystem_id.
Fehlgeschlagene Antwort
- Wenn die Authentifizierung fehlschlägt, trennt der Server die TCP-Verbindung und protokolliert den Grund für den Fehler.
Nachrichtenversand
Serverlogik
Für den Nachrichtenversand wird der Befehl SUBMIT_SM (0x00000004) verwendet, um eine Anfrage zur Nachrichtenzustellung zu übermitteln. Die Serverlogik ist wie folgt:
- Der Server analysiert den Anfrageinhalt und verwendet für die Zustellung immer den SMS-Kanal.
- Die Nachrichtenzustellung erfolgt synchron, und das Ergebnis wird über den Befehl
SUBMIT_SM_RESP(0x80000004) zurückgegeben. - Der Zustellstatus wird über Zustellberichte gemeldet. Weitere Informationen finden Sie unter Zustellberichte.
- Es wird empfohlen, die Codierung
UCS2zu verwenden, um Sonderzeichen und Internationalisierung zu unterstützen.
Client-Paket
Der Client sendet den Befehl SUBMIT_SM (0x00000004), um eine Nachricht zu übermitteln. Das Paket muss die folgenden Felder enthalten:
service_type
- Wert:
MSG/CODE/MRKT - Standardwert:
MSG
- Wert:
source_addr
- Kann leer gelassen werden und wird derzeit in OTP nicht verwendet.
destination_addr
- Das Nachrichtenziel, das im internationalen Mobilfunknummernformat angegeben werden muss (zum Beispiel
+6598765432).
- Das Nachrichtenziel, das im internationalen Mobilfunknummernformat angegeben werden muss (zum Beispiel
short_message
- Der Nachrichteninhalt verwendet das JSON-Format, wie unten gezeigt:{ "id": "xxx", // Vorlagen-ID "language": "default", // Verwendete Sprache; Standard ist default "code": "xx", // Bestätigungscode; wird nur verwendet, wenn service_type CODE ist "params": { // Benutzerdefinierte Schlüssel-Wert-Paare "key1": "val1" // val muss im String-Format vorliegen } }
{ "id": "xxx", // Vorlagen-ID "language": "default", // Verwendete Sprache; Standard ist default "code": "xx", // Bestätigungscode; wird nur verwendet, wenn service_type CODE ist "params": { // Benutzerdefinierte Schlüssel-Wert-Paare "key1": "val1" // val muss im String-Format vorliegen } }Diesen Codeblock im schwebenden Fenster anzeigen
- Der Nachrichteninhalt verwendet das JSON-Format, wie unten gezeigt:
data_coding
- Es wird empfohlen, die Codierung
UCS2zu verwenden, um sicherzustellen, dass Sonderzeichen wie{}korrekt verarbeitet werden. - Wenn die direkte Übertragung von
{}unterstützt wird, kann die Standardcodierung verwendet werden (0x00).
- Es wird empfohlen, die Codierung
status im Header
- Auf
0x00000000setzen.
- Auf
Serverantwort
Der Server sendet den Befehl SUBMIT_SM_RESP (0x80000004) als Antwort auf das Ergebnis der Nachrichtenzustellung.
Erfolgreiche Antwort
- Wert des status-Felds im Header:
0x00000000 - MESSAGE_ID-Feld: Die Antwort-Nachrichten-ID, die zur Zuordnung von Zustellberichten verwendet wird.
Fehlgeschlagene Antwort
- Der Server füllt das status-Feld im Header aus, um den Grund für den Fehler anzugeben:
| Status Code | Beschreibung | Value |
|---|---|---|
ESME_RINVPARAM |
Ungültiger Parameter. Bitte überprüfen Sie das Format des Anfrageinhalts. | 0x00000032 |
ESME_RSYSERR |
Interner Dienstfehler. Es wird empfohlen, es später erneut zu versuchen. | 0x00000008 |
ESME_RSUBMITFAIL |
Zustellung fehlgeschlagen, möglicherweise aufgrund eines Vorlagenproblems oder aus anderen Gründen. | 0x00000045 |
ESME_RINVNUMMSGS |
Falsches Inhaltsformat im Feld short_message. |
0x00000055 |
ESME_RUNKNOWNERR |
Unbekannter Fehler. Bitte wenden Sie sich an den technischen Support. | 0x000000FF |
Zustellberichte
Der Server meldet den Zustellstatus über den Befehl DELIVER_SM (0x00000005). Die relevanten Felder sind wie folgt:
service_type
- Fester Wert:
MSG
- Fester Wert:
source_addr
- Leer lassen.
destination_addr
- Identisch mit
destination_addrim BefehlSUBMIT_SM.
- Identisch mit
data_coding
- Codierungsmethode: Standardwert
0x00.
- Codierungsmethode: Standardwert
esm_class
- Auf
0x00setzen.
- Auf
short_message
- Der Zustellbericht wird im Format
delivery receiptverpackt.
- Der Zustellbericht wird im Format
ReceiptedMessageID in TLV
- Nachrichten-ID, verwendet zur Zuordnung und Identifizierung.
MessageState in TLV
- Nachrichtenstatus, Feldwert
0x0427.
- Nachrichtenstatus, Feldwert
Statusanalyse
Im Feld short_message sind die Bedeutungen der stat-Werte wie folgt:
| Status | Bedeutung |
|---|---|
DELIVRD |
Erfolgreich zugestellt |
UNDELIV |
Zustellung fehlgeschlagen |
Weitere Hinweise
Ungültige Befehle
Für ungültige, vom Client übermittelte Befehle gibt der Server den Befehl GENERIC_NACK (0x80000000) zurück und protokolliert die entsprechenden Logs. Der Server unterstützt nur die folgenden Befehle:
EnquireLink-Befehl (0x00000015)Unbind-Befehl (0x00000006)SubmitSM-Befehl (0x00000004)DeliverSMResp-Befehl (0x80000005)BindTransceiver-Befehl (0x00000009)
Keepalive
Der Client muss alle 30 Sekunden (Toleranz: ±5 Sekunden) den Befehl EnquireLink (0x00000015) senden, um sicherzustellen, dass die Verbindung aktiv bleibt.
Bedeutung des Sendestatus
| Status Code | Bedeutung |
|---|---|
ESME_RINVPARAM |
Ungültiger Parameter. Bitte überprüfen Sie das Format des Anfrageinhalts. |
ESME_RINVNUMMSGS |
Falsches Inhaltsformat im Feld short_message. |
ESME_RSUBMITFAIL |
Zustellung fehlgeschlagen, möglicherweise aufgrund eines Vorlagenproblems oder aus anderen Gründen. |
ESME_RSYSERR |
Interner Dienstfehler. Es wird empfohlen, es später erneut zu versuchen. |
ESME_RUNKNOWNERR |
Unbekannter Fehler. Bitte wenden Sie sich an den technischen Support. |
DELIVRD |
Nachricht erfolgreich zugestellt |
UNDELIV |
Nachricht konnte nicht zugestellt werden |
Terminologie
- SMPP: Short Message Peer-to-Peer Protocol, verwendet für den Nachrichtenaustausch mit SMS-Gateways.
- SUBMIT_SM: Der SMPP-Befehl zum Übermitteln von SMS-Nachrichten.
- DELIVER_SM: Der vom Server verwendete SMPP-Befehl zur Meldung des Nachrichtenzustellstatus.
Wenn Sie Fragen haben, wenden Sie sich bitte an den OTP Technical Support.










