Wählplan mit Amtsholung 0 in Teams

von

Wählplan mit Amtsholung 0 in Teams

Wenn die Null vor der Nummer die Migration überlebt

Wählplan mit Amtsholung 0 in Teams richtig bauen

Links Telefontastatur einer TK-Anlage, Taste 0 markiert; rechts Teams-Wählplan DP-Frankfurt mit drei Umwandlungsbeispielen.

WISSEN

Alles zur Teams-Telefonie: Direct Routing, SBC, Wählpläne, Notruf, Sprachqualität und Betrieb an einem Ort.

› Teams-Telefonie

BERATUNG

Du willst die Amtsholung behalten, ohne dass Notruf und Rückruf darunter leiden? Wir planen den Wählplan mit dir.

› Beratung zur Teams-Telefonie

SCHULUNG

Für Admins, die Wählpläne, Normalisierungsregeln und Voice Routing selbst bauen, testen und sicher ändern wollen.

› Schulung Teams-Telefonie

 

Es gibt Gewohnheiten, die überleben jede Migration. Die Null vor der externen Nummer gehört dazu. Generationen von Kolleginnen und Kollegen haben an der alten TK-Anlage gelernt: erst die 0 fürs Amt, dann die eigentliche Nummer. Dann kommt Teams, der Projektplan sagt „Go-live Montag“, und am Montag um 8:05 Uhr steht das Telefon im Helpdesk nicht mehr still. Nicht, weil Teams kaputt wäre. Sondern weil niemand dem Wählplan gesagt hat, dass die Null ab sofort nicht mehr zur Nummer gehört.

In diesem Beitrag geht es um genau dieses Problem rund um teams wählplan amtsholung: wie sich eine fehlende oder halbherzige Amtsholung im Alltag äußert, wo in der Rufkette sie verarbeitet wird, wie du mit lesenden PowerShell-Befehlen herausfindest, was bei einem Benutzer wirklich passiert, und wie ein vollständiger Wählplan mit Amtsholung 0 für einen Standort aussieht. Inklusive Notruf mit und ohne Null, Durchwahlen, Mobilfunk und Ausland.

Grundlagen zu Direct Routing und SBC wiederholen wir hier nicht. Den Gesamtüberblick findest du auf der Seite Teams-Telefonie, die allgemeinen Regex-Fallen in Wählplänen in Normalisierungsregeln in Teams: typische Fehler und wie du sie findest.

FAKTEN · Das Beispiel in diesem Beitrag

Erfundener Tenant Contoso (contoso.com) mit Standorten in Frankfurt, Köln, Berlin, Hamburg und München. Der Standort Frankfurt hat den Rufnummernblock +49 69 555 0xxx, die Zentrale ist +49 69 555 0100. Durchwahlen sind dreistellig von 200 bis 999, die Hunderterreihe 1xx bleibt frei. Abgehende Anrufe laufen per Direct Routing über sbc1.contoso.com.

Gewählt wird wie früher an der TK-Anlage: 0 für das Amt, danach die Nummer so, wie man sie von einem normalen Festnetzanschluss wählen würde. Also 0 plus Ortsnummer, 0 plus 0 plus Vorwahl, 0 plus 00 plus Landeskennzahl.

Alle Diagnosebefehle sind lesend (Get- und Test-Cmdlets aus dem Modul MicrosoftTeams). Geschrieben wird erst im Abschnitt zur Behebung, mit Sicherung und Rückweg.

 

Das Symptom: „Seit Teams komme ich nicht mehr raus“

Die Meldungen nach einer Umstellung ohne passenden Wählplan klingen erstaunlich einheitlich. Wer sie einmal sortiert, erkennt schnell, ob die Amtsholung der Täter ist. Das Leitmotiv: Es funktioniert, sobald die Nummer anders eingetippt wird. Das ist fast nie ein SBC-Problem, sondern fast immer eine Frage der Normalisierung.

Was der Helpdesk hört

Was technisch passiert

Wahrscheinliche Ursache

„Mit 0 vorne kommt eine Ansage, ohne 0 geht es.“

Die Amtsholung wird als Teil der Nummer behandelt

Kein Wählplan mit Amtsholung zugewiesen

„Inland geht, ins Ausland komme ich nicht.“

Aus 0 00 44 … wird eine nationale Nummer

Regel für 000 fehlt oder steht unter der nationalen Regel

„Ortsgespräche gehen nicht, Ferngespräche schon.“

Es gibt keine Regel für 0 plus Ortsnummer

Ortsnetzregel fehlt oder hat die falsche Vorwahl

„In Köln geht es, in Frankfurt nicht.“

Der Benutzer hat den Wählplan eines anderen Standorts oder gar keinen

Zuweisung fehlt, Rückfall auf Global

„Aus Outlook-Kontakten kann ich nicht mehr anrufen.“

Gespeicherte Nummern wie 069 … werden mit Amtsholungslogik gelesen

Kontakte nicht im Format +49 gepflegt

„Was passiert eigentlich, wenn ich 0112 wähle?“

Je nach Konfiguration Notruf oder gar nichts

Notruf mit Amtsholung nicht berücksichtigt

 

Der letzte Satz ist der wichtigste in der Tabelle, und er kommt meistens nicht vom Helpdesk, sondern von der Fachkraft für Arbeitssicherheit. Wer jahrzehntelang 0 vor jede externe Nummer gesetzt hat, tippt in der Aufregung auch 0112. Der Wählplan muss das abfangen. Ein Notruf, der an einer Normalisierungsregel scheitert, ist der Teil der Teams-Einführung, über den später niemand gern in der Zeitung liest.

WARNUNG · Erst den Notruf prüfen, dann alles andere

Bevor du dich mit Ortsgesprächen und Auslandsvorwahlen beschäftigst: Prüfe für jeden Standort, was aus 110, 112, 0110 und 0112 wird. Mit Test-CsEffectiveTenantDialPlan geht das, ohne dass irgendwo ein Telefon klingelt. Wie das konkret aussieht, steht im Abschnitt zur Diagnose.

 

Wie der Fehler technisch zustande kommt

Ein abgehender Anruf durchläuft in Teams immer dieselbe Kette: Benutzer › Wählplan › Normalisierung › Voice Routing Policy › PSTN Usage › Voice Route › SBC. Die Amtsholung existiert nur auf den ersten drei Stationen. Ab der Voice Routing Policy sieht niemand mehr, was der Benutzer getippt hat, sondern nur noch das Ergebnis der Normalisierung. Wie die hinteren Stationen zusammenspielen, erklärt Voice Routing Policy, PSTN Usage und Voice Route: Reihenfolge verstehen.

Verarbeitungskette der Amtsholung: Benutzer, Wählplan, Normalisierung, Voice Routing Policy, PSTN Usage, Voice Route, SBC, mi

Service-Wählplan, Mandanten-Wählplan, Benutzer-Wählplan

Teams kennt drei Ebenen von Wählplänen, und für die Amtsholung ist es entscheidend, sie auseinanderzuhalten. Microsoft beschreibt sie als Service-, Tenant- und User-Scope. Im Deutschen hat sich für die beiden konfigurierbaren Ebenen der Begriff Mandanten-Wählplan eingebürgert.

Ebene

Wer pflegt sie

Was sie tut

Rolle bei der Amtsholung

Service-Wählplan

Microsoft, nicht änderbar

Gilt je Land oder Region und wird automatisch über den Nutzungsort (Usage Location) zugewiesen

Kennt keine Amtsholung. Er erwartet die Nummer so, wie man sie an einem normalen Anschluss wählt

Mandanten-Wählplan Global

Du

Organisationsweiter Standard für alle Benutzer ohne eigenen Wählplan

Nur geeignet, wenn alle Standorte dieselbe Vorwahl hätten. Haben sie nicht

Mandanten-Wählplan je Benutzer

Du

Benannter Wählplan, den du Benutzern oder Gruppen zuweist, etwa DP-Frankfurt

Hier gehört die Amtsholung hin, zusammen mit Ortsnetz und Durchwahlen des Standorts

 

Der effektive Wählplan eines Benutzers ist immer eine Kombination: Service-Wählplan seines Landes plus entweder Global oder sein Benutzer-Wählplan, nie beides gleichzeitig. Bei der Verarbeitung haben die Regeln des Mandanten-Wählplans Vorrang vor denen des Service-Wählplans. Das ist der Grund, warum die Amtsholung überhaupt funktionieren kann: Deine Regel für 0 plus Ortsnummer greift, bevor der Service-Wählplan die führende Null als nationale Vorwahl interpretiert.

FAKTEN · Was Microsoft zu Wählplänen festlegt

Pro Tenant sind höchstens 1.000 Mandanten-Wählpläne möglich, pro Wählplan höchstens 50 Normalisierungsregeln.

Regeln werden von oben nach unten geprüft. Die erste passende Regel wird angewendet, alle weiteren werden ignoriert.

Liefert eine Regel ein Ergebnis ohne führendes +, versucht der Dienst die Nummer erneut mit den Mandanten- und Landesregeln zu normalisieren. Microsoft empfiehlt deshalb, dass alle Regeln ein Ergebnis mit + liefern.

Der Teams-Client normalisiert alle abgehenden Anrufe nach dem effektiven Wählplan, auch Anrufe aus dem Anrufverlauf oder über Rufnummern-Links.

Den Wählplan bekommt der Client über die Bereitstellung bei der Anmeldung.

 

Den Schalter für das Amtskennzeichen gibt es nicht mehr

Wer aus Skype for Business kommt, sucht zuerst nach einem Feld für das externe Zugriffspräfix. Die Suche kannst du dir sparen. Microsoft hat die Parameter ExternalAccessPrefix und OptimizeDeviceDialing aus New-CsTenantDialPlan und Set-CsTenantDialPlan entfernt, weil sie nicht mehr verwendet werden. Die Amtsholung wird laut Dokumentation implizit über die Normalisierungsregeln des Wählplans abgebildet. Alte Wählpläne zeigen ein früher gesetztes Präfix bei Get-CsTenantDialPlan in Form einer Normalisierungsregel an.

Praktisch heißt das: Für jede Nummernart, die mit vorangestellter 0 gewählt wird, brauchst du eine eigene Regel, die die 0 abschneidet und den Rest in E.164 übersetzt. Es gibt keine Abkürzung, die einmal global „0 weg“ sagt. Das ist mehr Tipparbeit, hat aber einen Vorteil: Du entscheidest für jede Nummernart bewusst, was passiert. Auch für den Notruf.

Warum Amtsholung und normale Wählweise sich beißen

Jetzt der Teil, den die meisten Projektpläne unterschlagen. Die deutsche Wählweise beginnt selbst schon mit Nullen: 0 vor der Vorwahl, 00 vor der Landeskennzahl. Setzt du eine Amtsholung davor, sind viele Ziffernfolgen in beiden Welten gültig, bedeuten aber etwas völlig anderes.

Zwei getippte Ziffernfolgen mit jeweils korrekter und falscher Lesart, je mit und ohne Amtsholung 0 interpretiert.

Beispiel: Jemand tippt 069 5550100, ohne Amtsholung, weil er es vom Handy so gewohnt ist. Für den Wählplan mit Amtsholung ist das eine 0 fürs Amt, gefolgt von der neunstelligen Frankfurter Ortsnummer 695550100. Ergebnis: +49 69 695550100. Die Nummer ist formal gültig, die Voice Route nimmt sie an, der SBC reicht sie weiter, und der Anrufer hört eine Ansage. Kein Fehler in der Kette, nur eine falsche Annahme am Anfang.

