SMPP-Schnittstelle
Schnittstelleninformationen
Dieses Protokoll definiert das SMPP-Kommunikationsprotokoll für den EngageLab OTP-Dienst und zielt darauf ab, über TCP-Verbindungen eine effiziente und zuverlässige Nachrichtenzustellung und Statusmeldung zu erreichen. Die Schnittstelleninformationen umfassen die für die Verbindung erforderliche IP-Adresse, Portnummer und Authentifizierungsinformationen. Bitte stellen Sie eine korrekte Konfiguration gemäß dem vom autorisierten Kanal bereitgestellten Konto und Passwort sicher.
SMPP-Adresse
SMPP-Adresse: otpsmpp.api.engagelab.cc Bitte beziehen Sie die folgenden Informationen von einem autorisierten Kanal (z. B. Vertrieb oder technischer Support):
- Port:
{ port } - Konto:
{ system_id } - Passwort:
{ password }
Verbindung herstellen
Client-Paket
Nach dem Herstellen einer TCP-Verbindung muss das erste Paket den Befehl BindTransceiver (d. h. 0x00000009) zur Authentifizierungsprüfung senden. Dieses Paket muss die folgenden Felder enthalten:
- system_id: Das dem Kunden zugewiesene Systemkonto, das zur Identifizierung der Identität dient.
- password: Das dem Systemkonto entsprechende Zugangspasswort, das zur Identitätsauthentifizierung dient.
Serverantwort
Erfolgsantwort
- Der Server sendet eine Antwort mit dem Befehl
BindTransceiverResp(d. h.0x80000009). - Das Feld
system_idwird mit einem Wert gefüllt, der mit dem empfangenen Feldsystem_idübereinstimmt.
Fehlerantwort
- Schlägt die Authentifizierung fehl, trennt der Server die TCP-Verbindung und protokolliert den Grund für das Fehlschlagen.
Nachrichtenversand
Serverlogik
Der Nachrichtenversand verwendet den Befehl SUBMIT_SM (d. h. 0x00000004), um Anfragen zur Nachrichtenzustellung zu übermitteln. Die Serverlogik ist wie folgt:
- Der Server analysiert den Anfrageinhalt und verwendet fest den SMS-Kanal für die Zustellung.
- Die Nachrichtenzustellung erfolgt im synchronen Modus, und das Ergebnis wird mit dem Befehl
SUBMIT_SM_RESP(d. h.0x80000004) beantwortet. - Der Zustellstatus wird über Nachrichten gemeldet, Einzelheiten siehe Zustellbericht.
- Es wird empfohlen, die
UCS2-Codierung zu verwenden, um Sonderzeichen und Internationalisierung zu unterstützen.
Client-Paket
Der Client sendet den Befehl SUBMIT_SM (d. h. 0x00000004), um eine Nachricht zu übermitteln, die die folgenden Felder enthalten muss:
- service_type
- Werte:
MSG/CODE/MRKT - Standardwert:
MSG
- Werte:
- source_addr
- Kann leer gelassen werden, wird derzeit in OTP nicht verwendet.
- destination_addr
- Nachrichtenziel, muss im internationalen Mobilfunknummernformat vorliegen (z. B.
+6598765432).
- Nachrichtenziel, muss im internationalen Mobilfunknummernformat vorliegen (z. B.
- short_message
- Nachrichteninhalt im JSON-Format, wie folgt:{ "id": "xxx", // Template ID "language": "default", // Language used, default is default "code": "xx", // Verification code, used only when service_type is code "params": { // Custom key-value pairs "key1": "val1" // val format is string } }
{ "id": "xxx", // Template ID "language": "default", // Language used, default is default "code": "xx", // Verification code, used only when service_type is code "params": { // Custom key-value pairs "key1": "val1" // val format is string } }Diesen Codeblock im schwebenden Fenster anzeigen
- Nachrichteninhalt im JSON-Format, wie folgt:
- data_coding
- Es wird empfohlen, die
UCS2-Codierung zu verwenden, um sicherzustellen, dass die Sonderzeichen{}normal verarbeitet werden. - Wird das direkte Senden von
{}unterstützt, kann die Standardcodierung (d. h.0x00) verwendet werden.
- Es wird empfohlen, die
- status im Header
- Auf
0x00000000gesetzt.
- Auf
Serverantwort
Der Server sendet den Befehl SUBMIT_SM_RESP (d. h. 0x80000004), um das Ergebnis der Nachrichtenzustellung zu beantworten.
Erfolgsantwort
- Wert des status-Felds im Header:
0x00000000 - MESSAGE_ID-Feld: Antwort-Nachrichten-ID, dient zur Zuordnung des Zustellberichts.
Fehlerantwort
- Der Server füllt das status-Feld im Header, um den Grund für das Fehlschlagen anzugeben:
| Statuscode | Beschreibung | Wert |
|---|---|---|
ESME_RINVPARAM |
Ungültiger Parameter, bitte Anfrageformat prüfen | 0x00000032 |
ESME_RSYSERR |
Interner Dienstfehler, bitte später erneut versuchen | 0x00000008 |
ESME_RSUBMITFAIL |
Zustellung fehlgeschlagen, möglicherweise aufgrund von Vorlagenproblemen oder anderen Gründen | 0x00000045 |
ESME_RINVNUMMSGS |
Formatfehler im Inhalt des Felds short_message |
0x00000055 |
ESME_RUNKNOWNERR |
Unbekannter Fehler, bitte technischen Support kontaktieren | 0x000000FF |
Zustellbericht
Der Server meldet den Zustellbericht über den Befehl DELIVER_SM (d. h. 0x00000005). Die einzelnen Felder sind wie folgt:
- service_type
- Fester Wert:
MSG
- Fester Wert:
- source_addr
- Leer lassen.
- destination_addr
- Übereinstimmend mit
destination_addrim BefehlSUBMIT_SM.
- Übereinstimmend mit
- data_coding
- Codierungsmethode: Standardwert
0x00.
- Codierungsmethode: Standardwert
- esm_class
- Auf
0x00gesetzt.
- Auf
- short_message
- Den Zustellbericht im Format
delivery receiptkapseln.
- Den Zustellbericht im Format
- ReceiptedMessageID in tlv
- Nachrichten-ID, dient zur Zuordnungskennzeichnung.
- MessageState in tlv
- Nachrichtenstatus, Feldwert
0x0427.
- Nachrichtenstatus, Feldwert
Statusanalyse
Im short_message-Feld ist die Bedeutung des Werts stat wie folgt:
| Status | Bedeutung |
|---|---|
DELIVRD |
Erfolgreich zugestellt |
UNDELIV |
Zustellung fehlgeschlagen |
Weitere Hinweise
Ungültige Befehle
Bei ungültigen, vom Client übermittelten Befehlen gibt der Server den Befehl GENERIC_NACK (d. h. 0x80000000) zurück und protokolliert die relevanten Logs. Der Server unterstützt nur die folgenden Befehle:
- Befehl
EnquireLink(d. h.0x00000015) - Befehl
Unbind(d. h.0x00000006) - Befehl
SubmitSM(d. h.0x00000004) - Befehl
DeliverSMResp(d. h.0x80000005) - Befehl
BindTransceiver(d. h.0x00000009)
Keep Alive
Der Client muss alle 30 Sekunden (Toleranz ±5 Sekunden) einen Befehl EnquireLink (d. h. 0x00000015) senden, um sicherzustellen, dass die Verbindung aktiv ist.
Bedeutung der Sendestatus
| Statuscode | Bedeutung |
|---|---|
ESME_RINVPARAM |
Ungültiger Parameter, bitte Anfrageformat prüfen |
ESME_RINVNUMMSGS |
Formatfehler im Inhalt des Felds short_message |
ESME_RSUBMITFAIL |
Zustellung fehlgeschlagen, möglicherweise aufgrund von Vorlagenproblemen oder anderen Gründen |
ESME_RSYSERR |
Interner Dienstfehler, bitte später erneut versuchen |
ESME_RUNKNOWNERR |
Unbekannter Fehler, bitte technischen Support kontaktieren |
DELIVRD |
Nachricht erfolgreich zugestellt |
UNDELIV |
Nachricht konnte nicht zugestellt werden |
Terminologie
- SMPP: Short Message Peer-to-Peer Protocol, wird für den Nachrichtenaustausch in SMS-Gateways verwendet.
- SUBMIT_SM: SMPP-Befehl zum Übermitteln von SMS-Nachrichten.
- DELIVER_SM: SMPP-Befehl, den der Server verwendet, um den Zustellstatus von Nachrichten zu melden.
Bei Fragen wenden Sie sich bitte an den OTP Technical Support.










