语音路由策略是整个Teams语音落地的关键部分,一旦分配了这个策略,Teams用户的拨号盘就会显示出来供用户使用css
对上一节中,咱们经过Teams管理中心把拨号计划建立出来,并分配给用户。这一节咱们仍是使用管理界面来进行Teams语音路由配置,首先要简单讲一下配置的逻辑:正则表达式
1) 用户拨打了一个美国号码,经过Dial Plan转换成 +1 800 642 7676shell
2) Teams判断是否有Voice Routing Policy分配到该用户, 如下简称VRPsession
3) 如有分配特定的VRP,则会被应用到对应的VRP策略里面ide
4) 在VRP里面会含有一组PSTN Usage, VRP会根据Callee Number给呼叫打上一个标记,就是PSTN Usage。因此你彻底能够把PSTN Usage理解为一个标记便可,没有实质性的做用。测试
5) 第五步就比较重要了,这里会应用上一组/条语音路由 Voice Routing,它会根据Callee Number来判断是否路由到相应的语音网关上面。同时每一条Voice Routing都关联着一条/组PSTN Usage,也就是说这通呼叫以前被打上了一个标记PSTN Usage_To China, 那么这通呼叫就只能使用对应的Voice Routing进行路由了。加密
(若你只有一个语音网关,一个地方的用户,这个理解不了也无所谓,但若是你有多个地方的用户,多条PSTN线路,多个语音网关的话,吃透这个逻辑很是有必要)blog
6) 最后,Voice Routing会直接把呼叫经过Direct Routing链路送达到你的本地语音网关上面。路由
一个VRP下面能够挂着一个或多个PSTN Usage,在PSTN Usage里面会被关联着多条Voice Route, 它会使用正则表达式来断定这通呼叫会被路由到哪一个语音网关上面(参考上述第三,第四步),因此逻辑路径是这样子的:rem
Call --> Voice Routing Policy ---> PSTN Usage ---> Voice Route --> PSTN Gateway
首先新建一个PSTN Gateway(这里须要用到以前定义好的SBC FQDN, 也就是你以前申请证书的主体名字),其实也就是一条基于TLS加密的SIP Trunk,微软把它定义为Teams Direct Routing
最后建立出来的Direct Routing链路就会是这样子:
建立一条北京本地固话的语音路由CN-Beijing-Local,Dialed number pattern为^+8610([1-9]\d{7,9})
而后在这条语音路由中选择对应的落地SBC
展开一下,若是企业在全国各地都有SBC,为了作经济路由,你能够为不一样区别的呼叫分配不一样的SBC从而实现电话费用节约的目的
接着建立PSTN Usage, 须要注意它不能新建,只能在Global下面不断地增长,同时它只是一个标识,用于标识这条路由的用途。为了简单起见,咱们只建立 CN-Beijing-Local一条便可,即标识了这是一条北京本地电话的路由
按着这个作法,我把全部的路由都作出来了,请参考
作了这么多工做,就是来最后建立Voice Routing Policy的,只要简单的为新建的VRP指定PSTN Usage便可,但其中的逻辑必定要搞清楚哦,以下:
例如,下图中的VRP它含有所有PSTN Usage,说明这条路由策略能够打电话到任何地方
若是你想作一条只能打国内电话的VRP呢?简单把CN-Beijing-International删除便可
因此VPR就是用于作语音权限的控制的
接着为用户分配VRP策略:
最后咱们来为用户分配Phone System 许可,打开企业语音,分配电话号码,这三个任务都须要使用命令来完成
登录Teams Powershell
$String = "yourpassword" $username = "tangx@contosso.com" $TenantDomain = "contoso.onmicrosoft.com" Import-Module SkypeOnlineConnector; $PWord = ConvertTo-SecureString -String $String -AsPlainText -Force; $Cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, $PWord; $CSSession=New-CsOnlineSession -credential $Cred Import-PSSession $cssession -AllowClobber
分配许可
打开企业语音,分配电话号码
$user = "tangx@contoso.com" Set-CsUser $user -OnPremLineURI 'tel:+861088888888' Set-CsUser $user -EnterpriseVoiceEnabled $true
最后,咱们就能够在Teams上面看到Teams Dial Pad的出现,也就意味着在Teams端的配置完成了,全部这些操做咱们均可以申请一个国际版的Office 365进行测试,就算没有Phone System许可也是能够的,由于大不了启用不了EV,不影响咱们实战操做,最终的效果以下: