1. 程式人生 > >Microsoft Teams Voice語音落地系列-4 實戰:Teams語音路由規劃與配置

Microsoft Teams Voice語音落地系列-4 實戰:Teams語音路由規劃與配置

callee num get sha oss 號碼 log 通過 其中

這一節繼續我們的Teams語音路由配置,首先要簡單講一下配置的邏輯,不然就會知其然不知其所以然了。

以下是Teams/Skype 的語音路由邏輯圖:
1) 用戶撥打了一個美國號碼,通過Dial Plan轉換成 +1 800 642 7676
2) Teams判斷是否有Voice Routing Policy分配到該用戶, 以下簡稱VRP
3) 若有分配特定的VRP,則會被應用到對應的VRP策略裏面。
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線路,多個語音網關的話,吃透這個邏輯非常有必要)
6) 最後,Voice Routing會直接把呼叫通過Direct Routing鏈路送達到你的本地語音網關上面。

技術分享圖片

用以下這張圖來實際說明一下,一個VRP下面掛著一個或多個PSTN Usage,在PSTN Usage裏面會被關聯著多條Voice Route, 它會使用正則表達式來判定這通呼叫會被路由到哪個語音網關上面,所以邏輯路徑是這樣子的:

Call --> Voice Routing Policy ---> PSTN Usage ---> Voice Route --> PSTN Gateway

但我們配置的順序卻是反過來的:

配置PSTN Gateway ---> 配置PSTN Usage ---> 配置Voice Route, 並關聯到PSTN Usage上面 ----> 配置VRP, 並添加PSTN Usage到VRP上面 ----> 把VRP分配給用戶

技術分享圖片

首先新建一個PSTN Gateway, 這裏面需要用到之前前置條件準備的材料了:1)SBC公網FQDN 2)相應的信令端口,如5061 3)SIP並發數,看你買了多少路SIP Session Lic了,如果你做測試的話,就無所謂了。
如下命令:

$FQDN = "teams-test.ucssi.com"
$SipSignallingPort = "5061"
$MaxConcurrentSessions = "100"
New-CsOnlinePSTNGateway -Identity $FQDN -Enabled $true -SipSignallingPort $SipSignallingPort -MaxConcurrentSessions $MaxConcurrentSessions -FailoverTimeSeconds 30 -ForwardCallHistory $true

技術分享圖片

接著創建PSTN Usage, 需要註意它不能新建只能在Global下面不斷地增加,同時它只是一個標識,沒有實際意義,以下我做了幾條不同的PSTN Usage, 後面會分別對應不同的Voice Route。為了簡單起見,我們只創建 AllCalls那一條即可。

Set-CsOnlinePstnUsage -Identity Global -Usage @{Add="CN-Shanghai-AllCalls"}

技術分享圖片

如下命令可以查詢PSTN Usage列表:

Get-CsOnlinePstnUsage | select usage -ExpandProperty usage

技術分享圖片

接下來創建Voice Route, 它關聯著不同的PSTN Usage與PSTN Gateway。我認為的最佳做法是VR與PSTN Usage一一對就起來。
在多地區,多SBC,細分權限的場景中,一個Voice Routing可以對應多個PSTN Usage,這樣可以復用到不同的VRP上面

$FQDN = “teams-test.ucssi.com”
New-CsOnlineVoiceRoute -Name "CN-Shanghai-All" -Priority 0 -OnlinePstnUsages "CN-Shanghai-AllCalls" -OnlinePstnGatewayList $FQDN -NumberPattern ‘^\+(\d{*})‘

技術分享圖片

做了這麽多工作,就是來最後創建Voice Routing Policy的,只要簡單的為新建的VRP指定一個PSTN Usage即可,但其中的邏輯一定要搞清楚哦,如下:

#新建Voice Routing Policy, 並指定PSTN Usage
#首先增加默認Global的,再增加用戶級別的
New-CsOnlineVoiceRoutingPolicy -Identity "CN-Shanghai-All" -OnlinePstnUsages @{Add="CN-Shanghai-AllCalls"} 

技術分享圖片

最後一步工作就是為用戶分配VRP策略了

  • 使用Set-CsUser為用戶分配URI, 啟用EV, 啟用Voice Mail (註意這裏的命令是Set-CsUser,而不是Set-CsOnlineUser)
  • 若你要查詢Teams用戶的屬性,請使用Get-CsOnlineUser命令。
  • 打開EV,需要事先分配好Phone System Lic,你準備了嗎?
  • 最後,你就可以按如下命令分配VRP了,過幾分鐘就可以查詢到成功分配VRP了。
#註意:需要用[email protected]
#查詢屬性使用:Get-CsOnlineUser才能查到,而不能用Get-CsUser
#修改屬性使用:Set-CsUser
#打開EV,需要有Phone System Lic
$user = "[email protected]"
Set-CsUser $user -OnPremLineURI tel:+86116
Set-CsUser $user -EnterpriseVoiceEnabled $true -HostedVoiceMail $true

#分配VRP給用戶
#只有分配好VRP後,混合部署的話要等差不多24小時,才會有撥號盤出來
Grant-CsonlineVoiceRoutingPolicy -PolicyName "Tag:CN-Shanghai-All" -Identity $user

技術分享圖片

最後,我們就可以在Teams上面看到Teams Dial Pad的出現,也就意味著在Teams端的配置完成了,所有這些操作我們都可以申請一個國際版的Office 365進行測試,就算沒有Phone System許可也是可以的,因為大不了啟用不了EV,不影響我們實戰操作,最新的效果如下
技術分享圖片

接下來章節,我們就開始配置本地的語音網關與Teams Direct Routing的鏈路了

Microsoft Teams Voice語音落地系列-4 實戰:Teams語音路由規劃與配置