Supporting extension dialing in Teams can be quite the endeavor. I recently had a customer that had 5 different tenants and wanted legacy extension dialing between all the tenants. I started to manually extensions and decided there was an easier way to do it. I created a script to pull in a .csv with the below headings.
My script uses the same entry for Description and Identity, but you can add another column for Identity, if it needs to be different.
First the script pulls in the .csv. I set vaiables to create the new normalization rules, then added them to the Global dial plan. You could change this up if you need to create a custom Dial Plan and not add to the Global.
*** Teams Dial Plan***
$users = Import-Csv -Path .\normrules.csv
ForEach ($user in $users) {
$NR = @()
$NR += New-CsVoiceNormalizationRule -Parent Global -Name $user.Description -Description $user.Description -Pattern $user.Pattern -Translation $user.Translation -IsInternalExtension $true -InMemory
Set-CsTenantDialPlan -Identity Global -NormalizationRules @{add=$NR} -Confirm}
$DP = Get-CsTenantDialPlan -Identity Global
$NR = $DP.NormalizationRules
Set-CsTenantDialPlan -Identity Global -NormalizationRules $DP.NormalizationRules
Comments