
Partager:
Alvaro est un défenseur des développeurs chez Vonage, se concentrant sur les API de réseau. Il est passionné par l'expérience des développeurs, les API et l'Open Source. En dehors du travail, vous pouvez souvent le trouver en train d'explorer des magasins de bandes dessinées, d'assister à des festivals de science-fiction et d'horreur ou de fabriquer des objets avec ces fameux petits blocs de construction en plastique.
Qu'est-ce que le format E.164 ?
Temps de lecture : 3 minutes
E.164 est une norme internationale qui définit un système de numéros de téléphone garantissant que chaque utilisateur dans le monde dispose d'un numéro de téléphone unique et leur permettant de se connecter les uns aux autres pour passer des appels téléphoniques et envoyer des messages. En conséquence, la norme simplifie les appels internationaux et réduit le risque de composer un mauvais numéro.
Selon la norme norme E.127il existe différentes façons de spécifier un numéro de téléphone : zones géographiques, services globaux, réseaux, etc. Dans cet article, nous utiliserons la représentation standard pour les zones géographiquescar c'est le format utilisé dans les API de Vonage.
Le format E.164
E.164 a un maximum de 15 chiffres et suit le format suivant :
[indicatif de pays] [indicatif national de destination] [numéro d'abonné].
où :
Code pays (CC) correspond aux indicatifs internationaux codes d'appel internationaux des pays (1 à 3 chiffres). Par convention, les numéros de téléphone internationaux sont représentés en faisant précéder l'indicatif du pays d'un signe plus (+).
Code national de destination (NDC) identifie une zone, une région ou un réseau spécifique à l'intérieur du pays.
Le numéro d'abonné (SN) est le numéro de téléphone individuel attribué à l'utilisateur. La longueur du NDC et du SN doit être égale à 15 moins la longueur du CC.
Exemples
États-Unis
Le numéro de téléphone 212 123 1234 peut être représenté au format E.164 par +12121231234, où :
+1 est l'indicatif de pays pour les États-Unis.
212 est le NDC.
1231234 est le numéro d'abonné.
Royaume-Uni
Le numéro de téléphone 020 1234 5678 peut être représenté au format E.164 par +442012345678, où :
+44 est l'indicatif de pays pour le Royaume-Uni.
20 est l'indicatif régional de Londres.
1231234 est le numéro d'abonné.
Espagne
Le numéro de téléphone 91 234 5678 peut être représenté en E.164 par +34912345678, où :
+34 est l'indicatif de pays pour l'Espagne.
91 est l'indicatif régional de Madrid.
2345678 est le numéro d'abonné.
Allemagne
Le numéro de téléphone 030 12345678 peut être représenté en E.164 par +493012345678, où :
+49 est l'indicatif de pays pour l'Allemagne.
30 est l'indicatif de Berlin.
12345678 est le numéro d'abonné.
Pourquoi l'E.164 est-il important ?
Nombre de nos API utilisent des numéros de téléphone conformes à la norme E.164. En particulier, les API de réseau attendent des consommateurs d'API qu'ils respectent ce format lorsqu'ils appellent certains points d'extrémité.
Par exemple, l Identity Insights API Identity Insights accepte le numéro de téléphone de l'abonné au format E.164. Elle renvoie des informations telles que le fait de savoir si la carte SIM a été récemment liée à ce numéro, ainsi que l'opérateur d'origine et l'opérateur actuel.
Comment valider un numéro de téléphone E.164 ?
En tant que développeurs, il est essentiel de s'assurer que les données saisies par l'utilisateur sont correctes. Il s'agit notamment d'assainir, de valider et de confirmer que le numéro de téléphone respecte le format E.164 avant d'effectuer tout appel à l'API. Cela nous fera gagner du temps et de la bande passante.
Une solution consiste à utiliser l'une des bibliothèques existantes pour aider à valider les numéros de téléphone.
Il peut être utile de vérifier le phone si vous codez en JavaScript. L'exemple suivant montre la validation d'un numéro de téléphone :
const {phone} = require('phone');
phone('+1(817) 569-8900', {country: '"USA'});
/*
{ isValid: true,
phoneNumber: '+18175698900',
countryIso2: 'US',
countryIso3: 'USA',
countryCode: '+1'
}
/*Si vous êtes un programmeur Python, phonenumbers est votre bibliothèque. Voici un exemple :
import phonenumbers
my_number = phonenumbers.parse("+34911234567", "ES")
print(phonenumbers.is_valid_number(my_number)) # TrueVous pouvez également créer votre propre validateur à l'aide d'expressions régulières. Selon le langage des expressions régulières, quelque chose comme :
^\+?[1-9]\d{1,14}$Le programme Python suivant utilise cette expression régulière pour valider certaines données d'entrée :
import re
def validate_e164(phone_number):
pattern = r'^\+?[1-9]\d{1,14}$'
return bool(re.match(pattern, phone_number))
# Test the function
test_numbers = [
"+14155552671", # Valid E.164 number (US)
"+442071838750", # Valid E.164 number (UK)
"+493012345678", # Valid E.164 number (Germany)
"+34916543210", # Valid E.164 number (Spain)
"1234567890", # Invalid (missing +)
"+1234567890123456" # Invalid (too long)
]
for number in test_numbers:
print(f"{number}: {validate_e164(number)}") Prenez contact !
Comment validez-vous les données saisies par vos utilisateurs ? Quelle bibliothèque recommanderiez-vous d'utiliser ? N'hésitez pas à nous faire part de vos commentaires ! Rejoignez-nous sur Communauté Vonage Slack ou envoyez-nous un message sur Xet nous vous répondrons.
Merci de votre lecture !
Partager:
Alvaro est un défenseur des développeurs chez Vonage, se concentrant sur les API de réseau. Il est passionné par l'expérience des développeurs, les API et l'Open Source. En dehors du travail, vous pouvez souvent le trouver en train d'explorer des magasins de bandes dessinées, d'assister à des festivals de science-fiction et d'horreur ou de fabriquer des objets avec ces fameux petits blocs de construction en plastique.