SMPP-Bindung mit bind_transceiver
Diese Seite behandelt das SMPP-Bind-Verfahren. Die SMPP-Bindung ist die Verbindungsaufbauanfrage auf dem SMPP-Link. Diese Anleitung erklärt, wie sich ein SMPP-Client mit einem SMPP-Server verbindet, indem er eine SMPP-Bind-Anfrage sendet. Sie erläutert die Unterschiede zwischen den möglichen Verbindungsmodi (Transmitter, Receiver und Transceiver) und gibt Einblicke in die Verbindung mehrerer Clients mit demselben SMPP-Benutzerkonto.
Was ist SMPP-Bindung
Die SMPP-Bindung ist die erste PDU, die nach der Herstellung eines SMPP-Links gesendet wird. SMPP-Software, wie z.B. Ozeki SMS Gateway, sendet die SMPP-Bind-PDU, um sich bei einem SMSC anzumelden. Eine SMPP-Bind-PDU enthält den Benutzernamen und das Passwort.
Wie wird eine SMPP-Verbindung hergestellt
Beim Aufbau einer SMPP-Verbindung werden die folgenden Schritte durchgeführt:
- Der SMPP-Client initiiert die Verbindung
- Der TCP/IP-Link wird verbunden
- Bei SMPPS-Verbindungen wird ein SSL-Handshake durchgeführt
- Der Client setzt die Sequenznummer der bind_transceiver-PDU auf 0
- Der Client fügt den SMPP-Benutzernamen in die bind_transceiver-PDU ein
- Der Client fügt das SMPP-Passwort in die bind_transceiver-PDU ein
- Der Client sendet die bind_transceiver-PDU
- Der Server überprüft den Benutzernamen (SMPP-System-ID) und das Passwort
- Wenn die Authentifizierung erfolgreich ist, wird der Fehlercode 0 gesetzt.
- Der Server sendet die bind_transceiver_resp-PDU zurück.
- Der SMPP-Client ist bereit zum Versenden von SMS
SMPP-Verbindungsaufbau erklärt
Abbildung 1 erklärt den SMPP-Verbindungsaufbau. Sie können sehen, dass der SMPP-Client die Verbindung initiiert und eine einzelne Transaktion für die Authentifizierung verwendet wird. Sie können auch sehen, dass nach erfolgreicher Anmeldung SMS-Nachrichten mit der submit_sm-PDU gesendet werden können. Eingehende Zustellberichte und eingehende SMS-Nachrichten können mit der deliver_sm-PDU empfangen werden.
Einführung in SMPP-Bind-Anfragen
SMPP-Bind-Anfragen werden verwendet, um eine SMPP-Verbindung aufzubauen. Sie werden vom SMPP-Client an den SMPP-Server gesendet, wenn sich der SMPP-Client anmelden möchte. Es gibt 3 Arten von Bind-Anfragen: SMPP bind_transmitter, SMPP bind_receiver und SMPP bind_transceiver. Die SMPP bind_transmitter kann nur zum Versenden von SMS-Nachrichten verwendet werden, die bind_receiver nur zum Empfangen von SMS-Nachrichten und die bind_transceiver kann für beides verwendet werden. SMPP bind_transceiver ist die gebräuchlichste Methode. Sie ist beliebt, weil sie eine einzelne Verbindung ermöglicht, die gleichzeitig SMS-Nachrichten senden und empfangen kann.
Was ist bind_transmitter
Die SMPP bind_transmitter-PDU wird von den SMPP-Client-Verbindungen gesendet, um sich auf eine Weise zu verbinden, die ausschließlich für das Versenden von SMS-Nachrichten vorgesehen ist. Diese Verbindung kann nicht zum Empfangen von SMS-Nachrichten verwendet werden. Diese Bind-Methode wird selten verwendet. Die meisten Clients verbinden sich jetzt mit bind_transceiver.
Was ist bind_receiver
Die SMPP bind_receiver-PDU wird von den SMPP-Client-Verbindungen gesendet, um sich auf eine Weise zu verbinden, die ausschließlich für das Empfangen von SMS-Nachrichten vorgesehen ist. Diese Verbindung kann nicht zum Versenden von SMS-Nachrichten verwendet werden. Diese Bind-Methode wird selten verwendet. Die meisten Clients verbinden sich jetzt mit bind_transceiver.
Was ist bind_transceiver
Die SMPP bind_transceiver-PDU wird von den SMPP-Client-Verbindungen gesendet, um sich auf eine Weise zu verbinden, die sowohl das Senden als auch das Empfangen von SMS-Nachrichten ermöglicht. Die meisten SMPP-Client-Verbindungen werden mit dieser Verbindungsmethode eingerichtet.
Sollte ich mich mit transceiver, transmitter oder bind_receiver verbinden?
Von den drei SMPP-Betriebsmodi sollte der SMPP-Client (oft als ESME bezeichnet) den bind_transceiver-Modus wählen. Dies ermöglicht es, dieselbe Verbindung sowohl zum Senden als auch zum Empfangen von SMS-Nachrichten zu verwenden. Die Verwendung einer einzelnen bind_transceiver-Verbindung ähnelt einer Transmitter- und Receiver-Verbindung über denselben Netzwerklink und ermöglicht gleichzeitiges Senden und Empfangen.
Video-Tutorial zum SMPP-Verbindungsaufbau
Das folgende Video zeigt, wie Sie eine SMPP-Client-Verbindung einrichten und sich mit der SMPP bind_transceiver-PDU bei einem SMPP-Server anmelden können. Das Video zeigt die Perspektive des SMPP-Clients.
Wie verbindet sich ein SMPP-Client mit dem SMPP-Server?
Wenn sich ein SMPP-Client mit Ihrem SMPP-Server verbindet, stellt er zunächst eine TCP/IP-Verbindung her. Wenn Sie einen sicheren SMPP-Server auf Basis von SMPPS verwenden, findet nach der TCP/IP-Verbindung ein SSL-Handshake statt. Der nächste Schritt erfolgt auf der Anwendungsschicht, der SMPP-Schicht. In der SMPP-Protokoll-Schicht ist die erste PDU, die vom Client gesendet wird, eine SMPP bind_transceiver-PDU. Diese PDU enthält den Benutzernamen (oft als SMPP-System-ID bezeichnet) und das Passwort. Der Server überprüft diese Anmeldedaten und entscheidet, ob die Client-Verbindung akzeptiert wird. Wenn die Anmeldedaten korrekt sind, gibt der Server eine SMPP bind_transceiver_resp-Antwort ohne Fehlercode zurück. (Abbildung 2)
SMPP bind_transceiver Beispiel
Der folgende Log-Ausschnitt wurde aus dem Log der Ozeki 10 SMPP-Client-Verbindung entnommen. Sie können einen standardmäßigen SMPP-Verbindungsaufbau sehen. Wenn Sie das Log lesen, werden Sie feststellen, dass zunächst die TCP/IP-Verbindung hergestellt wird und danach ein SMPP bind_transceiver PDU gesendet wird. Der SMPP-Server antwortete mit einer bind_transceiver_resp Antwort. Die Ozeki 10 SMS Gateway akzeptierte diese Antwort und schrieb "Erfolgreiche Anmeldung." ins Log.
2021-04-06 12:06:09.082 INFO SMPP_client_1: [TCP client] Verbindung zu 192.168.93.113:9550 wird hergestellt. 2021-04-06 12:06:09.082 INFO SMPP_client_1: Verbunden von 192.168.93.6:33444 zu 192.168.93.113:9550. 2021-04-06 12:06:09.082 INFO SMPP_client_1: <- 00000030000000090000000000000001736D703100717765313233004F5A454B493130003401012B3030303030303000 2021-04-06 12:06:09.082 INFO SMPP_client_1: -> 0000001C8000000900000000000000014F5A454B4953595354454D00 2021-04-06 12:06:09.082 INFO SMPP_client_1: Erfolgreiche Anmeldung. 2021-04-06 12:06:09.082 INFO SMPP_client_1: Verbindung online.
Annahme von SMPP-Clients auf dem SMPP-Server
Wenn Sie eigenen SMPP-Server betreiben, erstellen Sie SMPP-Benutzernamen und Passwörter, um eingehende SMPP-Client-Verbindungen zu akzeptieren. Ihre Kunden geben ihre Benutzernamen und Passwörter zusammen mit der IP-Adresse und dem SMPP-Port Ihres SMPP-Servers in die Konfiguration ihrer SMPP-Client-Software ein. Danach verbindet sich ihre Software mit Ihrem System.
Einige SMPP-Server erlauben nur eine einzige Verbindung mit demselben Benutzernamen und Passwort. Der Ozeki 10 SMPP-Server ermöglicht es Ihren Kunden, sich von mehreren Computern gleichzeitig zu verbinden. Alternativ können sie mehrere TCP-Verbindungen vom selben Computer aus herstellen und sich mit demselben Benutzernamen und Passwort verbinden. Dies wird als mehrfache SMPP-Bindung bezeichnet.
Wie man SMPP bind verwendet, um mehrere SMPP-Clients zu verbinden
Abbildung 3 zeigt, wie ein einzelner Kunde namens Kunde "A" sich mit dem selben SMPP-Server mit einem einzigen Benutzernamen und Passwort über mehrere SMPP- Bind-Anfragen verbinden kann. In diesem Setup kann der Kunde ein bind_transceiver PDU auf allen seinen Verbindungen senden.
Video-Tutorial zur Annahme mehrerer Client-Verbindungen
Das folgende Video zeigt, wie Sie die Ozeki 10 SMS-Gateway mit einem einzigen SMPP-Benutzerkonto konfigurieren können, um mehrere Client-Verbindungen zu akzeptieren. Kurz gesagt, ist keine besondere Konfiguration erforderlich. Sobald Sie den Benutzernamen und das Passwort der Verbindung zuweisen, können mehrere Clients eine Verbindung herstellen. In diesem Fall empfehlen wir, dass Sie die SMPP-Low-Level-Protokollierung aktivieren (wie im Video gezeigt), um sicherzustellen, dass Sie wissen, wo jede Ihrer SMPP-Nachrichten landet. Das SMPP-Low-Level-Log zeigt Ihnen, welcher SMPP-Client ein bestimmtes SMPP-PDU gesendet hat, und Sie sehen die entsprechende Antwort vom SMPP-Server.
Debugging eingehender bind_transceiver-Anfragen
Wenn Sie das SMPP-Kommunikationsprotokoll sorgfältig untersuchen, werden Sie feststellen, dass die eingehenden SMPP-Bind-Anfragen nicht im Protokoll eines bestimmten SMPP-Benutzers zu finden sind. Dies liegt daran, dass, wenn dieses PDU eintrifft, noch kein Benutzer der Verbindung zugewiesen ist. Um die SMPP-Bind-Anfragen zu sehen, müssen Sie das Konfigurationsformular des SMPP- Servers öffnen. Dies kann durch Klicken auf die Schaltfläche "Erweitert" in der Symbolleiste und dann durch Auswahl der Seite "Details" des SMPP-Servers erfolgen (Abbildung 4).
Auf der SMPP-Detailseite sehen Sie sofort die eingehenden SMPP-Bind-PDUs. Es ist erwähnenswert, dass die Antwort-PDUs hier nicht aufgeführt sind. Genauer gesagt, werden sie hier nur für fehlgeschlagene Anmeldeversuche aufgelistet. Sobald ein SMPP-Benutzer erfolgreich mit einem Benutzernamen und Passwort identifiziert wurde, werden die Protokolle der entsprechenden SMPP-Client-Verbindungen in das Protokoll dieses Benutzers geschrieben. (Abbildung 5)
Wer ist mit meinem SMPP-Server verbunden?
Wenn Sie die Detailseite eines SMPP-Benutzers öffnen, können Sie die aktuell verbundenen Clients im Abschnitt "Verbundene Clients" des linken Panels sehen. Hier werden Sie die remote TCP/IP-Endpunkte für jeden Client sehen. Diese Endpunkte werden verwendet, um die Protokolleinträge für einen bestimmten Client im SMPP-Low-Level-Kommunikationsprotokoll zu identifizieren, das Sie im linken Panel finden können (Abbildung 6).
Wenn einer der SMPP-Clients eine SMS über die SMPP submit_sm-Anfrage sendet, wird der entsprechende SMPP-Submit-Bericht (submit_sm_resp genannt) über dieselbe Verbindung zurückgegeben. Dies ermöglicht es SMPP-Clients, SMS-Submit-Berichte korrekt zu verarbeiten, selbst wenn sie auf verschiedenen Computern laufen.
Für eingehende SMS-Nachrichten und Zustellberichte führt das Ozeki 10 SMS-Gateway ein Lastenausgleich zwischen den verbundenen Clients durch. Das bedeutet, dass, sobald Kapazität auf einer eingehenden SMPP-Client-Verbindung verfügbar ist, eingehende SMS-Nachrichten und Zustellberichte an diesen Client weitergeleitet werden. Wenn keine Clients verbunden sind oder die Client-Verbindungen mit dem Senden oder Empfangen von SMS-Nachrichten beschäftigt sind, werden eingehende SMS-Nachrichten im Posteingangsordner gespeichert.
Beachten Sie, dass eingehende Zustellberichte nicht mit sendenden Clients abgeglichen werden. Dies liegt daran, dass, wenn ein Zustellbericht eintrifft, der sendende Client möglicherweise nicht verbunden ist oder von einer anderen Adresse aus verbunden ist. Denken Sie daran, dass Zustellberichte viel später eintreffen können. Das bedeutet, dass es möglich ist, dass ein Zustellbericht über eine andere Verbindung zurückgegeben wird als die, über die die SMS gesendet wurde. Dies geschieht nur, wenn mehrere Clients mit demselben SMPP-Benutzernamen und Passwort verbunden sind. Um diese Situation zu vermeiden, können Sie mehrere SMPP-Benutzerkonten für Ihren Kunden erstellen und ihm mitteilen, dass er sich mit jeweils einer Verbindung pro Benutzerkonto verbinden sollte.
More information
- SMPP-Benutzer
- Wie man einen SMPP-Dienst einrichtet
- Wie man einen sicheren SMPP-Server mit SMPPS erstellt
- SMPP-Bindungstransceiver
- Wie funktionieren SMPP submit_sm und deliver_sm PDUs
- Sicheres SMPP-SSL-Zertifikat
- Wie man eine SMS in den SMPP-Protokollen verfolgt
- SMPP-Fehlercodes und SMPP-Status
- Einführung in das SMS-Protokoll
- Wie man ein Bindungslimit konfiguriert