Daraus folgt die wichtigste Entscheidung dieses Beitrags: Ein Standort wählt entweder mit Amtsholung oder ohne. Ein Wählplan, der beide Gewohnheiten gleichzeitig bedienen soll, muss bei jeder mehrdeutigen Ziffernfolge raten. Und Raten ist in der Telefonie eine schlechte Strategie. Ausgenommen sind Nummern im Format +49 …, die sind eindeutig und brauchen weder Amt noch Regel.

WICHTIG · Kontakte, Anrufliste und Links

Teams normalisiert auch Nummern, die aus dem Anrufverlauf, aus Kontakten oder über Rufnummern-Links gewählt werden. Steht im Kontakt +49 69 555 0188, passiert nichts Schlimmes, denn auf das + passt keine Amtsholungsregel. Steht dort 069 5550188, wird die Nummer mit der Amtsholungslogik gelesen und landet im falschen Ortsnetz.

Wer die Amtsholung einführt oder beibehält, sollte deshalb parallel die gespeicherten Rufnummern in Kontakten, Signaturen und CRM-Systemen auf das Format +49 umstellen. Das ist ohnehin die einzige Schreibweise, die überall funktioniert.

 

Diagnose Schritt für Schritt

Die Diagnose folgt der Kette von vorne. Du brauchst eine PowerShell-Sitzung mit dem Modul MicrosoftTeams (Connect-MicrosoftTeams) und einen konkreten Fall: welcher Benutzer, welche Nummer, genau so getippt, wie er sie getippt hat. Die Antwort „irgendeine Kölner Nummer“ reicht nicht. Lass dir die Ziffern diktieren, inklusive aller Nullen.

Schritt 1: Welcher Wählplan gilt für den Benutzer?

Get-CsOnlineUser -Identity anna.berger@contoso.com |

Select-Object UserPrincipalName, UsageLocation, LineUri,

EnterpriseVoiceEnabled, TenantDialPlan, OnlineVoiceRoutingPolicy

 

Get-CsUserPolicyAssignment -Identity anna.berger@contoso.com -PolicyType TenantDialPlan

 

Ist TenantDialPlan leer, gilt für den Benutzer der Global-Wählplan. Bei einem Standort mit Amtsholung ist das fast immer der Fehler: Global kennt weder die Frankfurter Vorwahl noch die Durchwahlen. Get-CsUserPolicyAssignment zeigt zusätzlich, ob der Wählplan direkt oder über eine Gruppe zugewiesen wurde. Warum Benutzer unbemerkt auf globale Einstellungen zurückfallen, beschreibt Teams-Benutzer fällt auf die globale Richtlinie zurück. Achte auch auf UsageLocation: Sie bestimmt den Service-Wählplan. Ein Benutzer mit Nutzungsort US bekommt den amerikanischen Service-Wählplan untergeschoben, und der hat ganz eigene Vorstellungen von einer führenden Null.

Im Teams Admin Center findest du dasselbe unter Users › Manage users › Benutzer › Policies, dort beim Eintrag für den Wählplan (Dial plan).

Schritt 2: Welche Regeln sind wirksam?

Get-CsEffectiveTenantDialPlan -Identity anna.berger@contoso.com |

Select-Object -ExpandProperty NormalizationRules |

Format-Table Name, Pattern, Translation -AutoSize

 

# nur die Regeln des Mandanten-Wählplans, ohne Service-Wählplan

Get-CsTenantDialPlan -Identity DP-Frankfurt |

Select-Object -ExpandProperty NormalizationRules |

Format-Table Name, Pattern, Translation -AutoSize

 

Der erste Befehl zeigt die zusammengeführte Liste, also deine Regeln plus die des Service-Wählplans DE. Der zweite nur deine. Wenn du in der ersten Liste keine einzige Regel siehst, deren Muster mit ^0 oder ^00 anfängt und eine 0 abschneidet, gibt es schlicht keine Amtsholung. Dann ist der Fall erledigt, und du kannst direkt zur Behebung springen.

Schritt 3: Was wird aus der getippten Nummer?

Test-CsEffectiveTenantDialPlan -Identity anna.berger@contoso.com -DialedNumber 002215550142

 

# nur gegen den Mandanten-Wählplan testen

