Skip to content

Outils client et serveur SMPP pour les tests

Bibliothèques client SMPP open source, serveurs et simulateurs pour les tests, et une méthode pas à pas pour tester une connexion SMPP.

Mis à jour le 20 octobre 2026

Pour tester une connexion SMPP, il vous faut un client SMPP (pour vous connecter à un fournisseur et soumettre des messages) et, pour le développement, un serveur ou simulateur SMPP (pour accepter des binds sans envoyer de vrais SMS). Parmi les options open source connues figurent Jasmin et Kannel comme passerelles complètes, et des bibliothèques comme jSMPP, Cloudhopper SMPP, python-smpplib, node-smpp et gosmpp pour les scripts et les outils sur mesure.

Qu'est-ce qu'un client SMPP ?

Un client SMPP (l'ESME dans la terminologie SMPP) ouvre une connexion TCP vers un serveur SMPP, se connecte (bind) avec un system ID et un mot de passe, soumet des messages avec submit_sm et reçoit les accusés de réception sous forme de deliver_sm. Votre plateforme SMS est un client vis-à-vis de chaque route amont. Un client de test, c'est la même chose sous une forme petite et maîtrisable : vous l'utilisez pour vérifier identifiants, types de bind, limites de TPS, encodage et accusés avant de brancher le trafic de production. Pour le contexte : qu'est-ce que le SMPP.

Qu'est-ce qu'un simulateur de serveur SMPP ?

Un simulateur de serveur SMPP accepte les binds comme un SMSC, acquitte les messages soumis et peut renvoyer de faux accusés de réception, mais ne livre rien à de vrais téléphones. Il permet aux développeurs de tester leur client, leur logique de nouvelle tentative et leur gestion des DLR sans dépenser d'argent ni toucher aux réseaux réels. Ne confondez jamais les accusés d'un simulateur avec de vrais accusés : seule la route réelle peut montrer une vraie livraison. Voir les faux DLR pour comprendre pourquoi c'est important en production.

Outils SMPP open source

Ces projets existent bel et bien et sont activement utilisés (vérifiez la licence et l'état de maintenance de chaque projet avant de vous y fier) :

OutilLangageClientServeurIdéal pour
JasminPythonOuiOuiPasserelle SMS open source complète avec SMPP et HTTP, routage et image Docker. Utile comme serveur SMPP local pour les tests.
KannelCOuiVia module complémentairePasserelle SMS et WAP open source de longue date qui se connecte aux SMSC en SMPP et d'autres protocoles.
jSMPPJavaOuiOuiBibliothèque prenant en charge SMPP 3.3, 3.4 et 5.0 ; utilisée aussi par le composant SMPP d'Apache Camel.
Cloudhopper SMPPJavaOuiOuiBibliothèque pour clients et serveurs ; le dépôt principal n'a pas été mis à jour depuis plusieurs années.
python-smpplibPythonOuiNonScripts de test rapides : bind, envoi, lecture des accusés.
node-smppNode.jsOuiOuiPetits serveurs et clients de test en JavaScript.
gosmppGoOuiNonBibliothèque client SMPP 3.4 pour les services en Go.

Pour capturer le trafic, Wireshark décode les PDU SMPP, ce qui aide quand vous devez voir exactement ce qui a été envoyé dans un bind ou un submit_sm. Il existe aussi des clients de bureau commerciaux et des simulateurs de SMSC hébergés ; évaluez-les de la même façon.

Comment tester une connexion SMPP ?

Testez dans cet ordre : réseau, bind, envoi, accusé, débit. La plupart des mises en place ratées s'arrêtent aux deux premières étapes, à cause de la liste blanche d'IP, d'un mauvais port ou d'un mauvais type de bind.

  1. Réseau. Vérifiez que votre IP est autorisée et que l'hôte et le port sont joignables (un simple test de connexion TCP suffit).
  2. Bind. Connectez-vous avec le system ID, le mot de passe, le system type (souvent vide) et le type de bind fourni par le fournisseur (TX, RX ou TRX). Un échec de bind renvoie une erreur comme mot de passe invalide ou system ID invalide.
  3. Envoi. Envoyez un message vers votre propre téléphone avec le sender ID, le TON/NPI et le data_coding convenus, avec registered_delivery réglé pour demander un accusé.
  4. Accusé. Vérifiez que l'accusé de réception arrive avec le même message ID et un statut final. Comparez avec le téléphone.
  5. Maintien de session. Laissez le bind inactif et vérifiez que enquire_link le maintient ouvert.
  6. Débit. Envoyez à votre TPS contractuel et surveillez les erreurs de throttling.

Le sens des erreurs est dans les codes d'erreur SMPP ; les limites de bind et de TPS dans binds SMPP et TPS.

Serveur SMPP gratuit pour les tests : quelles options ?

L'option gratuite la plus simple consiste à faire tourner en local une passerelle open source comme Jasmin (fournie en image Docker) et à y pointer votre client, ou à écrire un mini-serveur avec node-smpp ou jSMPP qui accepte les binds et renvoie des accusés. Cela couvre les tests de protocole. Pour tester la livraison, rien ne remplace une vraie route et de vrais téléphones sur chaque opérateur : voir comment tester une route SMS.

Choisir entre SMPP et HTTP pour votre intégration

Si votre volume est faible, une API HTTP peut être plus simple que de maintenir des binds SMPP. Si vous revendez ou envoyez de gros volumes, SMPP est la norme. Comparez dans SMPP vs HTTP pour le SMS et qu'est-ce qu'une passerelle SMS.

Obtenir une route SMPP réelle

Une fois que votre client fonctionne avec un simulateur, il vous faut un vrai amont. VoIPMatcher source des routes SMS A2P en SMPP auprès de ses carriers et les gère. Demandez une route SMPP pour les tests et la production.

Questions fréquentes

Existe-t-il un client SMPP en ligne utilisable ?

Certains éditeurs proposent des clients de test SMPP sur le web et des simulateurs de SMSC hébergés. Méfiez-vous avant de saisir des identifiants de production sur des sites tiers, car quiconque les détient peut envoyer du trafic facturé à votre compte. Pour de vrais binds, un client local construit avec une bibliothèque open source, ou votre propre passerelle, garde les identifiants sous votre contrôle.

Peut-on faire tourner un serveur SMPP dans Docker ?

Oui. Jasmin, une passerelle SMS open source avec serveur SMPP, publie une image Docker, et de petits serveurs de test construits avec des bibliothèques comme node-smpp ou jSMPP se conteneurisent facilement. C'est utile pour le développement et les tests automatisés, mais un tel serveur ne livre rien à de vrais téléphones s'il n'est pas relié à des routes réelles.

Pourquoi mon bind SMPP échoue-t-il ?

Causes fréquentes : une adresse IP non autorisée par le fournisseur, un mauvais hôte ou port, un system ID ou un mot de passe incorrect, un mauvais type de bind, ou trop de binds déjà ouverts sur le compte. Le code d'erreur de la réponse au bind indique la cause. Vérifiez d'abord l'accessibilité réseau, puis les identifiants et les limites de binds.

Qu'est-ce que enquire_link en SMPP ?

Enquire_link est le PDU de maintien de session de SMPP. Chaque côté l'envoie périodiquement, souvent toutes les 30 à 60 secondes, et l'autre côté doit répondre. Il garde les connexions inactives ouvertes à travers les pare-feu et permet à chaque côté de détecter vite un lien mort pour se reconnecter au lieu de perdre des messages.

Comment tester le débit SMPP ?

Après un bind réussi et un test sur un seul message, envoyez une rafale contrôlée à votre nombre de messages par seconde contractuel vers une plage de test convenue avec le fournisseur, et surveillez les erreurs de throttling et l'allongement des temps de réponse. Augmentez progressivement. Testez tous vos binds ensemble, car les limites peuvent s'appliquer par compte comme par bind.

Besoin d'une route ?

Indiquez la destination, le type de route et le tarif cible. Nous vous répondons avec ce que nous pouvons fournir.

Autres guides

Tous les guides
SMS A2P Routes SMS directes : définition et comment les vérifier Ce qu'est une route SMS directe, pourquoi elle livre mieux qu'une route indirecte ou grise, quand l'OTP en a besoin et comment vérifier qu'elle est directe. SMS A2P Liste MCC MNC : codes pays et réseaux mobiles Ce que sont les codes MCC et MNC, exemples de la liste MCC MNC, comment ils identifient les réseaux mobiles et servent aux tarifs et au routage SMS. SMS A2P API de validation de numéro : HLR, MNP et type de ligne Ce que renvoie une API de validation de numéro de téléphone : format, type de ligne, MNP et HLR lookups, leurs différences et comment choisir un fournisseur. SMS A2P SMPP : le protocole SMPP expliqué Ce qu'est le protocole SMPP, comment fonctionnent les binds et les PDU SMPP, ce qu'est un serveur SMPP, et quand préférer le SMPP à une HTTP API SMS. SMS A2P RCS vs SMS : quel canal pour la messagerie d'entreprise ? RCS ou SMS pour les entreprises : fonctions, couverture Android et iPhone en 2026, modèles de prix, comparaison avec le MMS et SMS en secours. SMS A2P Taux de livraison SMS : repères, latence et suivi Comment calculer le taux de livraison et la latence des SMS, à quoi ressemble un taux normal, causes fréquentes de mauvais résultats et suivi des routes. SMS A2P Vérification par flash call : fonctionnement et comparaison SMS Comment fonctionne la vérification par flash call, comment elle se compare à l'OTP par SMS, et les risques opérateurs, fraude et plateformes à peser avant. SMS A2P HLR lookup : définition et fonctionnement Ce que renvoie un HLR lookup, sa différence avec un lookup MNP, s'il donne la localisation, et son usage par les expéditeurs SMS : routage, listes et fraude.