Настройка — очередь вызовов через PowerShell

Новые возможности очереди звонков (последние шесть месяцев)

Необходимые компоненты

  • Убедитесь в наличии прав администратора клиента.
  • Агенты, списки рассылки и каналы Teams, упомянутые в этой статье, уже созданы.
  1. Определите, MicrosoftTeams установлен ли модуль PowerShell.

    Get-InstalledModule -Name MicrosoftTeams
    

    MicrosoftTeams Если модуль PowerShell уже установлен, выходные данные команды будут выглядеть примерно так:

    Get-InstalledModule -Name MicrosoftTeams
    
    Version              Name                                Repository           Description
    -------              ----                                ----------           -----------
    7.7.0                MicrosoftTeams                      PSGallery            Microsoft Teams cmdlets module for Windows PowerShell and PowerShell Core....
    

    Перейдите к шагу 2.

    MicrosoftTeams Если модель PowerShell еще не установлена, перейдите к шагу 3.

  2. Обновите MicrosoftTeams модуль

    Update-Module MicrosoftTeams
    

    Перейдите к сценариям

  3. Установите MicrosoftTeams модулю PowerShell на компьютере.

    • Настройка компьютера для Windows PowerShell

    • Модуль MSTeams установлен

      Install-Module -Name MicrosoftTeams -Force -AllowClobber
      
    • Установлен модуль Microsoft Graph

      Install-Module -Name Microsoft.Graph -Force -AllowClobber
      

Scenarios

Продажи (пользователи и группы)

  • Вложен за автосекретарем: Да
  • Звонки: только через автосекретаря отдела продаж — учетная запись ресурса не требуется
  • Язык: английский (США)
  • Приветствие: нет (звонки приветствуются автосекретарем отдела продаж)
  • Музыка на удержании: воспроизведение звукового файла
    • Имя файла: sales-hold-in-queue-music.wav
  • Ответ на вызовы: пользователи
    • Bill@contoso.com
    • Mary@contoso.com
  • Ответ на вызовы: группа
    • Sales@contoso.com
  • Режим конференции: Вкл
  • Метод маршрутизации: Round Robin
  • Маршрутизация на основе присутствия: Вкл
  • Операторы могут отказаться от приема звонков: Да
  • Время оповещения оператора звонка: 15
  • Обработка переполнения звонка: 200
    • Перенаправление на: Adele@contoso.com
  • Обработка времени ожидания вызова: 120 секунд
    • Перенаправление на: Adele@contoso.com
  • Никаких операторов
    • Применить ко всем звонкам
    • Перенаправление на: Adele@contoso.com
  • Обратный звонок: нет
  • Уровень обслуживания: 20 секунд
  • Проверка подлинности пользователя
    • Adele@contoso.com
  • Голосовые приложения Политика: Продажи
  • Запись соответствия: нет
  • Общий журнал вызовов: Да
    • Шаблон: Продажи
  • Автоматическая запись: нет
Разверните для просмотра команд PowerShell

Вход

При появлении запроса введите учетные данные администратора Teams.

$credential = Get-Credential
Connect-MicrosoftTeams -Credential $credential
Connect-MgGraph -Credential $credential

Создание аудио Files

Замените 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

Создание шаблона общей истории звонков

Создание автоматической записи для шаблона очереди вызовов

Получение идентификатора пользователя

$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"