Test-CsEffectiveTenantDialPlan -Identity anna.berger@contoso.com -DialedNumber 002215550142 `

-TenantScopeOnly

 

Die Ausgabe zeigt die übersetzte Nummer (TranslatedNumber) und die Regel, die gegriffen hat (MatchingRule). Ist TranslatedNumber leer, hat keine Regel gepasst. Steht dort eine Nummer, die nicht mit +49 beginnt oder eine Vorwahl zu viel enthält, hat die falsche Regel gepasst. Das Cmdlet baut keinen Anruf auf, du kannst also gefahrlos auch 110, 112, 0110 und 0112 testen. Der Schalter -TenantScopeOnly blendet den Service-Wählplan aus und zeigt dir, ob deine eigenen Regeln die Nummer abfangen oder ob erst Microsofts Landesregeln zum Zug kommen.

Dasselbe geht im Teams Admin Center unter Voice › Dial plans: Wählplan öffnen und im Bereich Test dial plan eine Nummer eingeben. Für einzelne Stichproben ist das bequem, für eine vollständige Prüfung ist die Schleife unten schneller.

Schritt 4: Die Prüfliste in einem Rutsch

$upn = 'anna.berger@contoso.com'

$proben = '112','110','0112','0110','9','250','05550188',

'002215550142','001515550123','000441632960123','0695550100'

foreach ($n in $proben) {

$t = Test-CsEffectiveTenantDialPlan -Identity $upn -DialedNumber $n

[pscustomobject]@{ Getippt = $n; Ergebnis = $t.TranslatedNumber

Regel = $t.MatchingRule.Name }

}

 

Die letzte Probe, 0695550100, ist absichtlich drin. Sie zeigt dir schwarz auf weiß, was mit Nummern passiert, die ohne Amtsholung getippt werden. Wenn das Ergebnis dich erschreckt, ist das der richtige Moment, um mit dem Betriebsrat über eine Kommunikationsmaßnahme zu sprechen, nicht erst nach der dritten Fehlverbindung zum Großkunden.

Schritt 5: Passt die normalisierte Nummer auf eine Route?

$ziel = '+492215550142'

Get-CsOnlineVoiceRoute | Where-Object { $ziel -match $_.NumberPattern } |

Select-Object Identity, NumberPattern, Priority, OnlinePstnUsages, OnlinePstnGatewayList

 

Erst wenn die Normalisierung stimmt, lohnt der Blick auf die Routen. Findet sich keine Route, ist der Wählplan nicht schuld, sondern das Routing. Die Fehlersuche dort beschreiben Teams Voice Route greift nicht: Regex, Priorität und überdeckte Routen und, für den gesamten Weg bis zum SBC, Teams-Anruf geht nicht raus: den Rufweg Schritt für Schritt prüfen.

TIPP · Notruf-Routen nicht vergessen

Teams-Clients senden Notrufe bei Direct Routing ohne führendes + vor der Notrufnummer. Eine Voice Route für den Notruf braucht deshalb ein Muster wie ^(110|112)$ und nicht ^\+(110|112)$. Prüfe mit derselben Schleife wie oben, ob '110' und '112' auf eine Route passen.

 

Behebung: der vollständige Wählplan für Frankfurt

Jetzt wird gebaut. Ziel ist ein Benutzer-Wählplan DP-Frankfurt, der alle Nummernarten mit Amtsholung sauber in E.164 übersetzt, den Notruf mit und ohne Null erkennt und keine Muster enthält, die sich gegenseitig ins Gehege kommen.

Vorher klären: der Nummernplan des Standorts

Rufnummernblock: +49 69 555 0xxx, Zentrale +49 69 555 0100.

Durchwahlen: dreistellig, 200 bis 999. Die Reihe 100 bis 199 bleibt frei, damit 110 und 112 nie als Durchwahl missverstanden werden können.

Zentrale: Kurzwahl 9, wie an der alten Anlage. Wenn bei euch die Zentrale anders erreichbar war, übernimm die alte Kurzwahl, sofern sie nicht mit anderen Regeln kollidiert.

Amtsholung: 0, für alles, was das Haus verlässt.

Notruf: 110 und 112 funktionieren mit und ohne vorangestellte 0.

WARNUNG · Warum die Hunderterreihe frei bleibt

Eine Durchwahlregel ^(\d{3})$ fängt auch 110 und 112 ab und macht daraus +49 69 555 0110 oder +49 69 555 0112. Steht sie über der Notrufregel, klingelt beim Notruf das Telefon im Büro mit dieser Durchwahl. Die Regel ^([2-9]\d{2})$ kann das gar nicht erst, weil sie keine Nummer mit 1 am Anfang erfasst. Defensiv planen ist billiger als nachträglich Durchwahlen umnummerieren.

 

Das vollständige Regelset

Die Tabelle zeigt alle Regeln in der Reihenfolge, in der sie im Wählplan stehen. Muster und Übersetzungen sind .NET-Regex, wie sie Teams erwartet. Deutsche Vorwahlen stehen nach +49 ohne führende 0.

Nr.

Name

Muster

Übersetzung

Getippt

Ergebnis

1

DE-Notruf

^(11[02])$

$1

112

112

2

DE-Notruf-Amt

^0(11[02])$

$1

0112

112

3

FRA-Zentrale

^9$

+49695550100

9

+49695550100

4

FRA-Durchwahl

^([2-9]\d{2})$

+49695550$1

250

+49695550250

5

Amt-International

^000([1-9]\d{6,14})$

+$1

000441632960123

+441632960123

6

Amt-Mobil

^00(1[5-7]\d{8,9})$

+49$1

001515550123

+491515550123

7

Amt-National

^00([2-9]\d{5,12})$

+49$1

002215550142

+492215550142

8

Amt-Ortsnetz-FRA

^0([2-9]\d{3,8})$

+4969$1

05550188

+49695550188

 

Tabelle der acht Regeln des Wählplans DP-Frankfurt als Prioritätsliste mit Muster, Übersetzung und Beispiel, von Notruf bis O

Ein paar Erläuterungen, damit du die Regeln nicht nur abschreibst, sondern verstehst:

Regeln 1 und 2, Notruf: Die Übersetzung $1 liefert 110 oder 112 ohne +. Das ist die einzige bewusste Ausnahme von der Plus-Empfehlung, denn der Notruf wird nicht als E.164-Nummer, sondern als Notrufnummer gesendet. Weil das Ergebnis kein + hat, läuft es erneut durch die Regeln und trifft dort wieder auf Regel 1, die es unverändert lässt.

Regel 3, Zentrale: Eine einzelne 9 ist eindeutig, kollidiert mit nichts und spart den Kolleginnen und Kollegen am Empfang viele Erklärungen.

Regel 4, Durchwahl: Genau drei Ziffern, die erste von 2 bis 9. Aus 250 wird +49 69 555 0250.

Regel 5, International: Amtsholung 0 plus internationale Verkehrsausscheidungsziffer 00, dann die Landeskennzahl. Eine E.164-Nummer hat höchstens 15 Ziffern, daher \d{6,14} nach der ersten Ziffer.

Regel 6, Mobil: Deutsche Mobilfunkvorwahlen beginnen mit 015, 016 oder 017. Regel 7 lässt Vorwahlen mit 1 bewusst aus, damit Mobilfunk eine eigene Regel bekommt und Nummern wie 010 … oder 0137 … nicht unbemerkt mitlaufen. Ohne Regel 6 bliebe 0 015 … im Mandanten-Wählplan unerkannt und landete beim Service-Wählplan, der von einer Amtsholung nichts weiß.

Regel 7, National: Amtsholung plus 0 plus Vorwahl, die mit 2 bis 9 beginnt. Sonderrufnummern wie 0800 oder 0900 fallen hier mit hinein. Ob jemand die wählen darf, entscheidet nicht der Wählplan, sondern Voice Routing Policy und Voice Routes.

Regel 8, Ortsnetz: Amtsholung plus Ortsnummer, die nicht mit 0 oder 1 beginnt. Die Länge 4 bis 9 Ziffern deckt die Frankfurter Ortsnummern ab. Diese Regel ist die einzige, die je Standort anders aussieht.

FAKTEN · Sonderfälle bewusst ausgelassen

Kurzwahlen wie 115 oder 116 117 sowie Auskunftsnummern sind in diesem Regelset nicht enthalten. Sie beginnen mit 1, passen auf keine der Regeln 3 bis 8 und werden mit vorangestellter 0 nicht erkannt. Wenn ihr sie braucht, ergänze eigene Regeln, prüfe mit deinem SBC und Provider, in welchem Format sie erwartet werden, und teste sie einzeln. Lieber eine Lücke, die du kennst, als eine Regel, die du nicht verstehst.

 

0110 und 0112: Notruf doppelt absichern

Die Normalisierungsregeln 1 und 2 sorgen dafür, dass 0112 als 112 weiterläuft. Bei Direct Routing gibt es zusätzlich die Notrufrichtlinie für die Anrufweiterleitung (Emergency Call Routing Policy). Dort definierst du je Notrufnummer einen Notruf-Wählstring und optional Notruf-Wählmasken. Eine Wählmaske ist laut Microsoft eine Nummer, die beim Wählen in den Wert des Notruf-Wählstrings übersetzt wird. Genau das ist die Amtsholung beim Notruf.

Emergency dial string

Emergency dial mask

PSTN Usage

Wirkung

112

0112

DE-Notruf

0112 wird als Notruf 112 erkannt

110

0110

DE-Notruf

0110 wird als Notruf 110 erkannt

 

Konfiguriert wird das im Teams Admin Center unter Voice › Emergency policies auf dem Reiter Call routing policies oder per PowerShell mit New-CsTeamsEmergencyNumber und Set-CsTeamsEmergencyCallRoutingPolicy. Mehrere Wählmasken trennst du mit Semikolon, und innerhalb einer Richtlinie darf jeder Wählstring und jede Wählmaske nur einmal vorkommen. Ist eine solche Richtlinie einem Netzwerkstandort zugewiesen, hat sie für Benutzer an diesem Standort Vorrang vor der Benutzerzuweisung.

Normalisierungsregel und Wählmaske ergänzen sich: Die Regel sorgt dafür, dass 0112 im Wählplan nicht als Ortsnummer missverstanden wird, die Wählmaske dafür, dass Teams den Anruf als Notruf behandelt, mit Standortinformation und eigener Route. Den vollständigen Aufbau mit Notrufadressen und dynamischem Notruf beschreibt Notruf in Microsoft Teams konfigurieren. Wie du das Ergebnis prüfst, ohne die Leitstelle zu beschäftigen, steht in Notruf in Teams testen, ohne die Leitstelle zu verärgern.

WARNUNG · Calling Plan und Operator Connect

Notrufrichtlinien für die Anrufweiterleitung mit PSTN Usages gelten für Direct Routing. Bei Calling Plan und Operator Connect kümmert sich der Dienst um die Notrufnummern. Ob 0112 dort ohne eigene Regel als Notruf erkannt wird, solltest du nicht annehmen, sondern mit Test-CsEffectiveTenantDialPlan und einem abgestimmten Notruftest prüfen. Die Normalisierungsregeln 1 und 2 schaden in keinem Fall.

 

Sichern, anlegen, zuweisen

Bevor du irgendetwas änderst, sicherst du den Ist-Stand. Existiert DP-Frankfurt bereits, exportierst du ihn. Existiert er noch nicht, notierst du, welchen Wählplan die betroffenen Benutzer heute haben.

# Sicherung

Get-CsTenantDialPlan | Export-Clixml -Path .\Wählpläne-vorher.xml

Get-CsOnlineUser -ResultSize Unlimited | Where-Object { $_.UsageLocation -eq 'DE' } |

Select-Object UserPrincipalName, TenantDialPlan |

Export-Csv -Path .\Zuweisungen-vorher.csv -NoTypeInformation -Encoding UTF8

 

Danach legst du die Regeln als In-Memory-Objekte in genau der Reihenfolge der Tabelle an und erzeugst daraus den Wählplan:

$r = @()

$r += New-CsVoiceNormalizationRule -Parent Global -Name 'DE-Notruf' `

