Le protocole SMPP expliqué
Le SMPP (Short Message Peer-to-Peer) est le protocole TCP ouvert qui transporte les A2P SMS entre une application — l'ESME — et la SMSC d'un opérateur mobile. L'ESME ouvre un bind persistant, soumet les messages sous forme de submit_sm PDUs binaires et reçoit les accusés de réception via le même socket.
Résumé de Comment fonctionne le protocole SMPP ?
Comment ça marche
- 1
Bind
L'ESME ouvre une connexion TCP (idéalement TLS) et envoie un bind_transceiver avec un system_id et un mot de passe. Il peut se lier en tant que Transmitter, Receiver ou Transceiver ; un bind Transceiver via SMPP 3.4 est la norme moderne par défaut.
Lire la réponse complète - 2
Submit
Chaque message est envoyé en tant que PDU submit_sm, et le SMSC accuse réception avec un submit_sm_resp contenant un message_id. La fenêtre — le nombre de PDUs pouvant être en cours de transmission sans accusé de réception — est ce qui limite le plus souvent le débit réel.
Lire la réponse complète - 3
Recevoir les accusés de réception
Les accusés de réception arrivent de manière asynchrone sous forme de PDUs deliver_sm sur le même socket et sont réassociés au message d'origine par le message_id.
Lire la réponse complète - 4
Maintenir la session active
Un battement de cœur (heartbeat) enquire_link toutes les 30 secondes maintient le bind ; le client se reconnecte avec un backoff exponentiel, et l'unbind ferme la session proprement. Un échec de submit renvoie un command_status numérique à décoder.
Lire la réponse complète
Termes clés
Chaque terme dispose de sa propre page de réponse avec une explication complète.
- Qu'est-ce que le SMPP ?SMPP (Short Message Peer-to-Peer) est le protocole ouvert standard pour l'échange de SMS entre les SMSC (Short Message Centers), les ESME (External Short Message Entities) et les agrégateurs.
- Comment fonctionne le protocole SMPP ?SMPP (Short Message Peer-to-Peer) est le protocole TCP ouvert qui transporte les SMS A2P entre une application (l'ESME) et le SMSC d'un opérateur mobile.
- Qu'est-ce qu'une ESME ?ESME (External Short Messaging Entity) est le terme SMPP désignant toute application externe au SMSC qui envoie ou reçoit des SMS.
- Qu'est-ce qu'une SMSC ?Un SMSC (Short Message Service Center) est le composant d'infrastructure essentiel d'un réseau mobile qui stocke, transfère et distribue les SMS entre les appareils mobiles et les applications externes.
- Quelle est la taille de la fenêtre SMPP ?La fenêtre correspond au nombre de PDU SMPP qu'un ESME peut avoir en transit (émis mais non encore acquittés) lors d'une liaison donnée à un instant donné.
- SMPP 3.4 vs SMPP 5.0 — Qu'est-ce qui a changé et lequel utiliser ?Le protocole SMPP 3.4 (1999) reste le protocole d'interconnexion SMS utilisé par la quasi-totalité des liaisons A2P en production aujourd'hui.
- Qu'est-ce qu'un DLR (Delivery Receipt) ?Un DLR est la confirmation asynchrone de la bonne réception (ou de l'échec de la réception) d'un SMS sur le terminal.
- Qu'est-ce que le TPS (Transactions par seconde) ?Le TPS (transactions par seconde), également appelé MPS ou débit d'envoi, correspond au débit maximal d'une liaison de messagerie ou d'un compte : il indique le nombre de PDU de soumission SMS (submit_sm) que le SMSC…
- TLS 1.3 dans la messagerie — ce qui a changé et pourquoi c'est important pour SMPPTLS 1.3 (RFC 8446, 2018) a remplacé TLS 1.2 par une procédure d'établissement de liaison plus rapide, a supprimé tous les algorithmes vulnérables de la décennie précédente et a rendu la confidentialité persistante…
Guides et lectures complémentaires
- RéférenceVue d'ensemble du protocole SMPP
- RéférenceOpérations de bind SMPP et états de session
- RéférenceSMPP submit_sm : tous les champs obligatoires
- RéférenceCodes d'erreur command_status SMPP
- GuideChecklist d'intégration SMPP
- ArticleLe coût d'exploitation d'une intégration SMS : binds, webhooks et modes de défaillance
- ArticlePlanification du débit SMS et du TPS : dimensionnement des liaisons SMPP pour les campagnes à volume élevé
- ComparatifSMS API vs SMPP
- Documentation développeurIntégration SMPP
- OutilRecherche de code d'erreur SMPP
Foire aux questions
Quand faut-il choisir SMPP plutôt que REST ?
Choisissez SMPP si vous envoyez en continu plusieurs centaines de messages par seconde ou avez besoin de binds persistants (la capacité par bind est convenue avec votre équipe de compte), si vous utilisez un système OTP à faible latence où chaque milliseconde compte, ou si vous vous intégrez à un écosystème d'opérateurs/agrégateurs qui utilise déjà SMPP. Sinon, une API SMS REST (aucune limite de débit fixe par compte chez BroadNet) est plus simple à exploiter et utilise les mêmes routes.
Lire la réponse complèteDois-je utiliser SMPP 5.0 pour une nouvelle intégration ?
Pratiquement jamais. Utilisez SMPP 3.4 sur TLS, sauf si une contrepartie spécifique exige la version 5.0. La base installée, les outils et le support opérateur reposent tous sur la version 3.4, et la version 5.0 n'offre aucun avantage en termes de délivrabilité sur les routes A2P commerciales.
Lire la réponse complèteLe protocole SMPP 5.0 transmet-il les messages mieux que le protocole 3.4 ?
Non. La délivrabilité dépend du routage de l'opérateur, et non de la version SMPP. Les améliorations apportées par la version 5.0 (en-têtes Unicode, TLV de facturation) sont généralement gérées au niveau de la couche application, en complément de la version 3.4.
Lire la réponse complèteComment envoyer des messages arabes ou des émojis via SMPP 3.4 ?
Définissez data_coding sur UCS-2 (0x08) ou transmettez le corps du message dans un TLV message_payload. La version 3.4 gère correctement le contenu Unicode ; la version 5.0 n’est pas nécessaire.
Lire la réponse complèteQuel type de liaison et quel port dois-je utiliser ?
L'utilisation d'un émetteur-récepteur via TLS est la norme pour les communications A2P : il envoie des requêtes submit_sm et reçoit des DLR sur une seule socket. BroadNet propose des liaisons SMPP 3.4 ; l’hôte, le port et les identifiants sont fournis avec votre accès de test.
Lire la réponse complète