通过 cmdlet 创建呼叫队列
先决条件
在计算机上安装 PowerShell。
为计算机设置Windows PowerShell
已安装 MSTeams 模块
Install-Module -Name MicrosoftTeams -Force -AllowClobber
已安装 Microsoft Graph 模块
Install-Module -Name Microsoft.Graph -Force -AllowClobber
确保具有租户管理权限。
购买Microsoft Teams 电话。
已创建本文中提到的代理、通讯组列表和 Teams 频道。
注意
此方案中使用的 Teams 通道 cmdlet 是 Teams PowerShell 模块的公共预览版的一部分。 有关详细信息,请参阅 安装 Teams PowerShell 公共预览版 和 Microsoft Teams PowerShell 发行说明。
已安装 MicrosoftTeams 模块的用户应 Update-Module MicrosoftTeams
确保已安装最新版本。
使用场景
在此方案中,将创建以下三个调用队列:
- 销售呼叫队列
- 支持呼叫队列
- 设施协作呼叫队列
销售呼叫队列信息:
- 嵌套在自动助理后面:是
- 从 PSTN 直接呼叫:否
- 语言:美国英语
- 问候语:无
- 保留音乐:播放音频文件
- 文件名:sales-hold-in-queue-music.wav
- 呼叫应答:用户
- Bill@contoso.com
- Mary@contoso.com
- 会议模式:打开
- 路由方法:助理
- 基于状态的路由:关闭
- 呼叫代理可以选择不接听电话:是
- 呼叫代理警报时间:15
- 调用溢出处理:200
- 重定向到: Adele@contoso.com
- 调用超时处理:120 秒
- 重定向到: Adele@contoso.com
支持呼叫队列信息:
- 嵌套在自动助理后面:是
- 从 PSTN 直接呼叫:否
- 语言:英语(英国)
- 问候语:播放音频文件
- 文件名:support-greeting.wav
- 保留音乐:播放音频文件
- 文件名:support-hold-in-queue-music.wav
- 呼叫应答:支持通讯组列表
- Support@contoso.com
- 会议模式:打开
- 路由方法:最长空闲时间
- 基于状态的路由:由于空闲时间最长,默认为“无”-“打开”
- 呼叫代理可以选择不接听电话:否
- 呼叫代理警报时间:15
- 调用溢出处理:200
- 重定向:支持共享语音邮件
- 播放音频文件 (support-shared-voicemail-greeting.wav)
- 已启用听录
- 重定向:支持共享语音邮件
- 呼叫超时处理:45 分钟
- 重定向:支持共享语音邮件
- TTS:“很抱歉,你一直等待,现在正在将你的呼叫转移到语音邮件。
- 已启用听录
- 重定向:支持共享语音邮件
设施协作呼叫队列信息:
- 嵌套在自动助理后面:否
- 来自 PSTN 的直接呼叫:没有 (内部呼叫,仅)
- 语言:法语 FR
- 问候语:无
- 保留音乐:默认
- 呼叫应答:团队:设施
- 呼叫应答通道:技术支持
- 频道所有者: Fred@contoso.com
- 会议模式:打开
- 路由方法:轮循机制
- 基于状态的路由:打开
- 呼叫代理可以选择不接听电话:否
- 呼叫代理警报时间:15
- 调用溢出处理:200
- 断开连接
- 呼叫超时处理:45 分钟
- 断开连接
登录
出现提示时,输入 Teams 管理员凭据。
$credential = Get-Credential
Connect-MicrosoftTeams -Credential $credential
Connect-MgGraph -Credential $credential
销售队列
创建音频文件
将 替换为 d:\\
计算机上存储 wav 文件的路径。
$content = [System.IO.File]::ReadAllBytes('d:\sales-hold-in-queue-music.wav')
$audioFileSalesHoldInQueueMusicID = (Import-CsOnlineAudioFile -ApplicationID HuntGroup -FileName "sales-hold-in-queue-music.wav" -Content $content).ID
获取用户 ID
$userAdeleID = (Get-CsOnlineUser -Identity "sip:adele@contoso.com").Identity
$userSalesBillID = (Get-CsOnlineUser -Identity "sip:bill@contoso.com").Identity
$userSalesMaryID = (Get-CsOnlineUser -Identity "sip:mary@contoso.com").Identity
获取支持的语言列表
Get-CsAutoAttendantSupportedLanguage
创建呼叫队列
New-CsCallQueue -Name "Sales" -AgentAlertTime 15 -AllowOptOut $true -MusicOnHoldAudioFileID $audioFileSalesHoldInQueueMusicID -OverflowAction Forward -OverflowActionTarget $userAdeleID -OverflowThreshold 200 -TimeoutAction Forward -TimeoutActionTarget $userAdeleID -TimeoutThreshold 120 -RoutingMethod Attendant -ConferenceMode $true -User @($userSalesBillID, $userSalesMaryID) -LanguageID "en-US"
获取许可证类型
Get-MgSubscribedSku
创建和分配资源帐户
此处不需要电话号码,因为呼叫队列嵌套在自动助理后面。
- ApplicationID
- 自动助理:ce933385-9390-45d1-9512-c8d228074e07
- 呼叫队列:11cd3e2e-fccb-42ad-ad00-878b93575e07
后面 (PHONESYSTEM_VIRTUALUSER)
显示的许可证类型必须是 cmdlet Get-MgSubscribedSku
列出的许可证类型。
New-CsOnlineApplicationInstance -UserPrincipalName Sales-RA@contoso.com -DisplayName "Sales" -ApplicationID "11cd3e2e-fccb-42ad-ad00-878b93575e07"
Update-MgUser -UserId "Sales-RA@contoso.com" -UsageLocation US
Set-MgUserLicense -UserId "Sales-RA@contoso.com" -AddLicenses @(contoso:PHONESYSTEM_VIRTUALUSER) -RemoveLicenses @()
$applicationInstanceID = (Get-CsOnlineUser -Identity "Sales-RA@contoso.com").Identity
$callQueueID = (Get-CsCallQueue -NameFilter "Sales").Identity
New-CsOnlineApplicationInstanceAssociation -Identities @($applicationInstanceID) -ConfigurationID $callQueueID -ConfigurationType CallQueue
支持队列
创建音频文件
将 替换为 d:\\
计算机上存储 wav 文件的路径。
$content1 = [System.IO.File]::ReadAllBytes('d:\support-greeting.wav')
$audioFileSupportGreetingID = (Import-CsOnlineAudioFile -ApplicationID HuntGroup -FileName "support-greeting.wav" -Content $content1).ID
$content2 = [System.IO.File]::ReadAllBytes('d:\support-hold-in-queue-music.wav')
$audioFileSupportHoldInQueueMusicID = (Import-CsOnlineAudioFile -ApplicationID HuntGroup -FileName "support-hold-in-queue-music.wav" -Content $content2).ID
$content3 = [System.IO.File]::ReadAllBytes('d:\support-shared-voicemail-greeting.wav')
$audioFileSupportSharedVoicemailGreetingID = (Import-CsOnlineAudioFile -ApplicationID HuntGroup -FileName "support-shared-voicemail-greeting.wav" -Content $content3).ID
获取支持团队组 ID
$teamSupportID = (Get-Team -DisplayName "Support").GroupID
获取支持的语言列表
Get-CsAutoAttendantSupportedLanguage
创建呼叫队列
New-CsCallQueue -Name "Support" -AgentAlertTime 15 -AllowOptOut $false -DistributionLists $teamSupportID -WelcomeMusicAudioFileID $audioFileSupportGreetingID -MusicOnHoldAudioFileID $audioFileSupportHoldInQueueMusicID -OverflowAction SharedVoicemail -OverflowActionTarget $teamSupportID -OverflowThreshold 200 -OverflowSharedVoicemailAudioFilePrompt $audioFileSupportSharedVoicemailGreetingID -EnableOverflowSharedVoicemailTranscription $true -TimeoutAction SharedVoicemail -TimeoutActionTarget $teamSupportID -TimeoutThreshold 2700 -TimeoutSharedVoicemailTextToSpeechPrompt "We're sorry to have kept you waiting and are now transferring your call to voicemail." -EnableTimeoutSharedVoicemailTranscription $true -RoutingMethod LongestIdle -ConferenceMode $true -LanguageID "en-US"
获取许可证类型
Get-MgSubscribedSku
创建和分配资源帐户
此处不需要电话号码,因为呼叫队列嵌套在自动助理后面。
- ApplicationID
- 自动助理:ce933385-9390-45d1-9512-c8d228074e07
- 呼叫队列:11cd3e2e-fccb-42ad-ad00-878b93575e07
后面 (PHONESYSTEM_VIRTUALUSER)
显示的许可证类型必须是 cmdlet Get-MgSubscribedSku
列出的许可证类型。
New-CsOnlineApplicationInstance -UserPrincipalName Support-RA@contoso.com -DisplayName "Support" -ApplicationID "11cd3e2e-fccb-42ad-ad00-878b93575e07"
Update-MgUser -UserId "Support-RA@contoso.com" -UsageLocation US
Set-MgUserLicense -UserId "Support-RA@contoso.com" -AddLicenses @(contoso:PHONESYSTEM_VIRTUALUSER) -RemoveLicenses @()
$applicationInstanceID = (Get-CsOnlineUser -Identity "Support-RA@contoso.com").Identity
$callQueueID = (Get-CsCallQueue -NameFilter "Support").Identity
New-CsOnlineApplicationInstanceAssociation -Identities @($applicationInstanceID) -ConfigurationID $callQueueID -ConfigurationType CallQueue
设施协作呼叫队列
获取设施团队组 ID
$teamFacilitiesGroupID = (Get-Team -DisplayName "Facilities").GroupID
获取设施支持团队频道 ID
Get-TeamChannel -GroupId $teamFacilitiesGroupID
$teamFacilitiesHelpDeskChannelID = "{assign ID from output of above command}"
获取设施技术支持频道所有者用户 ID
$teamFacilitiesHelpDeskChannelUserID = (Get-TeamChannelUser -GroupId $teamFacilitiesGroupID -DisplayName "Help Desk" -Role Owner).UserId
代表调用资源帐户 ID 获取
$oboResourceAccountID = (Get-CsOnlineUser -Identity "MainAA-RA@contoso.com").Identity
获取支持的语言列表
Get-CsAutoAttendantSupportedLanguage
创建呼叫队列
New-CsCallQueue -Name "Facilities" -AgentAlertTime 15 -AllowOptOut $false -ChannelId $teamFacilitiesHelpDeskChannelID -ChannelUserObjectId $teamFacilitiesHelpDeskChannelUserID -ConferenceMode $true -DistributionList $teamFacilitiesGroupID -LanguageID "fr-FR" -OboResourceAccountIds $oboResourceAccountID -OverflowAction DisconnectWithBusy -OverflowThreshold 200 -RoutingMethod RoundRobin -TimeoutAction Disconnect -TimeoutThreshold 2700 -UseDefaultMusicOnHold $true
获取许可证类型
Get-MgSubscribedSku
创建和分配资源帐户
此处不需要电话号码,因为呼叫队列嵌套在自动助理后面。
- ApplicationID
- 自动助理:ce933385-9390-45d1-9512-c8d228074e07
- 呼叫队列:11cd3e2e-fccb-42ad-ad00-878b93575e07
后面 (PHONESYSTEM_VIRTUALUSER)
显示的许可证类型必须是 cmdlet Get-MgSubscribedSku
列出的许可证类型。
New-CsOnlineApplicationInstance -UserPrincipalName Facilities-RA@contoso.com -DisplayName "Facilities" -ApplicationID "11cd3e2e-fccb-42ad-ad00-878b93575e07"
Update-MgUser -UserId "Facilities-RA@contoso.com" -UsageLocation US
Set-MgUserLicense -UserId "Facilities-RA@contoso.com" -AddLicenses @(contoso:PHONESYSTEM_VIRTUALUSER) -RemoveLicenses @()
$applicationInstanceID = (Get-CsOnlineUser -Identity "Facilities-RA@contoso.com").Identity
$callQueueID = (Get-CsCallQueue -NameFilter "Facilities").Identity
New-CsOnlineApplicationInstanceAssociation -Identities @($applicationInstanceID) -ConfigurationID $callQueueID -ConfigurationType CallQueue