Guides

SMSC, passerelle SMS, serveur SMPP : ce que fait vraiment chacun

Trois termes employés comme s'ils n'en faisaient qu'un. Ce qu'est un SMSC, ce que fait une passerelle SMS, ce qu'ajoute un serveur SMPP, et lesquels exploiter.

Temps de lecture8 minPublié leMis à jour le
Rédigé par l’équipe SmppcubeDes ingénieurs qui conçoivent des plateformes de messagerie depuis 2011, pas des rédacteurs marketing. À propos de nous →
SMSC, passerelle SMS, serveur SMPP : ce que fait vraiment chacun
Dans ce guide
  1. SMSC, passerelle SMS et serveur SMPP en un paragraphe
  2. SMSC : la machine de stockage et de relais de l’opérateur
  3. Passerelle SMS : le routeur, le grand livre et le tableau de bord
  4. Serveur SMPP : la porte à laquelle vos clients se connectent
  5. Comment les trois s’articulent sur le trajet réel d’un message
  6. Qui exploite quoi
  7. Lesquels vous devez exploiter
  8. Une remarque sur les noms employés par les éditeurs

Demandez à trois éditeurs ce qu’ils vendent et vous entendrez peut-être « un SMSC », « une passerelle SMS » et « un serveur SMPP » pour ce qui ressemble au même produit. Ces termes ne sont pas interchangeables, et la confusion coûte de l’argent : certains achètent un serveur SMPP en pensant qu’il atteindra les téléphones, ou prévoient un budget pour « un SMSC » alors qu’il leur faut une passerelle et deux contrats opérateurs. Ce guide tranche la question SMSC, passerelle SMS ou serveur SMPP avec des définitions simples, montre comment les trois s’articulent sur le trajet réel d’un message, et termine par ceux que vous devez réellement exploiter.

SMSC, passerelle SMS et serveur SMPP en un paragraphe

Un SMSC se trouve à l’intérieur du réseau d’un opérateur mobile et remet les SMS aux téléphones. Une passerelle SMS se trouve hors du réseau, reçoit les messages des applications et des clients, les achemine vers la bonne connexion opérateur et collecte les accusés de réception. Un serveur SMPP est un composant d’une passerelle qui permet à d’autres systèmes de s’y connecter via le protocole SMPP, de la même façon que la passerelle se connecte aux opérateurs. Les opérateurs exploitent des SMSC. Les entreprises qui envoient ou revendent des messages exploitent des passerelles. Les passerelles qui servent des clients techniques exploitent aussi des serveurs SMPP.

Tout ce qui suit reprend ce paragraphe en détail.

SMSC : la machine de stockage et de relais de l’opérateur

Le Short Message Service Centre (centre de service des messages courts) est l’élément du réseau mobile chargé des SMS. Quand un téléphone envoie un SMS, celui-ci part vers le SMSC de l’opérateur de l’expéditeur ; le SMSC le stocke, cherche où se trouve le téléphone du destinataire et le relaie, en réessayant si le téléphone est éteint ou hors couverture. Ce comportement de « stockage et relais » (store and forward) explique pourquoi un SMS arrive quand vous rallumez votre téléphone : c’est le SMSC qui s’en charge.

Trois conséquences en découlent. Le SMSC dialogue avec les terminaux via le cœur de signalisation du réseau (SS7, ou Diameter dans les cœurs de réseau plus récents), ce qui relève d’une relation télécom et non d’un protocole internet. Le SMSC appartient à l’opérateur, et chaque opérateur a le sien ; il n’existe pas de SMSC mondial. Enfin, le SMSC est le seul élément de cet article capable de déposer un message sur un téléphone. Tout le reste n’est qu’un moyen de faire parvenir un message à un SMSC.

