Schritt 1: die Ländervorwahl
Jede Nummer beginnt mit der Ländervorwahl. Sie umfasst 1 bis 3 Ziffern: 49 für Deutschland, 43 für Österreich, 41 für die Schweiz, 33 für Frankreich. Die vollständige Liste steht in unserer Übersicht der Telefonvorwahlen nach Ländern.
In der Norm E.164 steht vor dieser Vorwahl immer ein „+“.
Die „00“, die Sie von einem deutschen Anschluss aus wählen, führt zum selben Ziel, gehört aber zum Netz des Absenders. Jedes Land hat seine eigene: 00 in Deutschland wie im übrigen Europa, 011 in den USA und Kanada, 0011 in Australien. Eine als 0049151123456 gespeicherte Nummer zwingt also jeden Empfänger, Ihre lokale Schreibweise zu übersetzen. Das „+“ wird überall gelesen. Behalten Sie es in Ihren Spalten.
Schritt 2: die Norm E.164
E.164 ist die Empfehlung der Internationalen Fernmeldeunion, die festlegt, wie eine Nummer geschrieben wird, damit sie aus jedem Netz erreichbar bleibt. Sie gilt für Anrufe wie für SMS.
Die Nummer steht in einem Block, mit dem „+“ und danach den Ziffern. Und sie bleibt bei höchstens 15 Ziffern, Vorwahl eingerechnet, das „+“ ausgenommen.
So sieht eine Nummer im Format E.164 aus
Nehmen wir die 0151 12345678, eine deutsche Mobilnummer.
- Ländervorwahl: 49
- Nationale Nummer: 0151 12345678
- Die führende 0 entfällt, sobald die Vorwahl davorsteht
- Ergebnis: +4915112345678
Die nationale Nummer besteht aus der Kennzahl, die den Anschlusstyp bestimmt (15, 16 und 17 für Mobilfunk, 2 bis 9 für Festnetz), und der Teilnehmernummer.
Die Fehler, an denen eine Umwandlung scheitert
- Leerzeichen, Punkte, Bindestriche und Klammern bleiben in der Datenbank stehen. Aus +49 151 123 456 78 muss +4915112345678 werden.
- Die 0 bleibt nach der Vorwahl erhalten. Ein +49015112345678 wird vom Netzbetreiber abgelehnt.
- Die 00 bleibt vor der Vorwahl stehen. Richtig ist +49, niemals 0049 oder 00+49.
- Italien behält die führende 0 seiner Festnetznummern. Eine römische Festnetznummer wird zu +390612345678. Ohne die 0 entstünde eine nicht existierende Nummer. Italienische Mobilnummern folgen dieser Regel nicht, sie beginnen ohnehin mit 3.
- Excel verschluckt das „+“ oder wandelt die Nummer in wissenschaftliche Notation um. Formatieren Sie die Spalte vor dem Import als Text, sonst wird aus 4915112345678 die Anzeige 4,91511E+12.
Eine Nummer mit einem regulären Ausdruck prüfen
Sobald die Nummer umgewandelt ist, prüft ein regulärer Ausdruck ihre Form. In PHP: preg_match('/^\+[1-9]\d{1,14}$/', $nummer). Er akzeptiert ein „+“, eine erste Ziffer zwischen 1 und 9, danach 1 bis 14 weitere Ziffern.
Für deutsche Mobilnummern schlagen viele Anleitungen ^\+491[5-7]\d{8,9}$ vor. Diese Fassung greift zu weit. In den Metadaten von libphonenumber gelten in der 16er-Gasse nur 160, 162 und 163 als Mobilfunk, während 161 und 164 bis 169 herausfallen. Der tatsächliche Mobilfunkbereich lautet ^\+49(?:1(?:6[023]|7\d)\d{7,8}|15(?:[0-25-9]\d\d|3(?:10|33))\d{6})$.
Deutschland macht die Sache besonders unangenehm, weil nationale Nummern hier zwischen 6 und 13 Ziffern lang sind. Jeder reguläre Ausdruck mit fester Länge liegt also zwangsläufig falsch. Google veröffentlicht libphonenumber in Java, C++ und JavaScript, die Portierungen für PHP und Python pflegt die Community. In einer SMS-Kampagne geht eine falsch akzeptierte 0161er-Nummer trotzdem mit raus und wird berechnet.
Ein regulärer Ausdruck prüft eine Form. Über das, was am Ende der Leitung liegt, sagt er nichts.
Eine korrekt formatierte Nummer kann unerreichbar sein
Eine Nummer nach E.164 ist zustellbar. Sie kann trotzdem seit 3 Jahren gekündigt oder zu einem anderen Netzbetreiber portiert worden sein.
Der HLR Lookup fragt das Register des Netzbetreibers ab und liefert den tatsächlichen Zustand der Leitung, aktiv oder abgeschaltet, samt dem Betreiber, der sie heute führt. Bei online gesammelten Datenbanken entfernt diese Prüfung die toten Nummern, bevor die SMS-Kampagne sie berechnet.
Für Unternehmen mit Kunden außerhalb Deutschlands entscheidet die Umwandlung der gesamten Datenbank ins internationale Format darüber, ob Marketing-SMS und Transaktions-SMS ankommen.
Ihre Nummern ins Format E.164 umwandeln
Fügen Sie bis zu 100 Nummern ein, eine pro Zeile, gemischt oder nicht. Jede Nummer mit eigener Vorwahl wird von allein erkannt, unter 215 Ländern. Eine Zeile, die das Werkzeug nicht umwandeln kann, bleibt unverändert an ihrem Platz, damit Sie sie wiederfinden.