上一節咱們討論了全部用於Teams語音落地的前置條件準備,一齊來回顧一下:
1) 權限與管理員準備:O365管理員/Teams管理員;SBC管理員;本地Skype管理員;網絡管理員;DNS/CA管理員;
2) 許可準備:E3+Phone System Lic or E5 lic; SBC中必要的SIP Lic;;
3) 鏈接到SFB Online Powershell;
4) 鏈接到Office 365 Powershell;
5) 已經在O365註冊了,並已激活的公司域名;
6) 準備好用於SBC的公網IP與公網FQDN,並作好了公網DNS A記錄;
7) 準備好含SBC FQDN的公網證書;
8) 已經制做好相關的防火牆規則,同時網絡管理員確認正確;
9) 使用了認證的SBC,並已升級至最新的固件版本;
10) 若對安全有更好的要求,能夠在SBC中配置ACL;
以上這些若是你缺了同樣,能夠預見後面的配置是報錯百出,困難重重呀。css
接下來這一節,咱們將Step by Step地講述在Teams上面配置撥號計劃與語音路由的全過程,其中的邏輯與Skype for Business on premise的語音路由配置基本同樣,可是在Teams上面卻沒有GUI能夠配置,只能經過命令來配置,但這樣更加有助於你們理解其中的路由邏輯,因此咱們就老老實實用命令配置,燒燒腦吧。
首先,先鏈接到Office 365 Powershell, 須要注意的是若是你使用了MFA的認證方式,在Connect-MsolService的時候不能加入 Credential參數,不然的話Powershell沒法彈出二次認證的頁面了,以下:正則表達式
$String = "xxxxxxx" $username = "tangx@contoso.com" $PWord = ConvertTo-SecureString -String $String -AsPlainText -Force; $Cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, $PWord; Connect-MsolService -Credential $Cred
鏈接到Skype for Business online Powershell, 用於進行Teams的相關配置。
其中我在New-CsOnlineSession的時候加入了OverrideAdminDomain的參數,主要填寫O365租戶的域名(如 PoCcontoso.onmicrosoft.com),這樣讓你避免了這樣一個問題:登錄的時候,Powershell在內網會自動發現 Lyncdiscover.xxxx.com域名,但通常正常的Skype on premise混合部署時可能沒有使用這個域名,這會致使你用Powershell在內網登錄時失敗,以下:shell
$String = "xxxxxxxx" $username = "tangx@contoso.com" $TenantDomain = "ucssi.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 -OverrideAdminDomain $TenantDomain Import-PSSession $cssession -AllowClobber
關閉UseOnPremDialPlan關閉,以免與本地的撥號計劃衝突,以下:安全
Set-CsTenantHybridConfiguration -UseOnPremDialPlan $false
接下來開始配置Teams Dial Plan, 即撥號計劃,它的做用是撥號計劃是一組命名規範化規則,它將單個用戶撥打的電話號碼轉換爲通用的格式(一般爲E.164),以便進行呼叫受權和呼叫路由,通俗一點就是把用戶的撥號習慣轉換成一組通用的格式,例如:網絡
以Skype爲例,當用戶輸入手機號碼 159xxxxx 以後,系統會自動經過正則表達式把該號碼轉換成 +86159xxxxxxx , 這個規則叫作 Normalization Rule ,做用就是進行呼叫受權與呼叫路由(下文的語音路由配置將會使用這個轉換來進行路由)
session
那麼,多條Normalization Rule 就組成了一份Dial Plan, 例如:
ide
更加具體的解釋,可參考以下:
https://docs.microsoft.com/en-us/microsoftteams/what-are-dial-plans測試
在配置撥號計劃時,我通常會按照如下原則來配置:
1) 按照用戶既有的習慣來配置撥號計劃,爲何?code
2) 號碼轉換規範要聽從E.164的號碼標準。orm
接下來開始真正配置,將會配置一個很是簡單的撥號計劃(即輸入的任何數字都在前面加上一個 + 號),即 12345678 ---> +12345678 (更加複雜的撥號計劃會另起一節講述)
以下圖,新建一條Dial Plan, 而且新建轉換規則並賦值到 $NR 上面
#新建用戶級別撥號計劃 $DPParent = "CN-Shanghai-Nemo" New-CsTenantDialPlan $DPParent -Description "Nemo Dial Plan" $NR += New-CsVoiceNormalizationRule -Name 'CN-Shanghai-All' -Parent $DPParent -Pattern '^(\d*)$' -Translation '+$1' -InMemory
把$NR裏面的值增長到Dial Plan的轉換規則列表裏面,爲何這樣呢?由於上文有述,多條轉換規則組成了一個Dial Plan;
而後把Dial Plan 應用到相關的用戶便可 (Grant-CsTenantDialPlan),最後用Get-CsOnlineUser查詢一下是否分配成功,以下:
#注意,若是是原來DP基礎上更改了Normalization的話,要等比較久的時間才能推送下來 Set-CsTenantDialPlan -Identity $DPParent -NormalizationRules @{add=$NR} Grant-CsTenantDialPlan -PolicyName $DPParent -Identity tangx@ucssi.com
上面是分配Dial Plan, 但實際上是尚未這麼快生效的,咱們使用以下命令測試是否生效:Get-CsEffectiveTenantDialPlan
#測試Dial Plan Get-CsEffectiveTenantDialPlan -Identity tangx@ucssi.com | Test-CsEffectiveTenantDialPlan -DialedNumber 15975733668
一旦你看到上面的撥號計劃按照你配置的正則表達式那樣轉換號碼的話,即代表Dial Plan生效了。至此,咱們簡單的撥號計劃就作完並生效了,但實際的項目中,咱們須要把Dial Plan進一步地細分以知足不一樣的用戶習慣,通常我會這樣細分出來:短號,市內,國內長途,本地手機,外地手機,Toll Free, 國際長途 (將來將會有一節專門講述)
本節咱們認識到了什麼是撥號計劃,什麼是E.164標準,撥號計劃的重要性等;在下一節咱們將繼續「語音路由配置「,其中的邏輯與Skype for Business 同樣有點複雜,你們敬請期待。