Dialogue Cloud

Attendant Console for Microsoft Teams Queue Deployment Guide

This page describes two methods to create queue(s) monitored in AnywhereNow Attendant Console for Teams

  • Method 1 (preferred),
    using a PowerShell script containing commands from latest MicrosoftTeams and MicrosoftGraph modules.

    (Time to execute: approx. 5 min)

OR

  • Method 2,
    manually using Microsoft portals and a few mandatory PowerShell commands (where no GUI is available).

    (Time to execute: approx. 30 min)

AnywhereNow Attendant service is available in 3 Azure Region (EMEA/AMER/APAC).

Attendant Console Queue(s) creation

Prerequisites:

With Direct Routing, Calling Plan or Operator Connect

Log with an Microsoft Entra ID Formerly known as Azure Active Directory (or Azure AD, or AAD) account with these Roles

1 (one) Microsoft Teams Phone Resource Account license(Per queue)

Additional with MS Calling Plan or Operator Connect

1 (one) Microsoft Phone numbers of type call queue (toll/toll free) Per queue


PSTN Dial-Out settings

Use the E.164 phone number format to dial-out from the Attendant Console.

With Operator Connect

A routing profile should have been assigned to the queue Phone Number when provisioned by the Operator. Check with your operator.

With MS Calling Plan

Note

To enable outbound calling using Calling Plan the License “Microsoft 365 Domestic and International Calling Plan” needs to be assigned to the Resource account created for the Attendant Console queue. Learn more - Microsoft

  • Check the Resource Account creation using PowerShell:

    Copy
    PowerShell
    # If you have not installed the MicrosoftTeams module yet, run Powershell with elevated permissions and run install-module -Name MicrosoftTeams -force

    Import-module MicrosoftTeams

    # Check if the user is already connected to Microsoft Teams
    $connection = Get-CsTenant | Out-Null
    if ($?) {
        Write-Host "Already connected to Microsoft Teams"
    } else {
        Connect-MicrosoftTeams
    }

    # Prompt the user to enter the identity
    $identity = Read-Host -Prompt "Please enter the identity (e.g., yourAttendantConsoleQueue@yourdomain.com)"

    Get-CsOnlineApplicationInstance -Identity $identity 

With Direct Routing

Validate your Direct Routing Policy is applied on every account (user or resource) to be routed outside in a National or International dialing plan.

  1. Open Windows PowerShell or PowerShell (no Elevated Permissions are needed)

    Make sure to use 64-bit version of PowerShell

  2. Run the following PowerShell command to login to Microsoft Teams

    Copy
    PowerShell
    Connect-MicrosoftTeams
  3. Login with a Microsoft User Account that has either one of these permissions

    1. Global Administrator;
    2. Teams Administrator; or
    3. Teams Communications Administrator
  4. Run the following PowerShell command to verify which the Online Voice Routing Policy is assigned

    1. Provide the correct identity

    Copy
    PowerShell
    $identity = Read-Host -Prompt "Enter the identity (e.g., user@domain.com)"
    Get-CsOnlineUser -Identity $identity | Select-Object UserPrincipalName, OnlineVoiceRoutingPolicy

In the case the right VoiceRoutingPolicy has not been assigned, you need to perform these additional steps:

  1. Run the following PowerShell command to assign a phone number to the resource account

    1. Select the correct Online Voice Routing Policy (voice-routing-policy)

      Note

      If there is only a Global OnlineVoiceRoutingPolicy then the script will stop and no further actions are needed.

    2. Provide the correct identity

    Copy
    PowerShell
    # Get all OnlineVoiceRoutingPolicies except "Global"
    $policies = Get-CsOnlineVoiceRoutingPolicy | Where-Object { $_.Identity -ne "Global" }

    # Check if there are any policies available
    if ($policies.Count -eq 0) {
        Write-Host "No available voice routing policies found."
    } else {
        # Display policies with numbers
        for ($i = 0; $i -lt $policies.Count; $i++) {
            Write-Host "$($i + 1). $($policies[$i].Identity)"
        }

        # Prompt user to enter the identity
        $identity = Read-Host "Enter the identity (e.g., yourAttendantConsoleQueue@yourdomain.com)"

        # Prompt user to select a policy
        $selection = Read-Host "Select a voice routing policy by number"

        # Validate selection
        if ($selection -gt 0 -and $selection -le $policies.Count) {
            $selectedPolicy = $policies[$selection - 1].Identity
            # Grant the selected policy to the identity
            Grant-CsOnlineVoiceRoutingPolicy -Identity $identity -PolicyName $selectedPolicy
            Write-Host "Granted policy $selectedPolicy to $identity"
        } else {
            Write-Host "Invalid selection. Please run the script again and select a valid number."
        }
    }
  2. Run the following PowerShell command to verify if the Online Voice Routing Policy is assigned successfully.

    1. Provide the correct identity

    Copy
    PowerShell
    $identity = Read-Host -Prompt "Enter the identity (e.g., user@domain.com)"
    Get-CsOnlineUser -Identity $identity | Select-Object UserPrincipalName, OnlineVoiceRoutingPolicy

