Gli Auto Attendant e le Call Queue sono i servizi “avanzati” di Teams Phone che consentono di configurare ad esempio un IVR con messaggi di benvenuto, orari di apertura e chiusura, calendario delle festività, smistamento delle chiamate in ingresso ad una serie di persone, con logiche di time-out, overflow e tanto altro.
Per essere configurati, questi servizi hanno bisogno (in alcuni casi avevano bisogno, vedremo in seguito perché), di avere associato un resource account.
In questo articolo cercheremo di approfondire a cosa servono questi oggetti “misteriosi” e le novità delle ultime settimane.
Cosa sono i resource account
In Teams Phone, fino a poco fa, ogni Auto Attendant o Call Queue che veniva creato necessitava di un resource account associato. Per creare i resource account, era sufficiente avere assegnato uno dei ruoli amministrativi necessari a gestire la telefonia Teams (Teams Communication Administrator o Teams Telephony Administrator, oltre che naturalmente a Teams Administrator).
E qui veniamo alla prima novità: a breve, avere assegnato uno di questi ruoli non sarà più sufficiente, ma sarà necessario essere titolari anche del ruolo User Administrator. Questo cambiamento è stato annunciato da tempo, è stato rimandato più volte, ma la sua entrata in vigore sembra imminente. Parte della documentazione Manage resource accounts for service numbers è già aggiornata, mentre altra riporta come periodo di entrata in vigore ancora il terzo quadrimestre 2024 Managing a resource account). Alla data odierna è ancora possibile crearli senza essere User Administrator.
Come creare un resource account
Per creare un resource account è necessario andare nella relativa sezione in Teams Admin Center, aggiungerlo, assegnargli un Display Name e uno username. Consiglio di avere cura di definire una naming convention che aiuti a riconoscere che cosa è stato creato al crescere del numero degli account nel tenant. Potrebbe essere utile ad esempio anteporre un prefisso (CQ- o AA-) a seconda che si decida di assegnare l’account ad una Call Queue o ad un Auto Attendant.
Una volta terminata la procedura, nel tenant verrà creato un account vero e proprio, con sign-in blocked.
Licenza
A ciascun resource account creato, come da documentazione Microsoft (Resource account license), è necessario assegnare una particolare licenza, chiamata Microsoft Teams Phone Resource Account.
Queste licenze sono gratuite ma per averle a disposizione (e personalmente non ho mai capito perché) Microsoft richiede che venga comunque effettuato un acquisto a costo zero dal portale di amministrazione (Come ottenere le licenze).
Ogni tenant che possiede una sottoscrizione con la funzionalità di Phone System (E5, A5, Teams Phone Standard e Teams Phone Shared Devices) ha diritto ad avere un minimo di 25 di queste licenze. Oltre a queste, ogni 10 utenti licenziati con un piano che contenga la funzionalità Phone System, si ha diritto ad un ulteriore licenza Teams Phone Resource Account.
All’atto pratico, abbiamo visto negli anni che l’assegnazione della licenza è condizione necessaria solo per quei resource account collegati ad Auto Attendant e Call Queue con associato un numero di telefono, ovvero raggiungibili dall’esterno. Senza licenza, infatti, l’assegnazione del numero di telefono non è possibile. Per tutti quei resource account associati a servizi non direttamente raggiungibili dall’esterno, come Auto Attendant o code annidati, ai quali la chiamata viene inoltrata, la licenza non è necessaria ed hanno comunque tutte le funzionalità.
Assegnazione del numero di telefono
L’assegnazione del numero di telefono può essere fatta da Teams Admin Center oppure da Powershell. Da TAC, è necessario andare nel menu Voice > Resource accounts, selezionare l’account e cliccare sul menu Assign/unassign in alto. È possibile assegnare un numero di telefono di tipo Direct Routing, Operator Connect o Calling Plan. Da questa schermata è anche possibile associare direttamente il resource account alla coda o Auto Attendant (è possibile anche farlo direttamente dai rispettivi menu di creazione di questi oggetti).
NOTA: se il resource account viene assegnato ad un oggetto Auto Attendant o Call Queue, che all’interno delle sue logiche prevede il trasferimento di chiamata verso un numero PSTN esterno, è necessario assegnargli anche una Voice Routing Policy adeguata, altrimenti la chiamata non uscirà dal tenant.
Per fare questo (possibile sia da TAC che da Powershell), selezionare l’account, quindi cliccare sul menu Edit in alto.
Nel momento in cui viene creato un resource account (indipendentemente dall’oggetto a cui è associato) questo è direttamente ricercabile dal tab Chiamate di Teams.
La gestione si semplifica
Recentemente è stata annunciata una modifica rispetto alla necessità di avere un resource account (con licenza) associato ad ogni Auto Attendant o Call Queue. Sarà possibile avere questi due servizi, se non c’è la necessità che siano raggiungibili dall’esterno (quindi con numero di telefono assegnato) senza creare, assegnare e licenziare prima un resource account.
In particolare, se un Auto Attendant deve dirigere la chiamata in ingresso ad un altro Auto Attendant o ad una Call Queue, questi ultimi due oggetti, annidati, potranno non avere un resource account collegato. L’Auto Attendant “top level”, quello che riceve la chiamata, con numero di telefono, dovrà continuare ad averla.
Per la Call Queue questa modifica si riflette invece nelle opzioni di Overflow, Timeout e No Agent exception. Se in una di queste condizioni la chiamata deve girare ad un’altra coda o ad un Auto Attendant, è possibile creare questi ultimi due senza associarli ad un resource account.
La configurazione con resource account collegato continuerà comunque a funzionare.
Configurazione
Questa possibilità è per il momento disponibile solo configurandola via Powershell, ma dovrebbe arrivare presto anche in Teams Admin Center. Vediamo un esempio di configurazione di un Auto Attendand o Call Queue annidati, che non necessitano di un resource account.
La prima cosa da fare è creare la Call Queue o l’Auto Attendant da Teams Admin Center.
Da Powershell, recuperare l’id dell’oggetto appena creato rispettivamente con i comandi
Get-CsCallQueue | ft Name, Identity o Get-CsAutoAttendant | ft Name, Identity
Una volta ottenuto l’id possiamo procedere alla configurazione. In questo esempio vediamo come impostare l’inoltro di una chiamata in arrivo ad una coda, in caso di overflow, ad un’altra Call Queue.
Call Queue
Get-CsCallQueue | ft Name, Identity
Nel mio esempio CQ Servizio 1 è la coda che riceve la chiamata, che ha bisogno del resource account, mentre CQ Servizio 3 è la Call Queue alla quale verrà inoltrata la chiamata in caso si verifichi la condizione di Overflow.
Con questi due comandi vediamo la configurazione attuale della coda:
$CallQueue = Get-CSCallQueue -Identity c65b8731-5e5c-42ae-8e0c-8dfc73036996
$CallQueue-OverflowActionTarget
Come si può vedere la coda ora non ha impostato nessun trasferimento per questa eccezione. Si può verificare anche da Teams Admin Center.
Infine, configuriamo la coda CQ_Servizio 3, alla quale devono essere inoltrate le chiamate in caso di overflow, come entità chiamabile di tipo “ConfigurationEndPoint” e definiamo il target di inoltro.
$CQAppInstance = New-CsAutoAttendantCallableEntity -Identity 33f6db39-c08c-4df4-8b4c-ebe88b901531 -Type ConfigurationEndPoint
Set-CsCallQueue -Identity $CallQueue.Identity -OverflowAction Forward -OverflowActionTarget $CQAppInstance.id
Il risultato finale è quello desiderato, ed è visibile sempre da Powershell.
Da Teams Admin Center, in questo momento, è meno “elegante, e mostra un errore.
La speranza è che sia configurabile presto anche da questo lato.
Auto Attendant
Facciamo adesso l’esempio di un Auto Attendant, che dopo un eventuale messaggio di benvenuto dirige la chiamata verso una Call Queue.
Verifica della configurazione attuale dell’Auto Attendant.
$AutoAttendant = Get-CsAutoAttendant -Identity “8323d07c-779b-49e0-b9f1-6ba3a373c575”
$AutoAttendant.defaultcallflow
$AutoAttendant.defaultcallflow.menu
Ora l’Auto Attendant è configurato per inoltrare le chiamate alla coda CQ Servizio 1 (con resource account associato).
Come per l’esempio precedente, configuriamo la coda CQ Servizio 3, come entità chiamabile di tipo “ConfigurationEndPoint”.
$CallTarget = New-CsAutoAttendantCallableEntity -Identity 33f6db39-c08c-4df4-8b4c-ebe88b901531 -Type ConfigurationEndPoint
Infine, riconfiguriamo l’Auto Attendant per inoltrare le chiamate a questa coda.
$MenuOption = New-CsAutoAttendantMenuOption -Action TransferCallTotarget -DtmfResponse Automatic -CallTarget $calltarget
$Menu = New-CsAutoAttendantMenu -Name “NewMenu” -MenuOptions $menuoption
$AutoAttendant.defaultcallflow.Menu = $menu
Set-CsAutoAttendant -Instance $AutoAttendant
Anche qui il risultato è quello desiderato.
Conclusioni
Una piccola ma benvenuta novità che semplifica la gestione di Auto Attendant e Call Queue, soprattutto in quelle realtà che ne hanno molti da creare e gestire. E’ probabile che arrivi volutamente quasi in contemporanea con la complicazione che viene aggiunta nella creazione dei Resource Account, per cui non basterà più possedere uno dei ruoli di gestione della telefonia Teams ma servirà il ruolo di User Administrator, in modo da mitigare eventuali disagi che inevitabilmente si creeranno in questo ambito.
Con questa modifica, inoltre, sarà possibile far sì che più questi oggetti non appaiano più nella barra di ricerca del tab chiamate di Teams, come avveniva finora.