-Pattern '^(11[02])$' -Translation '$1' -Description '110 und 112' -InMemory

$r += New-CsVoiceNormalizationRule -Parent Global -Name 'DE-Notruf-Amt' `

-Pattern '^0(11[02])$' -Translation '$1' -Description '0110 und 0112' -InMemory

$r += New-CsVoiceNormalizationRule -Parent Global -Name 'FRA-Zentrale' `

-Pattern '^9$' -Translation '+49695550100' -InMemory

$r += New-CsVoiceNormalizationRule -Parent Global -Name 'FRA-Durchwahl' `

-Pattern '^([2-9]\d{2})$' -Translation '+49695550$1' -InMemory

$r += New-CsVoiceNormalizationRule -Parent Global -Name 'Amt-International' `

-Pattern '^000([1-9]\d{6,14})$' -Translation '+$1' -InMemory

$r += New-CsVoiceNormalizationRule -Parent Global -Name 'Amt-Mobil' `

-Pattern '^00(1[5-7]\d{8,9})$' -Translation '+49$1' -InMemory

$r += New-CsVoiceNormalizationRule -Parent Global -Name 'Amt-National' `

-Pattern '^00([2-9]\d{5,12})$' -Translation '+49$1' -InMemory

$r += New-CsVoiceNormalizationRule -Parent Global -Name 'Amt-Ortsnetz-FRA' `

-Pattern '^0([2-9]\d{3,8})$' -Translation '+4969$1' -InMemory

 

New-CsTenantDialPlan -Identity DP-Frankfurt -Description 'Frankfurt, Amtsholung 0' `

