Script Name: Set-GlobalVoiceRouting.ps1
Script Author: Ståle Hansen
Original Post: https://msunified.net/2011/02/18/script-to-enable-global-voice-routing/
Log:
- v02 22.02.2011
- Added Global DialinConferencingRegion on the Global DialPlan
- Added if else check for the creation of the Voice Route
- If GlobalRoute exist, modify, else create new
- v01 18.02.2011
- Initial Script, used at own risk
- The script is intended for initial deployment for pilot or single site deployments with voice
- Removes Default Normalization Rule under Global DialPlan
- Creates four Normalization Rules for Norway under Global DialPlan
- Creates Global Pstn Usage and removing prepopulated ones
- Removes Existing Voice Route “Local Route”
- Creates VoicePolicy Global with Pstn Usage Global
- Creates Route named Global with Pstn Usage Global and adds the only PstnGateway in topology with NumberPattern “.*”
- Creates and runs one Test Voice Routing
- Writes the test result
####################################################################################################
# Set-GlobalVoiceRouting.ps1
#
# v02 February2011 by Ståle Hansen (https://msunified.net/)
#
####################################################################################################
$ErrorActionPreference = 'SilentlyContinue'
clear-host
[System.Console]::ForegroundColor = [System.ConsoleColor]::White
Write-Host Implementing and testing Global Voice Routing...
Remove-CsVoiceNormalizationRule -Identity "Global/Prefix All"
New-CsVoiceNormalizationRule -Parent Global -Name "NorEmergencyNumbers" -Description "Norwegian Emergency Numbers" -Pattern '^(11[0-3])$'-Translation '+47$1' | out-null
New-CsVoiceNormalizationRule -Parent Global -Name "NorFiveDigitNumbers" -Description "Norwegian Five Digit Numbers" -Pattern '^(0\d{4})$'-Translation '+47$1'| out-null
New-CsVoiceNormalizationRule -Parent Global -Name "NorEightDigitNumbers" -Description "Norwegian Eight Digit Numbers" -Pattern '^([1-9]\d{7})$'-Translation '+47$1'| out-null
New-CsVoiceNormalizationRule -Parent Global -Name "InternationalWithPrefix00" -Description "International numbers that start with 00" -Pattern '^00(\d*)$'-Translation '+$1'| out-null
Set-CsPstnUsage -Usage Global
Remove-CsVoiceRoute LocalRoute
Set-CsVoicePolicy -Name Global -PstnUsages Global
Set-CsDialPlan -Identity Global -DialinConferencingRegion Global
foreach($Services in (Get-CsPool)){
$PstnGW=$Services.services
$PstnGWcheck=$PSTNGW | ForEach-Object {$_.split(':')[0]}
if($PstnGWcheck -eq 'PstnGateway'){
$routetest= Get-CsVoiceRoute -Identity GlobalRoute
if($routetest.Identity -eq "GlobalRoute"){Set-CsVoiceRoute -Identity GlobalRoute -PstnGatewayList $PstnGW | out-null}
else{New-CsVoiceRoute -Identity GlobalRoute -PstnUsages Global -NumberPattern '.*' -Description "Global route for the entire organization" -PstnGatewayList $PstnGW | out-null}
}
}
New-CsVoiceTestConfiguration -Identity TestNorEightDigitNumbers -DialedNumber 70724598 -ExpectedTranslatedNumber +4770724598 -ExpectedUsage Global -ExpectedRoute GlobalRoute | out-null
[System.Console]::ForegroundColor = [System.ConsoleColor]::Green
Get-CsVoiceTestConfiguration -Identity TestNorEightDigitNumbers | Test-CsVoiceTestConfiguration | Select-Object Result | fl
[System.Console]::ForegroundColor = [System.ConsoleColor]::Gray
$ErrorActionPreference = 'Continue'