Configuración: cola de llamadas a través de PowerShell

Requisitos previos

  • Asegúrese de que tiene derechos de administración de inquilinos.
  • Los agentes, las listas de distribución y los canales de Teams mencionados en este artículo ya se han creado.
  1. Determine si el módulo de MicrosoftTeams PowerShell ya está instalado.

    Get-InstalledModule -Name MicrosoftTeams
    

    Si el MicrosoftTeams módulo de PowerShell ya está instalado, la salida del comando será similar a:

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

    Continúe con el paso 2.

    Si el modelo de PowerShell aún no está instalado, continúe con el MicrosoftTeams Paso 3.

  2. Actualizar el MicrosoftTeams módulo

    Update-Module MicrosoftTeams
    

    Continúe con los escenarios

  3. Instale el MicrosoftTeams modeule de PowerShell en su equipo.

    • Configurar el equipo para Windows PowerShell

    • Módulo MSTeams instalado

      Install-Module -Name MicrosoftTeams -Force -AllowClobber
      
    • Módulo de Microsoft Graph instalado

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

Escenarios

Ventas (usuarios y grupos)

  • Anidado detrás del operador automático: sí
  • Llamada: Solo a través del operador automático de ventas, no se requiere una cuenta de recursos
  • Idioma: Inglés de EE. UU.
  • Saludo: ninguno (las llamadas son recibidas por el operador automático de ventas)
  • Música en espera: Reproducir un archivo de audio
    • Nombre de archivo: sales-hold-in-queue-music.wav
  • Respuesta de llamada: usuarios
    • Bill@contoso.com
    • Mary@contoso.com
  • Respuesta de llamada: grupo
    • Sales@contoso.com
  • Modo de conferencia: activado
  • Método de enrutamiento: Round Robin
  • Enrutamiento basado en presencia: Activado
  • Los agentes de llamadas pueden dejar de recibir llamadas: Sí
  • Tiempo de alerta del agente de llamada: 15
  • Manejo de desbordamiento de llamadas: 200
    • Redirigir a: Adele@contoso.com
  • Tiempo de espera de la llamada: 120 segundos
    • Redirigir a: Adele@contoso.com
  • No hay agentes manejando
    • Aplicar a todas las llamadas
    • Redirigir a: Adele@contoso.com
  • Devolución de llamada: No
  • Nivel de servicio: 20 segundos
  • Usuario de autenticación
    • Adele@contoso.com
  • Directiva de aplicaciones de voz: Ventas
  • Grabación de cumplimiento: No
  • Historial de llamadas compartido: sí
    • Plantilla: Ventas
  • Grabación automática: No
Expandir para ver comandos de PowerShell

Inicio de sesión

Cuando se le soliciten, escriba sus credenciales de administrador de Teams.

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

Create Audio Files

Reemplácelo d:\\ por la ruta de acceso a la ubicación en la que se almacenan los archivos wav en el equipo.

$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

Crear plantilla de historial de llamadas compartido

Crear grabación automática para la plantilla de cola de llamadas

Obtener id. de usuarios

$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

Obtener una lista de idiomas admitidos

Get-CsAutoAttendantSupportedLanguage

Crear cola de llamada

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"

Soporte técnico (Microsoft Turnos)

  • Anidado detrás del operador automático: Sí -
  • Llamadas: A través del operador automático de soporte técnico, internamente y a través de RTC: se requiere una cuenta de recursos
  • Idioma: Inglés Reino Unido
  • Saludo: Reproducir un archivo de audio
    • Nombre de archivo: support-greeting.wav
  • Música en espera: Reproducir un archivo de audio
    • Nombre de archivo: support-hold-in-queue-music.wav
  • Respuesta de llamadas: Equipo de soporte técnico de Microsoft Turnos
    • Support@contoso.com
  • Modo de conferencia: activado
  • Método de enrutamiento: inactividad más larga
  • Enrutamiento basado en presencia: N/A: activado de forma predeterminada debido al inactividad más largo
  • Los agentes de llamadas pueden dejar de recibir llamadas: No
  • Tiempo de alerta del agente de llamada: 15
  • Manejo de desbordamiento de llamadas: 200
    • Redirigir: admitir correo de voz compartido
      • Reproducir un archivo de audio (support-shared-voicemail-greeting.wav)
      • Transcripción habilitada
  • Tiempo de espera de la llamada: 45 minutos
    • Redirigir: admitir correo de voz compartido
      • TTS: "Lamentamos haberlo hecho esperar y ahora estamos transfiriendo su llamada al correo de voz".
      • Transcripción habilitada
  • No hay agentes manejando
  • Devolución de llamada: Sí
  • Nivel de servicio: 30 segundos
  • Usuario de autenticación
  • Grabación de cumplimiento
  • Historial de llamadas compartido
  • Grabación automática
