n SMS A2P suit un chemin défini : votre application se connecte à un SMSC ou à un agrégateur via SMPP en tant qu'ESME et envoie une requête submit_sm ; le SMSC stocke le message, interroge le HLR de l'opérateur de destination pour localiser le MSC de l'abonné, le transmet au terminal (MT) et renvoie un accusé de réception à l'opérateur précédent. Chaque étape peut entraîner une dégradation de la livraison, de l'identifiant de l'expéditeur ou de la réception.
Vous préférez une version concise ? Consultez notre réponse à la question qu'est-ce qu'une SMSC ?. Cet article vous offre une explication détaillée.
La distribution des personnages
Avant de retracer le parcours, il est utile de nommer les composantes et d'expliquer leur rôle. Trois acronymes résument l'essentiel : SMSC, ESME et HLR. Deux directions sont importantes : MT et MO.
SMSC — le moteur de stockage et de retransmission
Le centre de service de messagerie courte (SMSC) est le serveur côté opérateur qui reçoit un message, le stocke et le transmet au destinataire — le nœud défini autour du protocole de transfert SMS dans la norme 3GPP TS 23.040. Il ne s’agit pas d’un simple relais : il conserve le message jusqu’à ce que le terminal soit joignable, effectue des tentatives de retransmission pendant sa période de validité et génère un rapport d’état. Lorsque vous envoyez un message via un agrégateur, vous communiquez avec son SMSC (ou une passerelle située en amont) ; l’opérateur destinataire exécute son propre SMSC qui assure la livraison finale.
ESME — votre application sur le fil
Une entité de messagerie courte externe (ESME) est une application qui se connecte à un SMSC pour envoyer ou recevoir des SMS — votre service OTP, votre plateforme de campagne, votre système d’alerte. Via SMPP, l’ESME ouvre une session TCP persistante avec un émetteur (bind), puis envoie un SMS via submit_sm. Le SMSC répond par une réponse submit_sm_resp contenant un identifiant de message (message_id), puis renvoie un message deliver_sm à l’ESME pour les messages entrants et les accusés de réception. L’ESME est le client ; le SMSC est le serveur.
MT vs MO — dans quel sens circule le message
Un message destiné à un mobile (MT) est un message remis à un terminal mobile – le sens de circulation de la quasi-totalité du trafic A2P : un code OTP, une alerte, une mise à jour de livraison arrivent sur un téléphone. Un message d'origine mobile (MO) est un message envoyé par un abonné depuis son terminal ; c'est ainsi que les réponses bidirectionnelles, les désabonnements par mot-clé et les demandes STOP parviennent à votre ESME sous forme de deliver_sm. Un accusé de réception (DLR) emprunte le chemin de retour MT, même s'il vous est renvoyé.
| Composant | Rôle dans le processus de livraison |
|---|---|
| Application / ESME | Votre logiciel se connecte au SMSC via SMPP et envoie des messages MT via submit_sm |
| SMSC (côté agrégateur) | Accepte, valide et stocke le message ; sélectionne une route vers l’opérateur de destination ; renvoie l’identifiant du message (message_id) et, ultérieurement, le DLR. |
| Centre d'interconnexion/SMS | Transporte le message entre l'agrégateur et l'opérateur de terminaison sur un ou plusieurs sauts. |
| SMSC de l'opérateur terminal | Reçoit le message sur le réseau de l'opérateur et assure sa livraison finale à l'abonné. |
| HLR | Base de données des abonnés résidentiels ; répond à la question « Où ce numéro est-il actuellement desservi ? » avec l’adresse MSC/VLR de desserte |
| MSC / VLR | Le commutateur actuellement en service pour l'abonné appelle le combiné et transmet le message MT |
| Combiné (MS) | Reçoit le message et renvoie un acquittement qui fait office d'accusé de réception. |
Stockage et retransmission : pourquoi existe le SMSC
Par conception, les SMS sont asynchrones. Le destinataire peut être éteint, hors de portée ou en communication sans possibilité de transmission. Au lieu d'échouer, le centre de messagerie SMS (SMSC) accepte le message, le conserve et prend en charge sa livraison : c'est le principe du stockage et du retransmission. Il tente la livraison et, si l'abonné est injoignable, il met le message en file d'attente et effectue des réessais périodiques jusqu'à ce que la livraison réussisse ou que la période de validité du message expire. Lorsque le réseau signale ultérieurement que le téléphone est de nouveau disponible, le SMSC est invité à réessayer. Cette persistance est essentielle au fonctionnement d'un centre de messagerie, et c'est pourquoi un SMS « envoyé » n'est pas encore considéré comme « distribué » : deux états que votre flux DLR doit impérativement maintenir distincts.
Suivre un SMS A2P de l'application au téléphone
Voici le parcours complet d'un seul message MT — par exemple, un code OTP de connexion envoyé par une banque à Riyad à un abonné sur un réseau du CCG — de votre code jusqu'au téléphone et retour.
- Votre application s'authentifie et ouvre une liaison SMPP avec l'agrégateur/SMSC en tant qu'ESME, puis envoie un submit_sm contenant le MSISDN de destination, l'ID de l'expéditeur, l'encodage et le texte.
- Le SMSC valide et stocke le message, lui attribue un identifiant (message_id) et le renvoie dans la réponse submit_sm_resp. À ce stade, le message est accepté, mais pas encore distribué.
- Le SMSC sélectionne une route vers l'opérateur de destination — idéalement une interconnexion directe, sinon un chemin via un ou plusieurs hubs SMS.
- Le message parvient au SMSC de l'opérateur destinataire sur le réseau de destination.
- Ce SMSC interroge le HLR de l'opérateur (un MAP SendRoutingInfoForSM) pour trouver où l'abonné est actuellement desservi — l'adresse du MSC/VLR de desserte.
- Le HLR renvoie les informations de routage ; le SMSC transmet le message (MT-ForwardSM) à ce MSC.
- Le MSC de service contacte le combiné via le réseau radio et délivre le message (transmission MT).
- Le combiné accuse réception ; l'accusé de réception est renvoyé et le SMSC destinataire génère un rapport de livraison.
- L'accusé de réception remonte l'interconnexion jusqu'au SMSC de l'agrégateur, qui le transmet à votre ESME sous forme de deliver_sm (ou de webhook) contenant l'identifiant du message d'origine et un statut final.
Les étapes de signalisation 5 à 7 — la recherche HLR et le transfert MT-ForwardSM vers le commutateur de desserte — se déroulent au sein du cœur SS7/Diameter de l'opérateur, grâce aux opérations MAP du réseau mobile. Elles ne sont jamais visibles directement, mais elles expliquent pourquoi un message peut être « accepté » en quelques millisecondes tout en mettant plus de temps à arriver : le réseau de destination doit localiser un abonné en mouvement avant de pouvoir le transmettre.
Le HLR : localiser un abonné en mouvement
Le registre de localisation d'origine (HLR) est la base de données principale contenant l'identité d'un abonné et sa localisation actuelle sur son réseau domestique. Du fait des déplacements entre les commutateurs, le SMSC de terminaison ne peut pas présumer de l'emplacement d'un numéro ; il interroge le HLR, qui lui renvoie le MSC/VLR de desserte afin que le message puisse être acheminé vers le commutateur approprié. Cette même requête est utilisée, à elle seule, pour la validation des numéros : une requête HLR indique si un numéro est actif, porté ou en itinérance avant même son envoi. Lorsque le routage est direct, cette requête se limite à un seul échange de signalisation interne. En revanche, lorsqu'un message traverse plusieurs réseaux intermédiaires, la requête n'intervient qu'après tous ces sauts, ce qui augmente la latence et les risques de défaillance.
Routes directes vs agrégation multi-sauts
Le chemin décrit ci-dessus est idéal : votre ESME vers un SMSC qui prend ensuite le relais via une interconnexion directe avec l’opérateur de destination. En réalité, le chemin est souvent plus long. Sur une route d’agrégation multi-sauts, le message transite par une chaîne de revendeurs et de hubs SMS avant d’atteindre le réseau de destination ; chaque saut étant un nœud susceptible de réécrire, de retarder ou de supprimer des données. Trois éléments se dégradent avec l’accumulation des sauts :
- Fiabilité : chaque intermédiaire représente une file d’attente supplémentaire, un pare-feu de plus et une partie supplémentaire dont le chemin vers l’opérateur peut être instable et bloqué sans préavis. Plus il y a de sauts, plus le taux de livraison est variable.
- Préservation de l'identifiant de l'expéditeur : les identifiants alphanumériques de l'expéditeur et les en-têtes enregistrés peuvent être écrasés ou supprimés par un intermédiaire, de sorte qu'un message envoyé sous votre marque peut provenir d'un long numéro partagé — un risque réel sur les marchés du CCG où les opérateurs exigent des identifiants d'expéditeur pré-enregistrés.
- Fidélité du DLR : un accusé de réception de livraison authentique de l’opérateur perd toute signification au fil des intermédiaires. Ces derniers peuvent renvoyer une confirmation de livraison au niveau de la passerelle, indiquant simplement « j’ai transmis le colis », et non que le terminal l’a reçu. Par conséquent, votre rapport d’état ne reflète plus la réalité.
C’est pourquoi le nombre de sauts entre votre API et l’opérateur de terminaison est la question la plus pertinente à poser à un fournisseur. Un routage direct préserve l’identifiant de l’expéditeur, renvoie un DLR au niveau de l’opérateur et achemine le trafic du HLR au terminal sans intermédiaire. Les opérateurs et les entreprises qui ont besoin de visualiser l’intégralité du processus (accepté, routé, livré, accusé de réception) s’appuient sur une vue ESME et CDR qui rapproche chaque submit_sm de son DLR final, ainsi que sur une passerelle SMSC de niveau opérateur qui termine le trafic directement au lieu de le revendre.
BroadNet exploite des routes directes depuis 2003 — 1,000+ connexions opérateurs dans 200+ pays (en direct avec l'opérateur dans 86 d'entre eux) avec un SLA de plateforme de 99,99 %, supportant jusqu’à 30 000 SMS/seconde par nœud. Si vous vous abonnez en tant qu’ESME via SMPP ou si vous terminez votre envoi via notre passerelle SMSC, vous bénéficiez d’un routage direct avec accusés de réception au niveau de l’opérateur, et non d’une chaîne multi-sauts qui modifie discrètement votre identifiant d’expéditeur.
Foire aux questions
Comment un SMSC envoie-t-il un SMS ?
Le SMSC utilise le mécanisme de stockage et de retransmission : il reçoit et stocke le message, puis interroge le HLR de l’opérateur destinataire pour trouver le MSC/VLR desservant l’abonné. Il transmet ensuite le message (MT-ForwardSM) à ce commutateur, qui appelle le terminal et le remet au destinataire. Si le terminal est injoignable, le SMSC met le message en file d’attente et effectue de nouvelles tentatives pendant la période de validité du message, puis génère un accusé de réception.
Qu'est-ce qu'une ESME ?
Une ESME (External Short Messaging Entity) est une application qui se connecte à un SMSC pour envoyer ou recevoir des SMS : un service OTP, une plateforme de campagne, un système d’alerte, etc. Elle se connecte au SMSC via SMPP en tant que client et utilise la fonction submit_sm pour envoyer des messages destinés aux mobiles, tandis que le SMSC renvoie la fonction deliver_sm pour les réponses et les accusés de réception. En bref : l’ESME est votre logiciel sur le réseau.
Quel est le chemin emprunté par un SMS A2P de l'application au téléphone portable ?
L'application se connecte à un agrégateur/SMSC en tant qu'ESME et envoie un message submit_sm. Le SMSC stocke le message et l'achemine, directement ou via des hubs SMS, vers le SMSC de l'opérateur destinataire. Ce dernier interroge le HLR pour obtenir le MSC de service, lui transmet le message, et le commutateur envoie un message au terminal (livraison MT). L'accusé de réception du terminal est renvoyé sous forme de récépissé de livraison dans la même chaîne.
Références
- 3GPP — TS 23.040, Réalisation technique du service de messagerie courte (SMS) : 3gpp.org
- SMPP — Spécification du protocole Peer-to-Peer à messages courts (ESME-to-SMSC) : smpp.org
- BroadNet — qu'est-ce qu'un SMSC et le guide d'intégration SMPP.
- BroadNet — plateforme ESME et CDR et la passerelle SMSC.
