https://a.storyblok.com/f/270183/1368x665/0e228316b7/what-is-e164.png

Was ist das E.164-Format?

Zuletzt aktualisiert am October 23, 2024

Lesedauer: 2 Minuten

E.164 ist ein internationaler Standard, der ein Telefonnummernschema festlegt, das sicherstellt, dass jeder Nutzer weltweit eine eindeutige Telefonnummer hat und sie für Anrufe und Nachrichten miteinander in Verbindung treten können. Dadurch vereinfacht der Standard vereinfacht internationale Anrufe und verringert das Risiko, eine falsche Nummer zu wählen.

Gemäß dem E.127-Normgibt es verschiedene Möglichkeiten, eine Telefonnummer zu spezifizieren: geografische Gebiete, globale Dienste, Netze, usw. Dieser Artikel verwendet die Standarddarstellung für geografische Gebieteverwendet, da dies das Format ist, das in den Vonage-APIs verwendet wird.

Das E.164-Format

E.164 besteht aus maximal 15 Ziffern und hat das folgende Format:

[Landesvorwahl] [nationale Vorwahl] [Teilnehmernummer]

wo:

  • Ländercode (CC) entspricht den internationalen Ländervorwahlen (1 bis 3 Ziffern). Bei internationalen Telefonnummern wird der Ländervorwahl ein Pluszeichen (+) vorangestellt.

  • Nationaler Bestimmungsort-Code (NDC) kennzeichnet ein bestimmtes Gebiet, eine Region oder ein Netz innerhalb des Landes.

  • Teilnehmernummer (SN) ist die individuelle Telefonnummer, die dem Benutzer zugewiesen wurde. Die Länge des NDC und der SN muss 15 minus der Länge des CC betragen.

Beispiele


Vereinigte Staaten

Die Rufnummer 212 123 1234 kann im E.164-Format als +12121231234 dargestellt werden, wobei:

  • +1 ist die Landesvorwahl für die USA.

  • 212 ist der NDC.

  • 1231234 ist die Teilnehmernummer.

Vereinigtes Königreich

Die Rufnummer 020 1234 5678 kann im E.164-Format als +4 dargestellt werden42012345678, wobei:

  • +44 ist die Landesvorwahl für das Vereinigte Königreich.

  • 20 ist die Vorwahl für London.

  • 1231234 ist die Teilnehmernummer.

Spanien

Die Rufnummer 91 234 5678 kann in E.164 als +34912345678 dargestellt werden, wobei:

  • +34 ist die Landesvorwahl für Spanien.

  • 91 ist die Vorwahl für Madrid.

  • 2345678 ist die Teilnehmernummer.

Deutschland

Die Rufnummer 030 12345678 kann in E.164 als +493012345678 dargestellt werden, wobei

  • +49 ist die Landesvorwahl für Deutschland.

  • 30 ist die Vorwahl für Berlin.

  • 12345678 ist die Teilnehmernummer.

Warum ist E.164 wichtig?

Viele unserer APIs verwenden Telefonnummern, die dem E.164-Standard entsprechen. Insbesondere die Netzwerk-APIs erwarten, dass API-Kunden dieses Format beim Aufruf einiger Endpunkte einhalten.

Zum Beispiel, laut der API-Referenzder /check Endpunkt die Telefonnummer des Teilnehmers im E.164-Format, um zu überprüfen, ob vor kurzem eine neue Verbindung zwischen seiner SIM-Karte und der Telefonnummer hergestellt wurde.

Wie können wir eine E.164-Telefonnummer validieren?

Als Entwickler müssen wir unbedingt sicherstellen, dass die Eingaben des Benutzers korrekt sind. Dazu gehört die Bereinigung, Validierung und Bestätigung, dass die Telefonnummer dem E.164-Format entspricht, bevor ein API-Aufruf erfolgt. Das spart uns Zeit und Bandbreite.

Eine Lösung besteht darin, eine der vorhandenen Bibliotheken zur Validierung von Telefonnummern zu verwenden.

Überprüfen Sie bitte die Telefon Bibliothek, wenn Sie in JavaScript programmieren. Das folgende Beispiel zeigt die Validierung einer Telefonnummer:

const {phone} = require('phone');

phone('+1(817) 569-8900', {country: '"USA'}); 

/* 
{  isValid: true, 
    phoneNumber: '+18175698900', 
    countryIso2: 'US', 
    countryIso3: 'USA', 
    countryCode: '+1'
}
/*

Wenn Sie ein Python-Programmierer sind, Telefonnummern ist Ihre Bibliothek. Hier ist ein Beispiel:

import phonenumbers

my_number = phonenumbers.parse("+34911234567", "ES")
print(phonenumbers.is_valid_number(my_number)) # True

Alternativ können Sie einen eigenen Validator mit regulären Ausdrücken erstellen. Abhängig von der Regex-Sprache, etwas in der Art von:

^\+?[1-9]\d{1,14}$

Das folgende Python-Programm verwendet diesen regulären Ausdruck, um einige Eingabedaten zu überprüfen:

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)}")

Nehmen Sie Kontakt auf!

Wie validieren Sie die Eingaben Ihrer Benutzer? Welche Bibliothek würden Sie empfehlen? Wir würden uns über Ihr Feedback freuen! Schließen Sie sich uns auf dem Vonage Community Slack oder senden Sie uns eine Nachricht auf Xund wir werden uns bei Ihnen melden.

Vielen Dank fürs Lesen!

Teilen Sie:

https://a.storyblok.com/f/270183/405x400/2b811a162d/alvaro-navarro.jpg
Alvaro NavarroSenior Advocate für Entwickler

Alvaro ist Developer Advocate bei Vonage und konzentriert sich auf Netzwerk-APIs. Er hat eine Leidenschaft für Developer Experience, APIs und Open Source. Außerhalb der Arbeit findet man ihn oft in Comicläden, auf Science-Fiction- und Horrorfestivals oder beim Basteln mit diesen berühmten kleinen Plastikbausteinen.