Les entreprises atteignent un SMSC de deux façons : par un agrégateur qui dispose déjà de connexions vers de nombreux opérateurs, ou directement, avec un contrat et un bind SMPP fourni par l’opérateur. Dans les deux cas, l’entreprise est cliente du SMSC, pas son exploitant. Les produits vendus comme « un SMSC pour entreprises » sont des passerelles qui acceptent des binds SMPP ; ils ne livrent pas aux téléphones par eux-mêmes.

Passerelle SMS : le routeur, le grand livre et le tableau de bord

Une passerelle SMS est le système qu’une entreprise exploite pour envoyer des messages à grande échelle et, si elle revend, pour permettre à ses propres clients d’envoyer. Le travail de la passerelle couvre tout ce qui se passe entre « un message a été soumis » et « voici l’accusé de réception » :

  • Accepter les messages depuis une console web, une API HTTP, un import de fichier ou un bind SMPP.
  • Les valider : règles de sender ID, encodage, longueur, solde du client.
  • Router : choisir quelle connexion opérateur ou quel agrégateur transporte ce message vers cette destination, selon le prix, la qualité ou le contrat.
  • Livrer par la connexion choisie, en général en SMPP vers un opérateur ou un agrégateur, parfois en HTTP vers un fournisseur, en respectant le débit et la fenêtre de la connexion.
  • Collecter les accusés de réception et les rapprocher des messages, pour que « livré », « échoué » ou « expiré » parvienne au client et au grand livre.
  • Facturer : débiter le client par message, enregistrer le coût de la route et afficher la marge.
  • Produire des rapports pour le client et pour l’exploitant de la passerelle.

La passerelle peut être un simple moteur (Kannel est le plus connu en open source ; il gère les binds, les files d’attente et les accusés de réception, et rien au-dessus) ou une plateforme complète où le moteur n’est qu’une couche sous un portail, une table de routage, trois modes de facturation et une pile de rapports. La page plateforme présente toute cette pile pour Smppcube dans un seul schéma : NGINX, la console PHP et le pipeline Node.js, les files Redis, MySQL comme système d’enregistrement, MongoDB pour les archives, Elasticsearch pour la recherche, et Kannel en dessous qui dialogue avec les SMSC. L’ensemble forme « la passerelle SMS ». Kannel seul en est le moteur de livraison.

Une passerelle porte aussi les parties de l’activité qui n’ont rien à voir avec les protocoles : comptes clients, grilles tarifaires par destination, soldes prépayés et postpayés, factures, portails revendeurs, et la marge par route qui détermine si l’exploitation gagne de l’argent. Ce sont ces parties qui font qu’acheter une passerelle est une tout autre décision que télécharger un moteur.

Serveur SMPP : la porte à laquelle vos clients se connectent

SMPP, le protocole sur lequel les opérateurs se sont standardisés, est un protocole client-serveur. Quand votre passerelle se connecte (bind) à un opérateur, le côté opérateur est le serveur SMPP et le vôtre est le client. Quand vos propres clients veulent se connecter à vous en SMPP, c’est vous qui devez être le serveur. Ce composant, c’est le serveur SMPP : il écoute sur un port (2775 par convention), authentifie les binds avec un system_id et un mot de passe, accepte les paquets submit_sm, renvoie les identifiants de message, applique un débit par compte et renvoie les accusés de réception dans la session.

Autrement dit, c’est une entrée de plus dans la passerelle. Les messages qui arrivent par le serveur SMPP rejoignent la même file d’attente, la même table de routage et le même grand livre que ceux de l’API HTTP et de la console ; le guide SMPP contre HTTP explique pourquoi une plateforme a besoin des deux et en quoi ils diffèrent en pratique. Ce qu’un serveur SMPP n’est pas, en revanche, c’est une route vers les téléphones : c’est une porte d’entrée, pas une porte de sortie. Une entreprise qui ne fait qu’envoyer n’en a jamais besoin. Une entreprise qui veut compter des banques, des fournisseurs d’OTP et d’autres agrégateurs parmi ses clients en a besoin le jour où le premier d’entre eux le demande.

