1. Home
  2. Gateway
  3. SMPP Spezifikationen

SMPP Spezifikationen

Das Short Message Peer to Peer Protokoll (SMPP) ist der de-facto Standard zum SMS-Versand und -Empfang für Telekommunikationsbetreiber, SMS Aggregatoren und Netzbetreiber um SMS Nachrichten zwischen Short Message Service Centern (SMSC) und/oder External Short Messaging Entities (ESME) auszutauschen. SMPP ist ein Level-7 TCP/IP-Protokoll, das einen schnellen Versand von SMS-Nachrichten ermöglicht.

Die Verbindung zwischen der Anwendung und dem sms77.io SMPP-Server ist SMPP Version 3.4 – die Versionen 3.3 oder 5.0 werden nicht unterstützt.

SMPP Version 3.4 Issue 1.2 Spezifikationen

Sofern Sie einen SMPP Zugang zu unserem Gateway benötigen, schreiben Sie uns bitte eine kurze Nachricht mit Ihrem ungefähren monatlichen SMS Volumen und Ihrer IP bzw. IP-Range, von der aus Sie sich zu unserem SMPP Server verbinden möchten.

Host und Port

Jeder unserer SMPP Server ermöglicht Ihnen die reguläre Verbindung (plaintext) oder eine verschlüsselte Verbindung per TLS.

Hostname Port TLS Port
smpp0.sms77.io 2775 2776

Unterstützte PDUs

Folgende Packet Data Units (PDU) werden unterstützt:t

  • bind_transmitter
  • bind_receiver
  • bind_transceiver
  • unbind
  • submit_sm
  • deliver_sm
  • enquire_link

Bind und Durchsatz

Je nach Konfiguration Ihres SMPP Zugangs sind mehrere Binds möglich. Standardmäßig erlauben wir maximal die Anbindung über 2 Sessions und 5 SMS/s je Session.

Sie haben drei Möglichkeiten, eine Verbindung über SMPP herzustellen. Um Statusberichte empfangen zu können, müssen Sie einen Bind als transceiver oder receiver aufbauen.

  • transmitter – senden Sie Kurznachrichten an das SMSC und empfangen Sie Antworten vom SMSC
  • receiver – Empfang von Statusberichten vom SMSC und Rückgabe der entsprechenden Antworten
  • transceiver – Senden und Empfangen von Nachrichten zum und vom SMSC über eine einzige SMPP-Sitzung

Bind Parameter

Eine SMPP bind_receiver, bind_transceiver oder bind_transmitter PDU-Anfrage hat einen festen Satz von Feldern. Einige Felder sind dabei irrelevant bzw. werden von unserem Server ignoriert..

Parameter Beschreibung
system_id Benutzername – wird Ihnen zur Verfügung gestellt
password Passwort – wird Ihnen zur Verfügung gestellt
system_type Wird ignoriert
interface_version 3.4
addr_ton Wird ignoriert
addr_npi Wird ignoriert
address_range Wird ignoriert

Statusberichte

SMPP Statusberichte werden im folgenden Format gesendet:

id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm done date:YYMMDDhhmm stat:DDDDDDD err:E Text .........

Parameter Beschreibung
id Die ID der Nachricht, welche von unserem Server zugewiesen wurde
sub Die Anzahl ursprünglich versendeter SMS
dlvrd Die Anzahl zugestellter SMS
submit date Datum und Zeitpunkt des ursprünglichen Versands der SMS
done date Datum und Zeitpunkt des finalen Statusberichtes
stat Finaler Statusbericht der SMS. Siehe Tabelle unten.
err Gegebenenfalls kann dieser einen netzwerkspezifischen Fehlercode oder einen SMSC-Fehlercode enthalten.
text Die ersten 20 Zeichen der Kurznachricht

Zwecks Loadbalancing werden die Statusberichte nicht an denselben Bind gesendet, der die SMS verschickt hat, sondern an denjenigen, der derzeit am wenigsten Traffic hat. Bitte beachten Sie dies bei der Implementierung von Statusberichten sofern Sie mehreren Binds verwenden.

Statuscodes