Поддержка (Microsoft Shifts)

  • Вложен за автосекретарем: Да -
  • Звонки: через автосекретаря службы поддержки, внутри компании и через ТСОП (требуется учетная запись ресурса)
  • Язык: Английский, Великобритания
  • Приветствие: Воспроизвести звуковой файл
    • Имя файла: support-greeting.wav
  • Музыка на удержании: воспроизведение звукового файла
    • Имя файла: support-hold-in-queue-music.wav
  • Ответ на звонки: служба поддержки Microsoft Shifts
    • Support@contoso.com
  • Режим конференции: Вкл
  • Метод маршрутизации: самый долгий простой
  • Маршрутизация на основе присутствия: Н/Д — включено по умолчанию из-за самого длительного простоя
  • Операторы могут отказаться от приема звонков: Нет
  • Время оповещения оператора звонка: 15
  • Обработка переполнения звонка: 200
    • Перенаправление: поддержка общей голосовой почты
      • Воспроизведение звукового файла (support-shared-voicemail-greeting.wav)
      • Транскрибирование включено
  • Обработка времени ожидания вызова: 45 минут
    • Перенаправление: поддержка общей голосовой почты
      • Преобразование текста в речь: "Извините, что заставили вас ждать, и теперь переводим ваш вызов на голосовую почту".
      • Транскрибирование включено
  • Никаких операторов
  • Обратный звонок: Да
  • Уровень обслуживания: 30 секунд
  • Проверка подлинности пользователя
  • Запись соответствия требованиям
  • Общий журнал вызовов
  • автоматическая запись
Разверните для просмотра команд PowerShell

Вход

При появлении запроса введите учетные данные администратора Teams.

$credential = Get-Credential
Connect-MicrosoftTeams -Credential $credential
Connect-MgGraph -Credential $credential

Создание звуковых файлов

Замените 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

Получение идентификатора группы поддержки

$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

Создание и назначение учетной записи ресурса

Номер телефона здесь не требуется, так как очередь вызовов вложена за автосекретарем.

  • Идентификатор приложения
    • Автосекретарь: ce933385-9390-45d1-9512-c8d228074e07
    • Очередь вызовов: 11cd3e2e-fccb-42ad-ad00-878b93575e07

Тип лицензии, указанный ниже (PHONESYSTEM_VIRTUALUSER) , должен быть указан в командлете 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

Помещения (канал Teams)

  • Вложен за автосекретарем: нет
  • Прямой вызов из ТСОП: Нет (только внутренние звонки)
  • Язык: французский
  • Приветствие: нет
  • Музыка на удержании: по умолчанию
  • Ответ на вызовы: Команда: Помещения
  • Канал для ответа на звонки: Help Desk
    • Владелец канала: Fred@contoso.com
  • Режим конференции: Вкл
  • Метод маршрутизации: Round Robin
  • Маршрутизация на основе присутствия: Вкл
  • Операторы могут отказаться от приема звонков: Нет
  • Время оповещения оператора звонка: 15
  • Обработка переполнения звонка: 200
    • Отключить
  • Обработка времени ожидания вызова: 45 минут
    • Отключить
  • Никаких операторов
  • Обратный звонок: Да
  • Уровень обслуживания: 30 секунд
  • Проверка подлинности пользователя
  • Запись соответствия требованиям
  • Общий журнал вызовов
  • автоматическая запись
Разверните для просмотра команд PowerShell

Вход

При появлении запроса введите учетные данные администратора Teams.

$credential = Get-Credential
Connect-MicrosoftTeams -Credential $credential
Connect-MgGraph -Credential $credential

Получение идентификатора группы группы объектов

$teamFacilitiesGroupID = (Get-Team -DisplayName "Facilities").GroupID

Получить ИД канала группы службы технической поддержки

Get-TeamChannel -GroupId $teamFacilitiesGroupID
$teamFacilitiesHelpDeskChannelID = "{assign ID from output of above command}"

Получение ИД пользователя владельца канала службы технической поддержки

$teamFacilitiesHelpDeskChannelUserID = (Get-TeamChannelUser -GroupId $teamFacilitiesGroupID -DisplayName "Help Desk" -Role Owner).UserId

Получение от имени звонящего пользователя Идентификатор учетной записи ресурса

$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

Создание и назначение учетной записи ресурса

Номер телефона здесь не требуется, так как очередь вызовов вложена за автосекретарем.

  • Идентификатор приложения
    • Автосекретарь: ce933385-9390-45d1-9512-c8d228074e07
    • Очередь вызовов: 11cd3e2e-fccb-42ad-ad00-878b93575e07

Тип лицензии, указанный ниже (PHONESYSTEM_VIRTUALUSER) , должен быть указан в командлете 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

Планирование автосекретарей и очередей вызовов в Teams

Телефонная система Microsoft Teams

Создание автосекретаря с помощью командлетов