a norme E.164 de l'UIT-T définit les numéros de téléphone internationaux : un signe plus (+) en début de numéro, suivi d'un indicatif pays de un à trois chiffres, puis du numéro national, sans séparateur et avec un maximum de 15 chiffres. Le stockage de chaque numéro sous cette forme canonique (le MSISDN auquel le réseau se connecte) permet la validation et la fiabilité de l'acheminement.
Vous souhaitez convertir un numéro ? Collez-le dans le formateur de numéros de téléphone pour afficher sa valeur E.164, ou validez une liste entière avec le validateur de listes de numéros. Ce guide explique le fonctionnement interne de ces outils.
Qu'est-ce que E.164 ? Le plan de numérotation international
La norme E.164 (Recommandation E.164 de l'UIT-T) est le plan international de numérotation des télécommunications publiques. Elle attribue à chaque téléphone une adresse unique au niveau mondial, permettant ainsi d'acheminer un appel ou un message d'un réseau à un autre. Un numéro E.164 se compose de trois parties : un indicatif de pays (CC) de un à trois chiffres, un indicatif de destination national (NDC, souvent l'indicatif de l'opérateur ou de la zone) et le numéro d'abonné. La somme de ces éléments ne doit pas dépasser 15 chiffres.
La chaîne canonique est composée d'un signe « + » suivi uniquement de chiffres — par exemple +971500000000. Le signe « + » représente le préfixe d'accès international utilisé par le réseau d'origine (00 dans la plupart des pays, 011 en Amérique du Nord). C'est précisément le stockage du signe « + » au lieu d'un préfixe spécifique au pays qui garantit la portabilité du numéro entre les réseaux et les pays. Un numéro E.164 ne contient ni espaces, ni tirets, ni parenthèses, ni zéros non significatifs : il s'agit de conventions d'affichage, et non de parties intégrantes du numéro.
MSISDN : le numéro vers lequel le réseau achemine réellement les données.
Le MSISDN (Mobile Station International Subscriber Directory Number) est le numéro E.164 joignable qui identifie un abonné mobile. C'est ce numéro que vous enregistrez, composez et auquel vous envoyez des SMS. Il est distinct de l'IMSI, l'identifiant stocké sur la carte SIM conformément à la norme ITU-T E.212 (un code pays mobile, un code réseau mobile et l'identifiant de l'abonné). Le registre de localisation de l'opérateur associe un MSISDN à son IMSI et à son réseau actuels, ce qui permet à un message adressé à un numéro E.164 d'atteindre le bon terminal, même après un changement d'opérateur ou de localisation de l'abonné.
En pratique : un MSISDN est simplement un numéro E.164 pour une ligne mobile. Lorsqu'on parle de « normaliser en MSISDN », on entend « stocker le numéro de mobile au format E.164 standard ». Obtenir une représentation correcte dès la capture est essentiel pour qu'un numéro soit correctement acheminé et qu'il rencontre des problèmes de transmission.
Normalisation : stockage de chaque nombre sous une forme canonique unique
Les utilisateurs saisissent les numéros de toutes sortes : avec des espaces, des parenthèses, un zéro national, un préfixe international 00 ou 011, ou sans aucun de ces éléments. La normalisation les condense en une seule chaîne E.164 canonique, garantissant ainsi que chaque ligne physique est toujours stockée de manière identique. Sans elle, il est impossible de dédupliquer une liste de contacts, de vérifier la présence d'un numéro sur une liste d'exclusion ou de valider avec certitude un numéro avant de l'envoyer.
Un normalisateur robuste applique ces règles dans l'ordre :
- Supprimez tous les caractères de formatage : espaces, tirets, points et parenthèses.
- Convertissez un préfixe d'accès international — un 00 (UIT) ou un 011 (Amérique du Nord) en tête — en un « + ».
- Si le numéro commence déjà par « + », conservez l'indicatif du pays tel quel.
- S'il s'agit d'un format national (sans code pays), supprimez le préfixe national (généralement un seul 0 initial) et ajoutez le code pays de la région par défaut.
- Rejetez tout ce qui n'est pas un '+' suivi de 1 à 15 chiffres, avec un premier chiffre de 1 à 9.
- Ne conservez que le signe « + » et les chiffres ; régénérez à la volée les formats d'affichage attrayants lorsque vous affichez le nombre.
L'étape du zéro interurbain est celle qui pose problème aux équipes. Dans la plupart des pays, le 0 initial que l'on compose au niveau national est un préfixe interurbain qui est omis à l'international : un numéro de mobile des Émirats arabes unis composé 050 000 0000 devient +971 50 000 0000, et non +971 050…. Appliquer l'indicatif du pays sans supprimer ce 0 produit un numéro invalide qui peut paraître plausible. Le normalisateur doit connaître la région par défaut pour interpréter les entrées au format national ; les mêmes chiffres correspondent à des numéros différents selon les pays.
function toE164(raw, defaultRegion) { // 1. Supprimer les espaces, tirets, points et parenthèses let s = raw.trim().replace(/[\s().\-]/g, ''); // 2. Préfixe international 00 (UIT) ou 011 (NANP) -> + s = s.replace(/^(00|011)/, '+'); // 3. Déjà au format international ? Conserver l'indicatif pays if (s.startsWith('+')) return assertE164(s); // 4. Format national : supprimer le 0 de base, ajouter l'indicatif régional s = s.replace(/^0/, ''); return assertE164('+' + defaultRegion.dialCode + s); } // assertE164 n'accepte que /^\+[1-9]\d{1,14}$/ (plus, puis <= 15 chiffres)Voici la même logique appliquée à des exemples réels du CCG et internationaux. Remarquez comment des entrées variées se réduisent à un seul MSISDN clair :
| Code du pays) | Entrée telle que saisie | Canonical E.164 (MSISDN) |
|---|---|---|
| Émirats arabes unis (+971) | 050 000 0000 / 00971 50 000 0000 | +971500000000 |
| Arabie saoudite (+966) | 0500000000 | +966500000000 |
| Égypte (+20) | 0100 123 4567 | +201001234567 |
| Royaume-Uni (+44) | (07911) 123 456 | +447911123456 |
| États-Unis (+1) | 011 1 202 555 0143 | +12025550143 |
Pour les vérifications ponctuelles, le formatteur de numéro de téléphone affiche les formats d'affichage national et international d'un numéro ainsi que sa sortie E.164 ; pour nettoyer un téléchargement complet avant une campagne, le validateur de liste de numéros normalise, déduplique et signale les lignes invalides dans le navigateur afin que les données brutes ne quittent jamais votre machine.
La validité syntaxique n'est pas synonyme d'accessibilité
Les contrôles de normalisation et de longueur indiquent qu'un numéro est valide : format correct, indicatif pays valide, moins de 15 chiffres. Ils ne garantissent cependant pas qu'il soit attribué à un abonné actif. Un numéro E.164 syntaxiquement parfait peut être désattribué, désactivé ou transféré vers un opérateur différent de celui indiqué par son préfixe. L'envoi de messages vers ce numéro reste payant et impacte négativement votre taux de délivrabilité.
Pour confirmer la disponibilité réelle d'un numéro, il est nécessaire d'interroger la base de données des abonnés de l'opérateur. Une recherche HLR (ou HLR lookup) permet de savoir si un numéro est actuellement attribué et actif, son réseau d'origine (le MCC/MNC associé à tout numéro porté) et son statut d'itinérance — des informations que la syntaxe seule ne peut fournir. La procédure recommandée est la suivante : normaliser d'abord les données au format E.164, supprimer rapidement les lignes syntaxiquement invalides, puis effectuer des recherches HLR sur les lignes restantes avant tout envoi important ou de grande valeur.
Pourquoi les erreurs de formatage entraînent des pertes financières et empêchent la bonne réception des messages.
Les SMS A2P sont facturés par segment à l'envoi, et non à la livraison. Un numéro mal formé correspond à un message payant qui n'arrive jamais à destination ; or, à grande échelle, ces échecs s'accumulent. Un formatage incorrect masque également les doublons (une même ligne stockée de trois manières différentes est facturée trois fois), fausse vos indicateurs de taux de délivrabilité et peut déclencher les filtres de l'opérateur lorsqu'une passerelle reçoit des numéros qu'elle ne peut pas analyser.
La solution la plus économique repose entièrement sur votre API : normalisez les numéros à la capture, validez le format E.164 avant la mise en file d'attente et réservez les requêtes HLR aux numéros conformes. Les équipes intégrant cette solution à leur infrastructure peuvent la configurer une seule fois avec une API de messagerie (voir la documentation développeur) afin que chaque numéro soit canonique avant toute facturation. La gestion des numéros nationaux et internationaux n'est pas un cas isolé au Moyen-Orient et en Afrique du Nord : les expéditeurs du CCG reçoivent régulièrement des numéros des Émirats arabes unis, d'Arabie saoudite et d'Égypte au format local, et chacun nécessite sa propre règle de préfixe de tronc pour une normalisation correcte.
Des numéros propres à l'entrée, des messages délivrés à l'envoi. Normalisez et vérifiez tout numéro avec le formatteur de numéros de téléphone, puis assurez-vous que les destinataires sont actifs avec la recherche HLR avant l'envoi. Depuis 2003, BroadNet achemine du trafic omnicanal vers 200+ pays via 1,000+ connexions opérateurs, avec un SLA de plateforme de 99,99 %.
Foire aux questions
Qu'est-ce que le format E.164 ?
La norme E.164 est la norme internationale de numérotation des numéros de téléphone de l'UIT-T. Un numéro au format E.164 se compose d'un signe « + », d'un indicatif de pays de un à trois chiffres, et du numéro national, écrit uniquement en chiffres, sans espaces ni séparateurs, et ne pouvant comporter que 15 chiffres au maximum — par exemple : +971500000000. Il s'agit du format standard pour stocker un numéro de téléphone en vue de son acheminement international.
Comment valider un numéro de téléphone international ?
La validation se fait en deux étapes. Premièrement, la validation syntaxique consiste à normaliser l'entrée au format E.164 (supprimer la mise en forme, convertir les préfixes 00/011 en « + », supprimer les zéros d'indicatif national et ajouter l'indicatif pays) et à vérifier qu'il s'agit bien d'un « + » suivi de 1 à 15 chiffres. Deuxièmement, la validation de la disponibilité consiste à effectuer une recherche HLR pour confirmer que le numéro est effectivement attribué et actif. La validité syntaxique seule ne garantit pas qu'un numéro puisse recevoir des messages.
Qu’est-ce que la normalisation MSISDN ?
La normalisation MSISDN consiste à convertir un numéro de mobile, quel que soit son format local, en son numéro MSISDN E.164 canonique — le numéro international vers lequel le réseau achemine les appels. Elle supprime les séparateurs, résout le préfixe de réseau et le préfixe d’accès international, et applique l’indicatif de pays approprié, afin que chaque ligne soit toujours stockée de manière identique pour la déduplication, la validation et la transmission fiable des appels.
Références
- Recommandation E.164 de l'UIT-T — Plan international de numérotation des télécommunications publiques : itu.int
- Recommandation E.212 de l'UIT-T — Plan d'identification international pour les réseaux publics et les abonnements (IMSI, MCC/MNC) : itu.int
- BroadNet — formatteur de numéro de téléphone et validateur de liste de numéros pour la normalisation E.164.
- BroadNet — HLR lookup pour confirmer la véritable accessibilité au-delà de la validité syntaxique.