Validate your SBC configuration in case of caller’s number policy verification that may require an AD account for the queue.

Licensing

You can contact your Sales representative, AnywhereNow Backoffice, request a 30-day trial license via a link (see below) or directly order Attendant Console for Microsoft Teams licenses from the Microsoft AppSource.

One license is required for each operator and is automatically associated to your teams UPN In Windows Active Directory, a User Principal Name (UPN) is the name of a system user in an email address 'like' format. A UPN (for example: john.doe@domain.com) consists of the user name (logon name), separator (the @ symbol), and domain name (UPN suffix). (no license file, online processes).

Click here --> to request 30-day Trial license

Click here --> to purchase a license from Microsoft AppSource

When you request a license, you must specify on which Azure Region your license will be generated on.

This Azure Region must be the same as the one selected for attendant queue(s).

Attendant Console Settings

Prerequisites

Attendant only supported in conjunction with the Microsoft Teams Desktop application

The web version of Microsoft Teams has some limitations regarding calling. Because of this, the Attendant is currently only supported in combination with the Microsoft Teams Desktop client, not the client that is running in a web browser.

Attendant user must disable transfer to voicemail in Teams client.

The Attendant user must disable the option to transfer the call to an alternate destination if unanswered.

This option can be found in the Teams client under Settings, Calls tab.

Busy on Busy must be disabled on the operator account

To be able to use consultative transfer, busy on busy must be disabled on the calling policy assigned to the operator user.

Using the App in your Teams Client

  • Search the App Attendant by AnywhereNow

    If the Attendant App is not available in the catalog, contact your Teams Administrator to upload the App in Teams Admin Center (step 4 of Golive configuration page)

    Right-click on the icon in the left bar and select Pin.


  • In Attendant Preferences - Queue Tab


    Select the queue(s) to monitor

    Graphical user interface, application, Teams

Description automatically generated

  • In Attendant Preferences - Conversation Tab

    Select the queue used to dial-out (pstn)

Using the Attendant in a Web Browser

Configure the same preferences as when using the Teams App.

You can access AnywhereNow Attendant Console with browsing those URLs:

EMEA

https://attendant1.anywhere365.io

AMER

https://attendant2.anywhere365.io

APAC

https://attendant3.anywhere365.io

Appendix

The script only contains Microsoft PowerShell commands from Microsoft Entra ID and Microsoft Teams modules.

Install the latest Microsoft PowerShell modules.

Here are some classic errors that may occur:

  • Your PowerShell execution policy does not allow to run scripts.

Please check it via Get-ExecutionPolicy and change it to unrestricted using Set-ExecutionPolicy

  • Virtual license failed not available

Verify you have Teams virtual-user license available. If not, order new ones at MS.

  • The phone number assignment step return errors.

To assign a phone number, a variable synchronization delay is required by Microsoft before being able to invoke the Set-CsPhoneNumberAssignment command.

The script waits 5 minutes, but it can be necessary to wait more. The script will continue anyway.

To check the queue definition, run

Copy
PowerShell
# If you have not installed the MicrosoftTeams module yet, run Powershell with elevated permissions and run install-module -Name MicrosoftTeams -force

Import-module MicrosoftTeams

# Check if the user is already connected to Microsoft Teams
$connection = Get-CsTenant | Out-Null
if ($?) {
    Write-Host "Already connected to Microsoft Teams"
} else {
    Connect-MicrosoftTeams
}

# Prompt the user to enter the identity
$identity = Read-Host -Prompt "Please enter the identity (e.g., yourAttendantConsoleQueue@yourdomain.com)"
Get-CsOnlineApplicationInstance -Identity $identity | fl

If no phone number is assigned, you can assign it manually later with the following command

Copy
PowerShell
Set-CsPhoneNumberAssignment
Sync-CsOnlineApplicationInstance