-NormalizationRules $r

 

# Pilot zuerst, dann der Rest des Standorts

Grant-CsTenantDialPlan -Identity anna.berger@contoso.com -PolicyName DP-Frankfurt

 

Wichtig sind die einfachen Anführungszeichen um Muster und Übersetzungen. In doppelten Anführungszeichen würde PowerShell $1 als Variable lesen und durch nichts ersetzen. Das Ergebnis wäre ein Wählplan, der jede Durchwahl nach +49695550 schickt, was technisch eine gültige Nummer ist und deshalb besonders lange unentdeckt bleibt. Prüfe nach dem Anlegen mit Get-CsTenantDialPlan -Identity DP-Frankfurt, dass genau deine acht Regeln in der richtigen Reihenfolge drinstehen und keine weitere.

TIPP · Zuweisung über Gruppen

Für ganze Standorte ist die Zuweisung an eine Gruppe übersichtlicher als einzelne Grant-Befehle, etwa an eine Sicherheitsgruppe aller Frankfurter Benutzer. Eine direkte Zuweisung am Benutzer hat dabei Vorrang vor der Gruppenzuweisung. Für den Piloten nimmst du trotzdem zuerst einzelne Benutzer, damit du nicht den ganzen Standort gleichzeitig umstellst.

 

Die Prüftabelle nach dem Anlegen

Lass für den Piloten die Schleife aus Schritt 4 laufen. So sollte das Ergebnis aussehen:

Getippt

Erwartet

Regel

Bemerkung

112

112

DE-Notruf

Notruf ohne Amtsholung

0112

112

DE-Notruf-Amt

Notruf mit Amtsholung

0110

110

DE-Notruf-Amt

Polizei mit Amtsholung

9

+49695550100

FRA-Zentrale

Kurzwahl Zentrale

250

+49695550250

FRA-Durchwahl

intern

05550188

+49695550188

Amt-Ortsnetz-FRA

Ortsgespräch

002215550142

+492215550142

Amt-National

Köln

001515550123

+491515550123

Amt-Mobil

Mobilfunk

000441632960123

+441632960123

Amt-International

Großbritannien

+49305550123

+49305550123

keine eigene

E.164 bleibt unverändert

0695550100

+4969695550100

Amt-Ortsnetz-FRA

erwartete Falle: ohne Amt gewählt

 

Die letzte Zeile ist kein Fehler des Wählplans, sondern dokumentiert die Entscheidung für die Amtsholung. Halte sie in deiner Prüftabelle, damit niemand später „aus Versehen“ versucht, sie zu reparieren, und dabei die Ortsnetzregel zerlegt.

Der Client bekommt den Wählplan bei der Anmeldung. Bis ein Anwender das neue Verhalten sieht, kann es also etwas dauern. Eine Ab- und Wiederanmeldung im Teams-Client beschleunigt den Test.

Die anderen Standorte

Für Köln, Berlin, Hamburg und München kopierst du das Regelset und änderst nur, was sich standortbezogen unterscheidet: Ortsnetzregel, Zentrale und Durchwahlblock. Die Regeln 1, 2, 5, 6 und 7 sind überall identisch.

Fünf Standort-Wählpläne (Frankfurt, Köln, Berlin, Hamburg, München) mit Ortsnetzregeln, darunter der gemeinsame Service-Wählp

Standort

Wählplan

Ortsnetzregel (Muster › Übersetzung)

Hinweis

Frankfurt

DP-Frankfurt

^0([2-9]\d{3,8})$ › +4969$1

zweistellige Vorwahl 69

Köln

DP-CGN

^0([2-9]\d{3,7})$ › +49221$1

dreistellige Vorwahl, Ortsnummer kürzer

Berlin

DP-Berlin

^0([2-9]\d{3,8})$ › +4930$1

zweistellige Vorwahl 30

Hamburg

DP-Hamburg

^0([2-9]\d{3,8})$ › +4940$1

zweistellige Vorwahl 40

München

DP-MUC

^0([2-9]\d{3,8})$ › +4989$1

zweistellige Vorwahl 89

 

Für Köln und München stehen hier Kürzel statt Ortsnamen. Die Identity erlaubt laut Microsoft nur alphanumerische Zeichen, Bindestrich und Punkt, und mit Kürzeln musst du nicht ausprobieren, wie Skripte und Exporte mit Umlauten in Bezeichnern umgehen. In die Beschreibung gehören die echten Ortsnamen, also „Köln“ und „München“.

AUS DER PRAXIS · Ein Logistiker mit fünf Niederlassungen

Die Wählpläne waren korrekt, die Prüftabelle grün, und trotzdem kamen in der ersten Woche Dutzende Meldungen. Ursache: Das Außendienst-Team rief fast nur aus dem CRM heraus an, und dort waren die Kundennummern im Format 0221 … gespeichert. Jeder Klick wurde mit Amtsholungslogik gelesen und landete im eigenen Ortsnetz.

Die Lösung war kein zusätzlicher Wählplan, sondern ein Export, eine Formel und ein Reimport: Alle Nummern im CRM wurden auf +49 umgestellt. Danach war Ruhe, und der Vertrieb hatte endlich Nummern, die auch vom Handy aus funktionieren.

 

