Logo Site EngageLab Mark Colored TransparentDokumentation
Suchen

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_id mit einem Wert, der dem empfangenen Feld system_id entspricht.

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:

  1. Der Server analysiert den Anfrageinhalt und verwendet sicher den SMS-Kanal für die Zustellung.
  2. Die Nachrichtenzustellung ist synchron, und das Ergebnis wird mit dem Befehl SUBMIT_SM_RESP (d. h. 0x80000004) beantwortet.
  3. Der Zustellungsstatus wird per Nachricht gemeldet, Einzelheiten siehe Zustellbericht.
  4. Es wird empfohlen, die Codierung UCS2 zu 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:

  1. service_type
    • Werte: MSG / CODE / MRKT
    • Standard: MSG
  2. source_addr
    • Kann leer gelassen werden, wird derzeit in SMS nicht verwendet.
  3. destination_addr
    • Nachrichtenziel, muss im internationalen Mobilnummernformat vorliegen (z. B. +6598765432).
  4. 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
  5. data_coding
    • Es wird empfohlen, die Codierung UCS2 zu verwenden, um sicherzustellen, dass das Sonderzeichen {} korrekt geparst wird.
    • Wenn der direkte Versand von {} unterstützt wird, kann die Standardcodierung (0x00) verwendet werden.
  6. status in header
    • Auf 0x00000000 setzen.

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:

  1. service_type
    • Fester Wert: MSG
  2. source_addr
    • Leer lassen.
  3. destination_addr
    • Identisch mit destination_addr im Befehl SUBMIT_SM.
  4. data_coding
    • Codierungsmethode: Standardwert 0x00.
  5. esm_class
    • Auf 0x00 setzen.
  6. short_message
    • Verwenden Sie das Format delivery receipt, um den Zustellbericht zu kapseln.
  7. ReceiptedMessageID in tlv
    • Nachrichten-ID, wird zur Zuordnung und Identifizierung verwendet.
  8. MessageState in tlv
    • Nachrichtenstatus, Feldwert 0x0427.

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:

  1. EnquireLink-Befehl (d. h. 0x00000015)
  2. Unbind-Befehl (d. h. 0x00000006)
  3. SubmitSM-Befehl (d. h. 0x00000004)
  4. DeliverSMResp-Befehl (d. h. 0x80000005)
  5. 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.
Icon Solid Transparent White Qiyu
Vertrieb kontaktieren