Spécifications SMPP
Le protocole Short Message Peer to Peer (SMPP) est le standard de facto pour l'envoi et la réception de SMS pour les opérateurs de télécommunications, les agrégateurs SMS et les opérateurs de réseau pour échanger des messages SMS entre des centres de services de messages courts (SMSC) et/ou des entités de messagerie courte externes (ESME). SMPP est un protocole TCP/IP de niveau 7 qui permet l'envoi rapide de messages SMS.
La connexion entre l'application et le serveur SMPP seven.io est SMPP version 3.4 - les versions 3.3 ou 5.0 ne sont pas supportées.
Spécifications SMPP Version 3.4 Issue 1.2
Si vous avez besoin d'un accès SMPP à notre passerelle, veuillez nous écrire un court message avec votre volume mensuel approximatif de SMS et votre IP ou plage d'IP à partir de laquelle vous souhaitez vous connecter à notre serveur SMPP.
Hôte et port
Chacun de nos serveurs SMPP vous permet la connexion régulière (texte brut) ou une connexion chiffrée via TLS. Si vous avez besoin d'une connexion tunnelée via VPN, veuillez nous contacter.
Nom d'hôte | Port | Port TLS |
---|---|---|
smpp0.seven.io | 2775 | 2776 |
PDU supportées
Les unités de données de paquets (PDU) suivantes sont supportées :
bind_transmitter
bind_receiver
bind_transceiver
unbind
submit_sm
deliver_sm
enquire_link
Bind et débit
Selon la configuration de votre accès SMPP, plusieurs binds sont possibles. Par défaut, nous autorisons une connexion maximale de 2 sessions et 5 SMS/s par session.
Vous avez trois options pour établir une connexion via SMPP. Pour pouvoir recevoir des rapports de statut, vous devez configurer un bind comme transceiver ou receiver.
transmitter
- envoyer des messages courts au SMSC et recevoir des réponses du SMSCreceiver
- recevoir des rapports de statut du SMSC et retourner les réponses correspondantestransceiver
- envoyer et recevoir des messages vers et depuis le SMSC via une seule session SMPP
Paramètres de Bind
Une requête PDU SMPP bind_receiver, bind_transceiver ou bind_transmitter a un ensemble fixe de champs. Certains champs sont non pertinents ou sont ignorés par notre serveur.
- Name
system_id
- Type
- string
- Description
Nom d'utilisateur - vous sera fourni
- Name
password
- Type
- string
- Description
Mot de passe - vous sera fourni
- Name
system_type
- Type
- string
- Description
Sera ignoré
- Name
interface_version date
- Type
- timestamp
- Description
3.4
- Name
addr_ton
- Type
- timestamp
- Description
Sera ignoré
- Name
addr_npi
- Type
- timestamp
- Description
Sera ignoré
- Name
address_range
- Type
- string
- Description
Sera ignoré
Rapports de statut
Les rapports de statut SMPP sont envoyés dans le format suivant :
- Name
id
- Type
- string
- Description
L'ID du message attribué par notre serveur
- Name
sub
- Type
- string
- Description
Le nombre de SMS envoyés à l'origine
- Name
dlvrd
- Type
- string
- Description
Le nombre de SMS livrés
- Name
submit date
- Type
- timestamp
- Description
Date et heure d'envoi original du SMS
- Name
done date
- Type
- timestamp
- Description
Date et heure du rapport de statut final
- Name
stat
- Type
- string
- Description
Rapport de statut final du SMS. Voir le tableau ci-dessous.
- Name
err
- Type
- integer
- Description
Si nécessaire, peut contenir un code d'erreur spécifique au réseau ou un code d'erreur SMSC.
- Name
text
- Type
- timestamp
- Description
Les 20 premiers caractères du message court
Exemple de rapport de statut
id:c0296bc5-e4d2-4ed7-bcc9-9e9b502dd302
sub:001
dlvrd:001
submit date:221206094424
done date:22106094426
stat:DELIVRD
err:000
text:
Exemple de rapport de statut
id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm
done date:YYMMDDhhmm stat:DDDDDDD err:E text:
Codes de statut
DLR | Description |
---|---|
DELIVRD | Le message a été livré à la destination |
ACCEPTD | Message accepté par le SMSC |
EXPIRED | Période de validité du SMS expirée |
DELETED | Le message a été supprimé |
UNDELIV | Le message n'a pas pu être livré |
UNKNOWN | Statut du SMS inconnu |
REJECTD | Le message a été rejeté |
Codes d'erreur
Dec | Hex | Code d'erreur | Description |
---|---|---|---|
0 | 0x000000 | ESME_ROK | Ok - Message accepté |
1 | 0x000001 | ESME_RINVMSGLEN | Longueur de message invalide |
2 | 0x000002 | ESME_RINVCMDLEN | Longueur de commande invalide |
3 | 0x000003 | ESME_RINVCMDID | ID de commande invalide |
4 | 0x000004 | ESME_RINVBNDSTS | Statut de bind invalide |
5 | 0x000005 | ESME_RALYBND | Tentative de bind si déjà lié |
6 | 0x000006 | ESME_RINVPRTFLG | Drapeau de priorité invalide |
7 | 0x000007 | ESME_RINVREGDLVFLG | Drapeau de livraison enregistrée invalide |
8 | 0x000008 | ESME_RSYSERR | Erreur système SMSC |
10 | 0x00000a | ESME_RINVSRCADR | Adresse source invalide |
11 | 0x00000b | ESME_RINVDSTADR | Adresse de destination invalide |
12 | 0x00000c | ESME_RINVMSGID | ID de message invalide |
13 | 0x00000d | ESME_RBINDFAIL | Erreur de bind générale |
14 | 0x00000e | ESME_RINVPASWD | Mot de passe invalide |
15 | 0x00000f | ESME_RINVSYSID | ID système invalide |
17 | 0x0000011 | ESME_RCANCELFAIL | Erreur d'abandon |
19 | 0x0000013 | ESME_RREPLACEFAIL | Erreur de remplacement |
20 | 0x0000014 | ESME_RMSGQFUL | Trop de messages dans la file d'attente |
22 | 0x0000016 | ESME_RINVSERTYP | Type de services invalide |
51 | 0x0000033 | ESME_RINVNUMDESTS | Nombre d'adresses de destination invalide |
52 | 0x0000034 | ESME_RINVDLNAME | Nom invalide |
64 | 0x0000040 | ESME_RINVDESTFLAG | Option de drapeau de destination invalide |
66 | 0x0000042 | ESME_RINVSUBREP | Invalide pour submit avec option de remplacement |
67 | 0x0000043 | ESME_RINVESMCLASS | Valeur invalide pour le champ esm_class |
68 | 0x0000044 | ESME_RCNTSUBDL | Impossible d'envoyer à une liste de distribution |
69 | 0x0000045 | ESME_RSUBMITFAIL | Erreur de transmission générale |
72 | 0x0000048 | ESME_RINVSRCTON | Type de numéro source invalide |
73 | 0x0000049 | ESME_RINVSRCNPI | Drapeau invalide pour le plan de numérotation de la source |
74 | 0x000004a | ESME_RINVDSTTON | Type de numéro invalide pour la destination |
75 | 0x000004b | ESME_RINVDSTNPI | Drapeau invalide pour le plan de numérotation de l'adresse de destination |
77 | 0x000004d | ESME_RINVSYSTYP | Type esm invalide |
78 | 0x000004e | ESME_RINVREPFLAG | Option de drapeau submit avec remplacement invalide |
85 | 0x0000055 | ESME_RINVNUMMSGS | Nombre de messages invalide |
88 | 0x0000058 | ESME_RtdROTTLED | SMSC limite les messages entrants |
98 | 0x0000062 | ESME_RINVEXPIRY | Date de validité invalide |
103 | 0x0000067 | ESME_RQUERYFAIL | La requête query_sm a échoué |
194 | 0x00000c2 | ESME_RINVPARLEN | Longueur de paramètre invalide |
195 | 0x00000c3 | ESME_RMISSINGOPTPARAM | Paramètres optionnels manquants |
196 | 0x00000c4 | ESME_RINVOPTPARAMVAL | Valeur de paramètre optionnel invalide |
254 | 0x00000fe | ESME_RDELIVERYFAILURE | Erreur de livraison générique |
255 | 0x00000ff | ESME_RUNKNOWNERR | Erreur inconnue |
Codes d'erreur spécifiques
En plus des codes d'erreur SMPP standardisés, nous envoyons nos propres codes d'erreur spécifiques :
Dec | Hex | Code d'erreur | Description |
---|---|---|---|
1035 | 0x0000040b | ESME_RINVBALANCE | Crédit insuffisant pour envoyer le SMS |