AUS DER PRAXIS · Ulis eigener anynode-SBC

In meinem eigenen Setup mit anynode-SBC liegt die Verantwortung klar getrennt: Teams liefert E.164 mit +49, der SBC formt die Nummer erst auf dem Weg zum Provider in dessen Format um. Die Versuchung, die Amtsholung einfach am SBC abzuschneiden, ist groß, weil man dort gefühlt alles kann. Nur sieht dann die Voice Route in Teams weiterhin die unnormalisierte Nummer, die Berechtigungen nach Mobil, National und International greifen nicht mehr, und der Notruf hängt an einer Regel, die außerhalb von Teams niemand vermutet. Die Null gehört in den Wählplan.

 

Rollback

WARNUNG · So kommst du zurück

Pilot zurücknehmen: Grant-CsTenantDialPlan -Identity anna.berger@contoso.com -PolicyName $null entfernt die Zuweisung, der Benutzer fällt auf Global zurück. Gab es vorher einen anderen Wählplan, weist du ihn aus der CSV-Sicherung wieder zu.

Regeln eines bestehenden Wählplans zurückholen: Die Regeln aus Wählpläne-vorher.xml lassen sich mit Import-Clixml lesen, mit New-CsVoiceNormalizationRule -InMemory neu erzeugen und mit Set-CsTenantDialPlan -Identity DP-Frankfurt -NormalizationRules $regeln zurückschreiben. Das ist dasselbe Vorgehen, das Microsoft für die Übernahme von Wählplänen aus Skype for Business beschreibt.

Neu angelegten Wählplan entfernen: erst alle Zuweisungen lösen, dann Remove-CsTenantDialPlan -Identity DP-Frankfurt.

Nach jedem Rollback die Prüftabelle erneut laufen lassen, Notrufnummern eingeschlossen.

 

WERKZEUG · So findet es der Teams-Telefonie Diagnostiker

Der Assistent für Wählpläne baut einen Standort-Wählplan aus Eingaben wie Ortsvorwahl, Durchwahlbereich und Notrufnummern und zeigt vor dem Anwenden, was sich im Tenant ändert. Vor dem Lauf wird ein Snapshot gesichert, die Freigabe verlangt die Bestätigung des Tenant-Namens, und das Ergebnis zeigt die behobenen Befunde und das Protokoll der ausgeführten Cmdlets. Über den Verlauf lässt sich ein Lauf wieder zurücknehmen.

Problematische Regeln, etwa eine Durchwahlregel, die 110 oder 112 übersetzt, erscheinen als Befunde mit Prüffall. Der Benutzer-Steckbrief zeigt, welcher Wählplan einem Benutzer zugewiesen ist und ob er auf Global zurückfällt, und der Rufweg-Simulator spielt eine getippte Nummer wie 0112 oder 002215550142 durch die Kette bis zum Gateway.

Der Teams-Telefonie Diagnostiker lässt sich 15 Tage kostenlos testen.

› Teams-Telefonie Diagnostiker

 

Bestätigungsdialog „Änderungen anwenden“ im Teams-Telefonie-Diagnostiker mit Tenant-Name, Änderungsübersicht und Eingabefeld
So bestätigst du im Wählplan-Assistenten die Änderung an DP-Frankfurt, nachdem vorher ein Snapshot gesichert wurde (Demo-Daten).
Ergebnisseite des Wählplan-Assistenten mit Ampeln vor und nach der Änderung, behobenen Befunden, Protokoll und Rollback-Verla
So siehst du nach dem Anwenden des Wählplans, welche Befunde behoben sind und welches Cmdlet protokolliert wurde (Demo-Daten).

Vorbeugung: damit die Null nicht wieder zum Problem wird

Eine Wählweise pro Standort. Entscheide bewusst, ob ein Standort mit oder ohne Amtsholung wählt, und schreibe die Entscheidung auf. Gemischte Standorte sind der Ursprung der meisten Fehlwahlen.

Notrufregeln immer oben. Regel 1 und 2 stehen in jedem Wählplan an erster Stelle, die Wählmasken 0110 und 0112 in jeder Notrufrichtlinie bei Direct Routing.

Durchwahlen ohne 1 am Anfang. Wer die Hunderterreihe freihält, kann 110 und 112 nicht versehentlich in Durchwahlen verwandeln.

Jede Regel mit ^ und $, jedes Ergebnis mit +. Ausnahme sind nur die Notrufnummern.

Kontakte auf +49 umstellen. Outlook, CRM, Signaturen: Was im Format +49 gespeichert ist, funktioniert mit und ohne Amtsholung.

Prüftabelle je Standort. Dieselben Testnummern nach jeder Änderung, als Skript, inklusive der dokumentierten Falle.

Neue Benutzer automatisch zuweisen. Über Gruppen oder einen festen Schritt im Onboarding, sonst landet jeder neue Kollege im Global-Wählplan.

Änderungen nachvollziehbar halten. Regelmäßig exportieren und vergleichen.

Zum letzten Punkt gibt es zwei Vertiefungen: Konfigurationsdrift in der Teams-Telefonie erkennen zeigt, wie du ungeplante Änderungen erkennst, Microsoft Teams Telefonie-Governance regelt, wer an Wählplänen schrauben darf. Wenn du die Wählweise für mehrere Standorte grundsätzlich neu planen willst, ist das ein gutes Thema für ein Festpreispaket Grobkonzept Teams-Telefonie oder eine Beratung zur Teams-Telefonie. Und wer die Regex-Logik lieber einmal in Ruhe lernt als im Störungsfall, ist in der Schulung Teams-Telefonie richtig.

TIPP · Die Amtsholung als Übergangslösung

