Die allermeisten Nutzer sind es gewöhnt innerhalb der gleichen Stadt nicht die Ortsvorwahl mit zu wählen, der SIP Trunk akzeptiert jedoch in der Regel ausschließlich Rufnummern im E.164 Format, sprich +4982112345667 zum Beispiel die Rufnummer 12345667 würde definitiv zu einem 404 – Not Found führen.
Wahlpläne
Die Lösung für dieses Problem stellen die sogenannten Wahlpläne da. Mit Ihnen können auf Basis komplexester RegEx Mustern Anzurufende Rufnummern manipuliert werden. Auch Call-by-Call würde sich bestimmt dynamisch Lösen lassen, aber das ist in Zeiten von Flatrate Telefonie wohl nicht weiter notwendig. Die Ortsvorwahl dynamisch hinzuzufügen ist relativ einfach.
Zunächst ist das RegEx Pattern zu bestimmen. Für den Fall einer Deutschen Ortsrufnummer gibt es einige Kritierien:
- Fängt nicht mit der Ziffer 0 an
- Fängt nicht mit dem Zeichen + an
$rule1=New-CsVoiceNormalizationRule -Parent Global -Description 'CityLocalPrefix' -Pattern '^[^\+0]\d*$' -Translation '+49821$1' -Name CityLocalPrefix -IsInternalExtension $false -InMemory
Set-CsTenantDialPlan -Identity AugsburgDialPlan -NormalizationRules @{add=$rule1}
Wichtig sind hierbei die Parameter Pattern & Translation. Pattern bestimmt das RegEx mit dem die Anzurufenden Rufnummern verglichen werden und dann die Translation angewandt werden soll. Das „$1“ in Translation wird mit der vom Nutzer gewählten Rufnummer ersetzt.
Schlussendlich muss der DialPlan noch den jeweiligen Nutzern zugewiesen werden. Sind beispielsweise Nutzer an mehreren Standorten vertreten, so müssen diese Regeln für jeden Standort angelegt und verteilt werden.
Grant-CsTenantDialPlan -Identity markus@hupfauer.one -PolicyName CityLocalPrefix
Wählt ein Nutzer nun die 1234556 greift der DialPlan und stellt +49821 voraus, was am SBC zur Rufnummer +498211234556 führt, die wiederum problemlos angerufen werden kann.