DLR Beschreibung
DELIVRD Nachricht wurde an das Ziel zugestellt
ACCEPTD Nachricht wurde vom SMSC akzeptiert
EXPIRED Gültigkeitszeitraum der SMS abgelaufen
DELETED Nachricht wurde gelöscht
UNDELIV Nachricht konnte nicht zugestellt werden
UNKNOWN Status der SMS unbekannt
REJECTD Nachricht wurde abgewiesen

Fehlercodes

Dec Hex Fehlercode Beschreibung
0 0x000000 ESME_ROK Ok – Nachricht akzeptiert
1 0x000001 ESME_RINVMSGLEN Ungültige Nachrichtenlänge
2 0x000002 ESME_RINVCMDLEN Ungültige Command Länge
3 0x000003 ESME_RINVCMDID Ungültige Command ID
4 0x000004 ESME_RINVBNDSTS Ungültiger bind Status
5 0x000005 ESME_RALYBND Bindversuch, wenn bereits gebunden
6 0x000006 ESME_RINVPRTFLG Ungültige Prioritätskennzeichnung
7 0x000007 ESME_RINVREGDLVFLG Ungültiger registrierted-delivery Flag
8 0x000008 ESME_RSYSERR SMSC System Fehler
10 0x00000a ESME_RINVSRCADR Ungültige source address
11 0x00000b ESME_RINVDSTADR Ungültige destination address
12 0x00000c ESME_RINVMSGID Ungültige message-id
13 0x00000d ESME_RBINDFAIL Allgemeiner bind Fehler
14 0x00000e ESME_RINVPASWD Ungültige password
15 0x00000f ESME_RINVSYSID Ungültige System-ID
17 0x0000011 ESME_RCANCELFAIL Abbruchfehler
19 0x0000013 ESME_RREPLACEFAIL Ersetzen Fehler
20 0x0000014 ESME_RMSGQFUL Zu viele Nachrichten in der Warteschlange
22 0x0000016 ESME_RINVSERTYP Ungültiger Services Type
51 0x0000033 ESME_RINVNUMDESTS Ungültige Nummer der Zieladresse
52 0x0000034 ESME_RINVDLNAME Ungültiger Name
64 0x0000040 ESME_RINVDESTFLAG Ungültige Destination Flag Option
66 0x0000042 ESME_RINVSUBREP Ungültiger Wer für submit mit replace Option
67 0x0000043 ESME_RINVESMCLASS Ungültiger Wert für das esm_class Feld
68 0x0000044 ESME_RCNTSUBDL Kann nicht an einen Verteiler senden
69 0x0000045 ESME_RSUBMITFAIL Allgemeiner Übertragungsfehler
72 0x0000048 ESME_RINVSRCTON Ungültiger Typ der Nummer der Quelle
73 0x0000049 ESME_RINVSRCNPI Ungültiges Flag für den Nummerierungsplan der Quelle
74 0x000004a ESME_RINVDSTTON Ungültige Art von Nummer für das Ziel
75 0x000004b ESME_RINVDSTNPI Ungültiges Flag für den Nummerierungsplan der Zieladresse
77 0x000004d ESME_RINVSYSTYP Ungültiger esm Typ
78 0x000004e ESME_RINVREPFLAG Ungültige submit mit replace Flag Option
85 0x0000055 ESME_RINVNUMMSGS Ungültige Anzahl an Nachrichten
88 0x0000058 ESME_RtdROTTLED SMSC drosselt eingehende Nachrichten
98 0x0000062 ESME_RINVEXPIRY Ungültiges Gültigkeitsdatum
103 0x0000067 ESME_RQUERYFAIL query_sm Request fehlgeschlagen
194 0x00000c2 ESME_RINVPARLEN Ungültige Parameterlänge
195 0x00000c3 ESME_RMISSINGOPTPARAM Fehlende optionale Parameter
196 0x00000c4 ESME_RINVOPTPARAMVAL Ungültiger optionaler Parameterwert
254 0x00000fe ESME_RDELIVERYFAILURE Generischer Zustellungsfehler
255 0x00000ff ESME_RUNKNOWNERR Unbekannter Fehler

Spezifische Fehlercodes

Zusätzlich zu den standardisierten SMPP Fehlercodes senden wir eigene, spezifische Fehlercodes:

Dec Hex Fehlercode Beschreibung
1035 0x0000040b ESME_RINVBALANCE Guthaben nicht ausreichend zum Versand der SMS