Expandir para ver comandos de PowerShell

Inicio de sesión

Cuando se le soliciten, escriba sus credenciales de administrador de Teams.

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

Crear archivos de audio

Reemplácelo d:\\ por la ruta de acceso a la ubicación en la que se almacenan los archivos wav en el equipo.

$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

Obtener identificación del grupo de equipo de soporte técnico

$teamSupportID = (Get-Team -DisplayName "Support").GroupID

Obtener una lista de idiomas admitidos

Get-CsAutoAttendantSupportedLanguage

Crear cola de llamada

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"

Obtener tipos de licencia

Get-MgSubscribedSku

Creación y asignación de una cuenta de recursos

Aquí no es necesario un número de teléfono, ya que la cola de llamadas está anidada detrás de un operador automático.

  • Id. de aplicación
    • Operador automático: ce933385-9390-45d1-9512-c8d228074e07
    • Cola de llamadas: 11cd3e2e-fccb-42ad-ad00-878b93575e07

El tipo de licencia que se muestra después (PHONESYSTEM_VIRTUALUSER) debe ser uno de los que aparecen en el Get-MgSubscribedSku cmdlet.

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

Instalaciones (canal de Teams)

  • Anidado detrás del operador automático: No
  • Llamadas directas desde RTC: No (solo llamadas internas)
  • Idioma: FR francés
  • Saludo: ninguno
  • Música en espera: predeterminada
  • Contestación de llamadas: Equipo: Instalaciones
  • Canal de respuesta de llamadas: Departamento de soporte técnico
    • Propietario del canal: Fred@contoso.com
  • Modo de conferencia: activado
  • Método de enrutamiento: Round Robin
  • Enrutamiento basado en presencia: Activado
  • Los agentes de llamadas pueden dejar de recibir llamadas: No
  • Tiempo de alerta del agente de llamada: 15
  • Manejo de desbordamiento de llamadas: 200
    • Desconectar
  • Tiempo de espera de la llamada: 45 minutos
    • Desconectar
  • No hay agentes manejando
  • Devolución de llamada: Sí
  • Nivel de servicio: 30 segundos
  • Usuario de autenticación
  • Grabación de cumplimiento
  • Historial de llamadas compartido
  • Grabación automática
Expandir para ver comandos de PowerShell

Inicio de sesión

Cuando se le soliciten, escriba sus credenciales de administrador de Teams.

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

Obtener identificador de grupo de equipo de instalaciones

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

Obtener instalaciones Id. de canal del equipo del servicio de asistencia

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

Obtener instalaciones Departamento de soporte técnico Id. de usuario del propietario del canal

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

Obtener en nombre de Id. de cuenta de recurso de llamada

$oboResourceAccountID = (Get-CsOnlineUser -Identity "MainAA-RA@contoso.com").Identity

Obtener una lista de idiomas admitidos

Get-CsAutoAttendantSupportedLanguage

Crear cola de llamada

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

Obtener tipos de licencia

Get-MgSubscribedSku

Crear y asignar una cuenta de recursos

Aquí no es necesario un número de teléfono, ya que la cola de llamadas está anidada detrás de un operador automático.

  • Id. de aplicación
    • Operador automático: ce933385-9390-45d1-9512-c8d228074e07
    • Cola de llamadas: 11cd3e2e-fccb-42ad-ad00-878b93575e07

El tipo de licencia que se muestra después (PHONESYSTEM_VIRTUALUSER) debe ser uno de los que aparecen en el Get-MgSubscribedSku cmdlet.

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

Planear los asistentes automáticos y las colas de llamadas de Teams

Esto es lo obtiene con el Teléfono Microsoft Teams

Crear un operador automático mediante cmdlets