Viele Organisationen behalten die Amtsholung für die Umstellung und schaffen sie später ab. Das geht, erfordert aber einen klaren Stichtag pro Standort: An diesem Tag tauschst du die Regeln 2 und 5 bis 8 gegen Regeln ohne Amtsholung aus. Dazwischen beide Varianten anzubieten, führt zu den Fehlwahlen aus der Skizze oben. Plane den Stichtag zusammen mit einer Mitteilung an die Belegschaft, und nimm die Notrufregeln für 0110 und 0112 nicht sofort heraus. Die alte Gewohnheit hält länger als jede Rundmail.

 

WEITERLESEN · Passend dazu

› Normalisierungsregeln in Teams: typische Fehler und wie du sie findest

› Teams-Anruf geht nicht raus: den Rufweg Schritt für Schritt prüfen

› Notruf in Microsoft Teams konfigurieren

 

FAQ

Gibt es in Teams eine Einstellung für die Amtsholung?

Nein, nicht mehr. Microsoft hat die Parameter ExternalAccessPrefix und OptimizeDeviceDialing aus den Wählplan-Cmdlets entfernt. Die Amtsholung wird über Normalisierungsregeln abgebildet, die die vorangestellte 0 abschneiden und den Rest in E.164 übersetzen.

Kann ein Wählplan Nummern mit und ohne Amtsholung gleichzeitig verstehen?

Nicht zuverlässig. Viele Ziffernfolgen sind in beiden Wählweisen gültig, etwa 0695550100, das ohne Amtsholung eine Frankfurter Nummer und mit Amtsholung eine falsche Ortsnummer ist. Entscheide dich pro Standort für eine Wählweise. Nummern im Format +49 funktionieren in beiden Fällen.

Was ist der Unterschied zwischen Mandanten-Wählplan und Service-Wählplan?

Den Service-Wählplan verwaltet Microsoft, er gilt pro Land und wird über den Nutzungsort des Benutzers zugewiesen. Den Mandanten-Wählplan pflegst du selbst, entweder als Global-Wählplan für alle oder als Benutzer-Wählplan wie DP-Frankfurt. Beide werden zum effektiven Wählplan zusammengeführt, wobei deine Regeln Vorrang haben.

Wie stelle ich sicher, dass 0112 als Notruf ankommt?

Mit einer Normalisierungsregel ^0(11[02])$ mit der Übersetzung $1 oben im Wählplan und, bei Direct Routing, mit 0112 und 0110 als Notruf-Wählmaske in der Notrufrichtlinie für die Anrufweiterleitung. Prüfen kannst du die Normalisierung gefahrlos mit Test-CsEffectiveTenantDialPlan.

Warum hat meine Durchwahlregel den Notruf übernommen?

Weil sie vermutlich ^(\d{3})$ lautet und damit auch 110 und 112 erfasst. Stelle die Notrufregel an die erste Stelle und beschränke die Durchwahlen auf Nummern, die nicht mit 1 beginnen.

Wie viele Wählpläne und Regeln darf ich anlegen?

Laut Microsoft höchstens 1.000 Mandanten-Wählpläne pro Tenant und höchstens 50 Normalisierungsregeln pro Wählplan. Ein Standort mit Amtsholung kommt mit acht bis zwölf Regeln aus.

Ich habe den Wählplan zugewiesen, aber beim Benutzer ändert sich nichts. Warum?

Der Client bekommt den Wählplan über die Bereitstellung bei der Anmeldung. Prüfe zuerst mit Get-CsOnlineUser und Test-CsEffectiveTenantDialPlan, ob die Zuweisung im Dienst angekommen ist, und lass den Benutzer sich dann im Teams-Client ab- und wieder anmelden.

Soll ich die Amtsholung nicht lieber am SBC entfernen?

Besser nicht. Die Voice Routes in Teams vergleichen ihre Muster mit dem Ergebnis der Normalisierung. Bleibt die 0 bis zum SBC in der Nummer, passen deine Routen und Berechtigungen nicht mehr sauber, und der Notruf hängt an einer Stelle, die in Teams niemand sieht. Die Anpassung ans Providerformat gehört dagegen sehr wohl an den SBC oder in die Übersetzungsregeln am Trunk.

Fazit: Die Null darf bleiben, wenn der Wählplan sie versteht

Die Amtsholung ist kein technisches Problem, sondern eine Gewohnheit, die Teams nicht mitbringt. Ein Wählplan je Standort mit acht sauberen Regeln reicht, um sie abzubilden: Notruf mit und ohne Null ganz oben, Zentrale und Durchwahlen, dann International, Mobil, National und Ortsnetz, jeweils mit ^ und $ und einem Ergebnis mit +49.

Was kein Wählplan leisten kann, ist beide Wählweisen gleichzeitig zu verstehen. Triff die Entscheidung pro Standort bewusst, stelle gespeicherte Nummern auf +49 um, teste mit Test-CsEffectiveTenantDialPlan und dokumentiere die eine Falle, die bleibt. Dann wählt die Belegschaft weiter mit der Null wie seit dreißig Jahren, der Helpdesk hat am Montag um 8:05 Uhr wieder Zeit für seinen Kaffee, und bei 0112 meldet sich die Leitstelle. Und nicht die Kantine.

Dieses Consulting-Dokument steht als PDF zum Download bereit: https://www.boddenberg.de/ArtikelPdf/die-null-die-nicht.pdf — © Ulrich B. Boddenberg · boddenberg.de

Noch Fragen? Frag Uli

Du hast eine Frage zu diesem Thema? Schreib sie einfach hier rein. Ich antworte persönlich, kurz und ohne Verkaufsgespräch.

Antwort innerhalb von 24 Stunden

Deine Mailadresse nutze ich nur, um dir zu antworten. Kein Newsletter, keine Weitergabe. Zur Datenschutzerklärung