Comment les trois s’articulent sur le trajet réel d’un message

Réunissez les trois, et le trajet d’un message, du client d’un revendeur jusqu’à un téléphone, se présente ainsi :

  1. Le client soumet le message à la passerelle du revendeur, via la console web, l’API HTTP ou un bind sur le serveur SMPP du revendeur.
  2. La passerelle le valide, débite le solde du client et choisit une route pour la destination.
  3. Le moteur de la passerelle l’envoie par un bind SMPP (ou un appel HTTP) à un agrégateur, ou directement à l’opérateur de destination.
  4. Le SMSC de l’opérateur stocke le message, localise le téléphone et le livre.
  5. Le SMSC renvoie un accusé de réception en remontant la même chaîne ; la passerelle le rapproche du message, solde l’écriture au grand livre et le transmet au client (sous forme de deliver_sm sur son bind SMPP ou de webhook sur son API).

Deux observations. Premièrement, le serveur SMPP du revendeur et le SMSC de l’opérateur ne dialoguent jamais entre eux ; la passerelle placée entre les deux parle SMPP en tant que client vers l’amont et en tant que serveur vers l’aval, et c’est pour cela que les termes se confondent. Deuxièmement, une même passerelle peut être cliente de plusieurs SMSC et agrégateurs à la fois, ce qui est le fondement même du routage : le message emprunte la connexion la moins chère, la meilleure ou celle prévue au contrat pour cette destination.

Qui exploite quoi

SMSCPasserelle SMSServeur SMPP
EmplacementDans le cœur de réseau d’un opérateur mobileSur un serveur que l’entreprise contrôle (ou loué en SaaS)Dans la passerelle, comme l’un de ses points d’entrée
Exploité parLes opérateurs mobilesEntreprises, revendeurs, agrégateurs, plateformes CPaaSLes passerelles qui servent des clients techniques
Dialogue avecLes terminaux (via SS7/Diameter) et les passerelles connectéesSMSC, agrégateurs, fournisseurs HTTP en amont ; clients en avalLes clients qui se connectent en SMPP
Atteint seul un téléphoneOuiSeulement via un SMSCNon
ExemplesLes systèmes propres aux opérateursKannel (moteur) ; plateformes complètes comme SmppcubeIntégré à une plateforme, ou ajouté par-dessus un moteur

La mention « loué en SaaS » dans la colonne passerelle correspond à l’autre confusion fréquente : un panneau SMS hébergé est lui aussi une passerelle, exploitée par quelqu’un d’autre et à laquelle vous accédez en tant que tenant. Le guide de la passerelle auto-hébergée compare honnêtement le fait d’en exploiter une vous-même et celui de louer une place sur celle d’un autre.

Lesquels vous devez exploiter

Si vous envoyez des messages depuis une seule application (OTP, alertes, notifications) et n’avez pas de clients à vous, vous n’avez besoin d’aucun des trois. L’API HTTP d’un agrégateur est une passerelle dont vous êtes client ; votre seule décision porte sur le choix du fournisseur.

Si vous revendez de la messagerie, menez des campagnes pour le compte d’autres entreprises ou exploitez la messagerie de nombreuses équipes internes, il vous faut une passerelle. Louée ou auto-hébergée : c’est la question suivante, et elle se joue sur les données, la marge et la dépendance au fournisseur plutôt que sur la technologie ; une licence à paiement unique comme celle de Smppcube, sur votre propre serveur, représente l’option auto-hébergée de ce choix.

Si vos clients comptent quiconque dispose d’une bibliothèque cliente SMPP (banques, fournisseurs d’OTP, plateformes marketing, autres agrégateurs), votre passerelle a besoin d’un serveur SMPP. Certaines plateformes en livrent un ; avec un moteur nu, vous l’ajoutez vous-même.

