Il dial plan traduce, non instrada
Il tenant dial plan è un insieme ordinato di normalization rule (espressioni regolari) che trasformano ciò che l’utente compone in un numero E.164. È il primo anello della catena: senza un numero normalizzato, nessuna voice route può essere valutata, perché le route confrontano pattern su numeri già in formato E.164. Serve quindi per gli extension dialing interni (le quattro o cinque cifre di sede), per l’abitudine locale di anteporre uno zero, per i prefissi di uscita ereditati dal vecchio PBX.
Ciò che conta all’esame è l’effective dial plan: la combinazione del service dial plan (quello di paese, applicato da Microsoft) con il tenant dial plan assegnato all’utente, oppure con il tenant global se non ce n’è uno specifico. Le regole si valutano in ordine e la prima che combacia vince, quindi una regola troppo generica in cima annulla quelle sotto. Prima di pubblicare si verifica il comportamento su numeri campione con Get-CsEffectiveTenantDialPlan e Test-CsEffectiveTenantDialPlan: è il modo canonico per dimostrare che una normalizzazione funziona senza fare telefonate reali.
Le policy delle feature: calling, caller ID, call park
La Teams calling policy governa cosa può fare l’utente con una chiamata: inoltro e simultaneous ring (verso altri utenti o verso il PSTN, che sono due permessi distinti), call delegation per la coppia manager/assistente, trasferimento, busy on busy (occupato, inoltro a voicemail o nulla mentre si è già in conversazione), music on hold, accesso alla voicemail, spam filtering. Non decide dove si può chiamare: è una policy di funzionalità, non di destinazioni.
La caller ID policy (l’oggetto CsCallingLineIdentity) definisce il numero mostrato in uscita: si può lasciare quello dell’utente, sostituirlo con il service number di un resource account — tipico per far comparire il numero del centralino o della call queue invece dell’interno del singolo agente — oppure impostare l’anonimato. La stessa famiglia di policy consente di bloccare la presentazione del caller ID in ingresso.
La call park policy abilita il parcheggio e il recupero della chiamata tramite codice. Va assegnata sia a chi parcheggia sia a chi deve recuperare: è la classica policy che si dimentica su metà della popolazione.
Voicemail, mobility, dispositivi condivisi
La voicemail policy regola trascrizione, mascheramento delle parolacce, durata massima della registrazione e possibilità per l’utente di personalizzare i prompt. La mobility policy decide se audio e video IP passano su Wi-Fi o anche su rete cellulare e, soprattutto, quale dialer preferire sul mobile: parametro decisivo quando è attivo Teams Phone Mobile, dove il numero SIM è anche il numero Teams. La IP phone policy governa i telefoni e i dispositivi condivisi: modalità di sign-in (utente, common area, meeting) e hot desking, cioè il telefono in area comune su cui un utente fa login temporaneo.
Le restrizioni sulle chiamate in uscita si ottengono controllando quali PSTN usage compaiono nella voice routing policy dell’utente: se una destinazione non ha una usage assegnata, la chiamata non parte. Il blocco delle chiamate in ingresso è invece tenant-wide, con pattern regex sul numero del chiamante ed eventuali eccezioni. L’instradamento dei numeri non assegnati intercetta i numeri del tenant che non appartengono a nessun utente e li manda a un resource account (auto attendant) o a un annuncio, invece di farli cadere.
Assegnazione: utente, gruppo, package, batch
Le vie sono quattro. Per utente, con i cmdlet Grant-Cs..., ed è l’assegnazione con priorità più alta. Per gruppo, con un rank che risolve l’appartenenza multipla: vale solo se l’utente non ha già un’assegnazione diretta dello stesso tipo. Con un policy package, che applica in un colpo solo un insieme coerente di policy di tipi diversi a un profilo di ruolo. In blocco via PowerShell, con l’operazione di batch policy assignment, che è asincrona e si monitora fino al completamento.
Trappole tipiche d’esame
- Gli utenti compongono l’interno a 4 cifre e la chiamata fallisce → tenant dial plan, non voice route: la route lavora su E.164; finché la normalization rule non traduce l’interno, non c’è nulla da instradare.
- Gli agenti devono mostrare il numero del reparto → caller ID policy con service number del resource account: non si riassegna il numero della call queue ai singoli utenti.
- Vietare le chiamate internazionali → voice routing policy con le sole PSTN usage consentite: la calling policy non filtra destinazioni, e il dial plan nemmeno.
- Policy di gruppo “ignorata” su alcuni utenti → c’è un’assegnazione diretta che vince: va rimossa prima che il gruppo abbia effetto.
- Migliaia di utenti da configurare → batch policy assignment o assegnazione per gruppo: iterare
Grant-Cs...utente per utente è la risposta sbagliata. - Numeri del vecchio range che squillano a vuoto → unassigned number treatment verso auto attendant o annuncio: non si crea un utente fittizio per assorbirli.