SMPP
Dieses Protokoll definiert das SMPP-Kommunikationsprotokoll für den EngageLab SMS-Dienst mit dem Ziel, einen effizienten und zuverlässigen Nachrichtenversand und eine Statusberichterstattung über eine TCP-Verbindung zu erreichen. Die Schnittstelleninformationen umfassen IP-Adresse, Portnummer und die für die Verbindung erforderlichen Authentifizierungsdaten. Bitte stellen Sie sicher, dass Sie die Konfiguration mit dem Konto und Passwort, das von autorisierten Kanälen bereitgestellt wird, korrekt vornehmen.
SMPP-Adresse
otpsmpp.api.engagelab.cc
Bitte beziehen Sie die folgenden Informationen von autorisierten Kanälen (z. B. Vertrieb oder technischer Support):
- Port:
{ port } - Account:
{ system_id } - Password:
{ 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 Identitätsprüfung verwendet wird.
- password: Das zum Systemkonto gehörende Zugangspasswort, das zur Authentifizierung verwendet wird.
Serverantwort
Erfolgsantwort
- Der Server sendet eine Antwort mit dem Befehl
BindTransceiverResp(d. h.0x80000009). - Füllen Sie das Feld
system_idmit einem Wert, der dem empfangenen Feldsystem_identspricht.
Fehlerantwort
- Wenn die Authentifizierung fehlschlägt, trennt der Server die TCP-Verbindung und protokolliert den Grund für den Fehler.
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 sicher den SMS-Kanal für die Zustellung.
- Die Nachrichtenzustellung ist synchron, und das Ergebnis wird mit dem Befehl
SUBMIT_SM_RESP(d. h.0x80000004) beantwortet. - Der Zustellungsstatus wird per Nachricht gemeldet, Einzelheiten siehe Zustellbericht.
- Es wird empfohlen, die Codierung
UCS2zu verwenden, um Sonderzeichen und Internationalisierung zu unterstützen.
Client-Paket
Der Client sendet einen Befehl SUBMIT_SM (d. h. 0x00000004), um eine Nachricht zu übermitteln, und benötigt die folgenden Felder:
- service_type
- Werte:
MSG/CODE/MRKT - Standard:
MSG
- Werte:
- source_addr
- Kann leer gelassen werden, wird derzeit in SMS nicht verwendet.
- destination_addr
- Nachrichtenziel, muss im internationalen Mobilnummernformat vorliegen (z. B.
+6598765432).
- Nachrichtenziel, muss im internationalen Mobilnummernformat vorliegen (z. B.
- short_message
- Nachrichteninhalt, im JSON-Format, wie folgt strukturiert:{ "id": "xxx", // Template ID "language": "default", // Used language, 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", // Used language, 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 strukturiert:
- data_coding
- Es wird empfohlen, die Codierung
UCS2zu verwenden, um sicherzustellen, dass das Sonderzeichen{}korrekt geparst wird. - Wenn der direkte Versand von
{}unterstützt wird, kann die Standardcodierung (0x00) verwendet werden.
- Es wird empfohlen, die Codierung
- status in header
- Auf
0x00000000setzen.
- Auf
Serverantwort
Der Server sendet einen Befehl SUBMIT_SM_RESP (d. h. 0x80000004), um das Ergebnis der Nachrichtenzustellung zu beantworten.
Erfolgsantwort
- Wert des Felds status im header:
0x00000000 - MESSAGE_ID-Feld: Antwortnachrichten-ID, wird zur Zuordnung von Zustellberichten verwendet.
Fehlerantwort
- Der Server füllt das Feld status im header mit dem Grund für den Fehler:
| Statuscode | Beschreibung | Wert |
|---|---|---|
ESME_RINVPARAM |
Ungültige Parameter, Anfrageformat prüfen | 0x00000032 |
ESME_RSYSERR |
Interner Dienstfehler, später erneut versuchen | 0x00000008 |
ESME_RSUBMITFAIL |
Zustellung fehlgeschlagen, möglicherweise Vorlagenproblem | 0x00000045 |
ESME_RINVNUMMSGS |
Formatfehler im Inhalt von short_message |
0x00000055 |
ESME_RUNKNOWNERR |
Unbekannter Fehler, bitte Support kontaktieren | 0x000000FF |
Zustellbericht
Der Server meldet den Zustellungsstatus über den Befehl DELIVER_SM (d. h. 0x00000005). Die spezifischen 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
- Verwenden Sie das Format
delivery receipt, um den Zustellbericht zu kapseln.
- Verwenden Sie das Format
- ReceiptedMessageID in tlv
- Nachrichten-ID, wird zur Zuordnung und Identifizierung verwendet.
- MessageState in tlv
- Nachrichtenstatus, Feldwert
0x0427.
- Nachrichtenstatus, Feldwert
Statusauflösung
Im Feld short_message ist die Bedeutung von stat wie folgt:
| Status | Bedeutung |
|---|---|
DELIVRD |
Erfolgreich zugestellt |
UNDELIV |
Zustellung fehlgeschlagen |
Zusätzliche Informationen
Ungültige Befehle
Für ungültige, vom Client übermittelte Befehle gibt der Server einen Befehl GENERIC_NACK (d. h. 0x80000000) zurück und protokolliert ihn. Der Server unterstützt nur die folgenden Befehle:
EnquireLink-Befehl (d. h.0x00000015)Unbind-Befehl (d. h.0x00000006)SubmitSM-Befehl (d. h.0x00000004)DeliverSMResp-Befehl (d. h.0x80000005)BindTransceiver-Befehl (d. h.0x00000009)
Keep-alive
Der Client muss alle 30 Sekunden (Toleranz ±5 Sekunden) einen EnquireLink-Befehl (d. h. 0x00000015) senden, um sicherzustellen, dass die Verbindung aktiv bleibt.
Bedeutung der Versandstatus
| Statuscode | Bedeutung |
|---|---|
ESME_RINVPARAM |
Ungültige Parameter, Anfrageformat prüfen |
ESME_RINVNUMMSGS |
Formatfehler im Inhalt von short_message |
ESME_RSUBMITFAIL |
Zustellung fehlgeschlagen, möglicherweise Vorlagenproblem |
ESME_RSYSERR |
Interner Dienstfehler, später erneut versuchen |
ESME_RUNKNOWNERR |
Unbekannter Fehler, bitte Support kontaktieren |
DELIVRD |
Nachricht erfolgreich zugestellt |
UNDELIV |
Nachricht konnte nicht zugestellt werden |
Begriffserklärung
- 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, der vom Server verwendet wird, um den Zustellungsstatus von Nachrichten zu melden.