Vous n’avez pas besoin d’un SMSC. Vous ne pouvez pas en exploiter un sans être opérateur, et vous n’en avez pas besoin : le SMSC de chaque opérateur est joignable par un bind ou par un agrégateur. La version pratique de « il nous faut un SMSC » est presque toujours « il nous faut une passerelle avec un serveur SMPP et deux ou trois contrats opérateurs », ce qui est un problème bien plus petit et bien moins coûteux.

Personne en dehors d’un opérateur n’exploite de SMSC. Ce que les entreprises exploitent, c’est une passerelle, et ce à quoi les clients techniques se connectent, c’est le serveur SMPP de cette passerelle. Clarifiez le vocabulaire et la liste d’achats se clarifie d’elle-même.

Une remarque sur les noms employés par les éditeurs

Comme les termes se chevauchent dans le discours marketing, lisez la liste des fonctionnalités plutôt que l’étiquette. Un produit appelé « logiciel SMSC » qui mentionne des binds SMPP, du routage et de la facturation est une passerelle. Un « serveur SMPP » qui mentionne des comptes clients, des grilles tarifaires et un portail est une passerelle dotée d’un point d’entrée SMPP. Une « passerelle SMS » qui n’est qu’un point de terminaison REST sans table de routage est l’API d’un seul fournisseur. Aucun de ces achats n’est une erreur en soi ; l’essentiel est de savoir ce que fait le produit avant de comparer les prix, et de vérifier, quel que soit votre choix, qu’il tourne sur un serveur auquel vous avez accès et qu’il conserve des enregistrements que vous pouvez exporter.

QUESTIONS

Une passerelle SMS est-elle la même chose qu'un SMSC ?

Non. Un SMSC (Short Message Service Centre) est le système de l'opérateur mobile qui stocke et relaie les SMS à l'intérieur du réseau mobile et dialogue avec les terminaux. Une passerelle SMS se situe hors du réseau : elle reçoit les messages des applications ou des clients, décide quelle connexion opérateur utiliser, les remet au SMSC de cet opérateur (ou à un agrégateur qui l'atteint) et collecte les accusés de réception. Les opérateurs exploitent des SMSC ; tous les autres exploitent des passerelles.

Qu'est-ce qu'un serveur SMPP, et en ai-je besoin ?

Un serveur SMPP est le composant qui permet à d'autres systèmes de se connecter à vous (bind) via le protocole SMPP, comme vous vous connectez vous-même à un opérateur. Vous n'en avez besoin que si vos propres clients veulent se connecter en SMPP plutôt que par une API HTTP : banques, fournisseurs d'OTP, autres agrégateurs. La plupart des revendeurs démarrent sans et l'ajoutent lorsqu'un client technique le demande. Une plateforme livrée avec un serveur SMPP vous évite d'écrire plus tard une pile de protocole.

Puis-je exploiter mon propre SMSC ?

Seulement si vous êtes un opérateur mobile, ou si vous disposez d'une connexion SS7 ou Diameter directe vers un réseau mobile, ce qui relève d'une relation télécom réglementée et non d'un achat de logiciel. Ce qu'une entreprise peut exploiter, c'est une passerelle qui se connecte aux SMSC des opérateurs en SMPP ou en HTTP. Les produits qui se présentent comme un SMSC pour entreprises sont, en pratique, des passerelles dotées d'un serveur SMPP.

Quelle est la place de Kannel dans ce schéma ?

Kannel est un moteur de passerelle SMS open source qui parle SMPP et d'autres protocoles opérateurs, et qui prend en charge le travail de livraison de bas niveau : binds, files d'attente, nouvelles tentatives, accusés de réception. C'est le moteur, pas l'activité. Une plateforme complète enveloppe un moteur comme Kannel avec le portail client, les règles de routage, la facturation, les rapports et le serveur SMPP auquel vos clients se connectent, c'est-à-dire la partie qui demande des années à écrire soi-même.

Tous les guides