什麼是IVR? Interactive Voice Response,就是互動式語音應答,你只須用電話即可進入服務中心或企業前臺,可以輸入員工分機號碼後找到相應的用戶。例如當你一個前臺總機的時候,就會聽到這樣一段提示音樂:”歡迎致電xxx信息技術有限公司,請直播分機號,查號請播 0 “ ,有了IVR之後,企業的員工就無須單獨分配一個直線電話號碼,而通過企業總機就可以讓外部的人聯繫到你了。
那本文介紹的Teams AA (auto attendants) 正是用來實現這樣一個簡單但重要的功能。Teams的前身是Skype for Business / Lync ,在SFB/Lync時代要實現AA的話,必須要在SBC上面對接 3rd IVR(包括前期的Teams版本也是一樣),因爲它們沒有所謂的“二次撥號” 的功能,也就是“請直播分機號” 這樣一個功能。在SFB中雖然有響應組(RGS)的功能,但RGS只能做到 按1轉到銷售組,按2轉到技術組,按3轉到市場組….這樣的功能。對接一套3rd IVR 費用不便宜,而且增加了整個系統的複雜性,如以下拓撲:
直到Teams AA 的出現 (Cloud auto attendant),終於可以原生地實現“二次播號”,結合之前詳細講述的Teams Direct Routing 就可以實現這樣一個非常重要的場景:
客戶A撥打Contoso.com 的總機 +86 21 12345678,這個呼叫通過PSTN來到企業的SBC。
SBC通過Direct Routing 把這個總機號碼路由給Teams。
因爲總機號碼已經事先分配給Teams AA , 所以歡迎語音播放出來:“歡迎致電Contoso 信息技術有限公司, 請直播分機號,查號請播0。
客戶輸入 4321分機號,4321的Teams用戶振鈴,雙方接通。
如下圖:
沒有 IVR 場景的話,企業是很難把電話系統整體搬到Teams 上面來的,所以說這項功能的實現是Teams 項目完美與否的重要條件之一哦,那Teams AA 可以爲用戶提供這樣一些功能:
1)提供企業的歡迎語音,如 歡迎致電xxx信息技術有限公司。
2)可以自定義用戶的按鍵菜單,如按1轉到銷售組,按2轉到技術組,按3轉到市場組。
3)提供企業的目錄搜索,可以通過語音識別 或 員工的分機號碼 (這是重點功能)。
4)Voice Mail 留言。
5)支持語音提示方式:音頻文件,Text-to-speech 問候語。
6)自定義工作時間與節假日時間的提示與操作(呼叫轉移,掛斷,Voice Mail…)。
7)支持轉移呼叫到 定義好的接線生,其它員工,呼叫列隊Call Queue,自動助理AA。
8)請參考 *1
前置條件
接下來就是如何來部署這個Teams AA了,幫忙大家就把中間的坑過一過,我們需要一些前置條件(磨刀不誤砍柴工),如下:
1)需要爲資源帳號分配 Phone System Virtual User license, 免費,有了它之後資源帳號才能分配企業語音與總機電話號碼。
2)需要有一個Azure 資源帳號,用於關聯到AA 或 Call queue當中。
3)AA中的前臺總機或呼叫轉移的用戶,需要有Phone System 許可(理論上面應該是有的,因爲需要使用本文的讀者都是需要Phone System Lic.)。
4)需要同時登陸到O365 Powershell 與 Teams Powershell, 以進行Powershell 的快速部署(參考*2 與 * 3)。
5)(可選)假設前提是你已經部署並測試好Teams Direct Routing, .可以打電話到Teams用戶當中。如果你只想做Teams AA的功能驗證,則不需要部署DR, 直接拿一個O365環境即可測試。
申請免費的Phone System虛擬用戶許可
首先我們需要先申請Phone System Virtual User license,如下圖(中間省略了很多關於支付方式的創建步驟)
申請下來之後,可以登陸O365 Powershell (參考 *2)查看許可信息:
PS C:\WINDOWS\system32> Get-MsolAccountSku
AccountSkuId ActiveUnits WarningUnits ConsumedUnits
------------ ----------- ------------ -------------
mvp:FLOW_FREE 10000 0 1
mvp:PHONESYSTEM_VIRTUALUSER 10 0 0
mvp:ENTERPRISEPREMIUM_NOPSTNCONF 5 0 4
創建資源帳號
接着我們需要創建資源帳號,通過它可以關聯多個電話號碼到同一個AA 或 Call Queue當中,應用場景就是企業中的AA 或 Call Queue 提供了全球/多地的電話接入,用戶可以在不同的地方撥打不同的電話號碼接入AA 或 Call Queue當中。
第一,先記住這兩個在Teams中hardcode好的應用程序ID:
Auto Attendant: ce933385-9390-45d1-9512-c8d228074e07
Call Queue: 11cd3e2e-fccb-42ad-ad00-878b93575e07
PS C:\WINDOWS\system32> New-CsOnlineApplicationInstance -UserPrincipalName [email protected] -ApplicationId “” -DisplayName "Resource account 1"
RunspaceId : 4a20f627-c869-4a50-8732-9759fa18177e
ObjectId : d535722c-96c4-41ac-ac98-e70f565c5c11
TenantId : b8304c7f-0006-40b3-8c1e-8bd82e8de0ed
UserPrincipalName : [email protected]
ApplicationId : ce933385-9390-45d1-9512-c8d228074e07
DisplayName : Resource account 1
PhoneNumber :
創建一個Call queue的資源帳號
PS C:\WINDOWS\system32> New-CsOnlineApplicationInstance -UserPrincipalName [email protected] -ApplicationId “11cd3e2e-fccb-42ad-ad00-878b93575e07 ” -DisplayName "Resource account 2 - call queue"
RunspaceId : 4a20f627-c869-4a50-8732-9759fa18177e
ObjectId : 900c4e0f-3a84-42d9-9ae7-690962f4075e
TenantId : b8304c7f-0006-40b3-8c1e-8bd82e8de0ed
UserPrincipalName : [email protected]
ApplicationId : 11cd3e2e-fccb-42ad-ad00-878b93575e07
DisplayName : Resource account 2 - call queue
PhoneNumber :
第三,記得爲創建的資源帳號分配剛剛申請下來的免費Phone System許可,不然就會出錯以下錯誤:
Get-MsolAccountSku
Get-msoluser -UserPrincipalName AA_RA@scnbwy.com | Set-MsolUser -UsageLocation hk
Set-MSOLUserLicense -UserPrincipalName [email protected] -AddLicenses scnbwymvp:PHONESYSTEM_VIRTUALUSER
第四,爲資源帳號分配電話號碼(例如分配一個企業的總機電話號碼)
#使用Direct Routing的號碼時,必須使用以下命令來設置AA的電話號碼
PS C:\WINDOWS\system32> Set-CsOnlineApplicationInstance -Identity [email protected] -OnpremPhoneNumber +8675712345678
RunspaceId : 391a2a8d-ea7b-4976-ba17-a60f6c9044c4
ObjectId : d535722c-96c4-41ac-ac98-e70f565c5c11
TenantId : b8304c7f-0006-40b3-8c1e-8bd82e8de0ed
UserPrincipalName : [email protected]
ApplicationId : ce933385-9390-45d1-9512-c8d228074e07
DisplayName : Resource account 1
PhoneNumber :
#檢查設置
PS C:\WINDOWS\system32> get-CsOnlineApplicationInstance -Identity [email protected]
RunspaceId : 391a2a8d-ea7b-4976-ba17-a60f6c9044c4
ObjectId : d535722c-96c4-41ac-ac98-e70f565c5c11
TenantId : b8304c7f-0006-40b3-8c1e-8bd82e8de0ed
UserPrincipalName : [email protected]
ApplicationId : ce933385-9390-45d1-9512-c8d228074e07
DisplayName : Resource account 1
PhoneNumber : tel:+8675712345678
爲普通用戶分配phone system許可並打開EV (這一步應該在配置Direct Routing的時候就已經做完的了 *4)
Get-CsOnlineUser | ?{$_.SipProxyAddress -like '*tangx*'} | Set-CsUser -EnterpriseVoiceEnabled $true
Get-CsOnlineUser | ?{$_.SipProxyAddress -like '*tangx*'} | fl *enter*,*name*
最後,我們可以使用管理中心對這些資源帳號進行管理,如下:
配置一個簡單的Teams AA
剛剛這麼折騰地申請許可,創建資源帳號,分配許可 一系列的工作,就是爲了下面順利地配置一個TeamsAA, 不文字了,直接上圖就能說明白一切:
(主要是業務需求問題,已經沒有什麼技術問題,配置好之後外線就可以撥打總機號碼通過的Direct Routing鏈路接通這個AA實現IVR的功能了)
可以綁定兩個帳號,實現同一個AA可以設置多個電話接入號碼,可以應用於全球多地接入,多個熱線號碼 等一些場景當中。
參考:
*1 What are Cloud auto attendants? https://docs.microsoft.com/en-us/microsoftteams/what-are-phone-system-auto-attendants
*2 使用Powershell 登陸O365 方法:Set-ExecutionPolicy RemoteSigned; Install-Module MSOnline; Import-Module MSOnline ; Connect-MsolService
*3 使用Powershell 登陸MS Teams admin Powershell https://blog.51cto.com/nemotan/2481040
*4 Microsoft Teams Voice語音落地系列 -彙總帖 https://blog.51cto.com/nemotan/2420875