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 seven.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. Sollten Sie eine getunnelte Verbindung per VPN benötigen, schreiben Sie uns bitte.
Hostname | Port | TLS Port |
---|---|---|
smpp0.seven.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 SMSCreceiver
– Empfang von Statusberichten vom SMSC und Rückgabe der entsprechenden Antwortentransceiver
– 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..
- Name
system_id
- Type
- string
- Description
Benutzername – wird Ihnen zur Verfügung gestellt
- Name
password
- Type
- string
- Description
Passwort – wird Ihnen zur Verfügung gestellt
- Name
system_type
- Type
- string
- Description
Wird ignoriert
- Name
interface_version date
- Type
- timestamp
- Description
3.4
- Name
addr_ton
- Type
- timestamp
- Description
Wird ignoriert
- Name
addr_npi
- Type
- timestamp
- Description
Wird ignoriert
- Name
address_range
- Type
- string
- Description
Wird ignoriert
Statusberichte
SMPP Statusberichte werden im folgenden Format gesendet:
- Name
id
- Type
- string
- Description
Die ID der Nachricht, welche von unserem Server zugewiesen wurde
- Name
sub
- Type
- string
- Description
Die Anzahl ursprünglich versendeter SMS
- Name
dlvrd
- Type
- string
- Description
Die Anzahl zugestellter SMS
- Name
submit date
- Type
- timestamp
- Description
Datum und Zeitpunkt des ursprünglichen Versands der SMS
- Name
done date
- Type
- timestamp
- Description
Datum und Zeitpunkt des finalen Statusberichtes username.
- Name
stat
- Type
- string
- Description
Finaler Statusbericht der SMS. Siehe Tabelle unten.
- Name
err
- Type
- integer
- Description
Gegebenenfalls kann dieser einen netzwerkspezifischen Fehlercode oder einen SMSC-Fehlercode enthalten.
- Name
text
- Type
- timestamp
- Description
Die ersten 20 Zeichen der Kurznachricht
Beispiel Statusbericht
id:c0296bc5-e4d2-4ed7-bcc9-9e9b502dd302
sub:001
dlvrd:001
submit date:221206094424
done date:22106094426
stat:DELIVRD
err:000
text:
Beispiel Statusbericht
id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm
done date:YYMMDDhhmm stat:DDDDDDD err:E text:
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 |