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 |