docs/about_VoiceConfiguration.help.txt
TOPIC
about_voiceconfiguration SHORT DESCRIPTION All things needed to configure Users for Direct Routing or Calling Plans LONG DESCRIPTION Ascertaining accurate information about the Tenant and an individual user account (or resource account) is the cornerstone of these CmdLets. `Get-TeamsUserVoiceConfig` therefore carefully selects parameters from the `CsOnlineUser`-Object and, with the `DiagnosticLevel`-switch taps further and further into parameters that may be relevant for troubleshooting issues, finally also padding the object with keys from the `AzureAdUser`-Object. Applying the required elements to enable a User for Direct Routing or Calling Plans should make this easier, more reliable and faster for all admins CmdLets | Function | Description | | ------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------- | | `Assert-TeamsUserVoiceConfig` | Validates an Object for proper application of its Voice Configuration and returns Objects that are only partially or not correctly configured. | | `Enable-TeamsUserForEnterpriseVoice` | | `Find-TeamsUserVoiceRoute` | | `Find-TeamsUserVoiceConfig` | Queries Voice Configuration parameters against all Users on the tenant. Finding assignments of a number, usage of a specific OVP or TDP, etc. | | `Get-TeamsTenantVoiceConfig` | Queries Voice Configuration present on the Tenant. Switches are available for better at-a-glance visibility | | `Get-TeamsUserVoiceConfig` | Queries Voice Configuration assigned to a User and displays visual output. At-a-glance concise output, extensible through `-DiagnosticLevel` | | `Remove-TeamsUserVoiceConfig` | Removes a Voice Configuration set from the provided Identity. User will become "un-configured" for Voice in order to apply a new Voice Config set | | `Set-TeamsUserVoiceConfig` to the provided Identity | | `Test-TeamsUserVoiceConfig` | Tests an individual VoiceConfig Package against the provided Identity | SUPPORT CMDLETS Diving more into Voice Configuration for the Tenant and defining Direct Routing breakouts, though the provided CmdLets are solid since its Lync days, getting information fast and without the hassle of piping, filtering and selecting was the goal behind creating the below shortcuts. | Function | Description | | -----------------: | ----------------------------------------------------------------------------------- | | `Get-TeamsTenant` | Get-CsTenant gives too much output? This can help. | | `Get-TeamsCP` | Get-CsTeamsCallingPolicy is too long to type? Here is a shorter one. | | `Get-TeamsECP` | Get-CsTeamsEmergencyCallingPolicy is too long to type? Here is a shorter one. | | `Get-TeamsECRP` | Get-CsTeamsEmergencyCallRoutingPolicy is too long to type? Here is a shorter one. | | `Get-TeamsIPP` | Get-CsTeamsIpPhonePolicy is too long to type? Here is a shorter one. | | `Get-TeamsOVP` | Get-CsOnlineVoiceRoutingPolicy is too long to type? Here is a shorter one. | | `Get-TeamsOPU` | Get-CsOnlinePstnUsage is too clunky. Here is a shorter one, with a search function! | | `Get-TeamsOVR` | Get-CsOnlineVoiceRoute, just more concise | | `Get-TeamsMGW` | Get-CsOnlinePstnGateway, but a bit nicer | | `Get-TeamsTDP` | Get-TeamsTenantDialPlan is too long to type. Also, we only want the names... | | `Get-TeamsVNR` for a given Dial Plan | LEGACY SUPPORT CMDLETS These are the last remnants of the old SkypeFunctions module. Their functionality has been barely touched. | Function | Description | | ---------------------------------------: | ---------------------------------------------------------------------------------------- | | `Get-SkypeOnlineConferenceDialInNumbers` | Gathers Dial-In Conferencing Numbers for a specific Domain | | `Remove-TenantDialPlanNormalizationRule` | Displays all Normalisation Rules of a provided Tenant Dial Plan and asks which to remove | >[!NOTE] These commands are being evaluated for revival and re-integration. EXAMPLES EXAMPLE 1 - TEAMS USER VOICE ROUTE `powershell Find-TeamsUserVoiceRoute -Identity John@domain.com -DialedNumber +15551234567 ` Evaluating the Voice Routing for one user based on the Number being dialed # Example 1 - Output TBC EXAMPLE 2 - FINDING OBJECTS WITH FIND-TEAMSUSERVOICECONFIG `powershell # The following are some examples for the Voice Config CmdLets Find-TeamsUserVoiceConfig [-PhoneNumber] "555-1234 567" # Finds Objects with the normalised number '*5551234567*' (removing special characters) Find-TeamsUserVoiceConfig -Extension "12-345" # Finds Objects which have any Extension starting with 12345 assigned (removing special characters) # NOTE: The CmdLet is searching explicitely for '*;ext=12345*' Find-TeamsUserVoiceConfig -ConfigurationType CallingPlans Find-TeamsUserVoiceConfig -VoicePolicy BusinessVoice # Finds all Objects configured for CallingPlans with two different metrics. Find-TeamsUserVoiceConfig -Identity John@domain.com Get-TeamsUserVoiceConfig [-Identity] John@domain.com # FIND will return either a list of UserPrincipalNames found, or # if limited results are found, executes GET to display the output. ` Find can look for User Objects (Users, Common Area Phones or Resource Accounts) returning output based on number of objects returned. Get-TeamsUserVoiceConfig and Find-TeamsUserVoiceConfig return the same base output, however the Get-Command does have the option to expand on the output object and drill deeper. - Get-TeamsUserVoiceConfig targets an Identity (UserPrincipalName) - Find-TeamsUserVoiceConfig can search for PhoneNumbers, Extensions, ID or commonalities like OVP or TDPs - Pipeline is available for both CmdLets EXAMPLE 3 - VOICE CONFIGURATION OBJECT WITH GET-TEAMSUSERVOICECONFIG `powershell # Example 2 - Output shows a Direct Routing user correctly provisioned but not yet moved to Teams UserPrincipalName : John@domain.com SipAddress : sip:John@domain.com DisplayName : John Doe ObjectId : d13e9d53-5dd4-7392-b123-de45b16a7cb4 Identity : CN=d13e9d53-5dd4-7392-b123-de45b16a7cb4,OU=d23afe19-5a33-893a -caf1-70b6cd9a8f6e,OU=OCS Tenants,DC=lync0e001,DC=local HostingProvider : SRV: ObjectType : User InterpretedUserType : HybridOnpremTeamsOnlyUser InterpretedVoiceConfigType : DirectRouting TeamsUpgradeEffectiveMode : TeamsOnly VoicePolicy : HybridVoice UsageLocation : US LicensesAssigned : Office 365 E5 CurrentCallingPlan : PhoneSystemStatus : Success PhoneSystem : True EnterpriseVoiceEnabled : True HostedVoiceMail : True TeamsUpgradePolicy : OnlineVoiceRoutingPolicy : OVP-EMEA TenantDialPlan : DP-US TelephoneNumber : LineURI : tel:+15551234567;ext=4567 OnPremLineURI : tel:+15551234567;ext=4567 ` NOTE Voice Config CmdLets started out just limiting the output of Get-CsOnlineUser to retain an overview and avoid unnecessary scrolling and find information faster and in a more consistent way. Now they are enriching administration in Teams and are a backbone to the Admin Experience. Development Status CmdLets are completely fleshed out and tested. Minor tweaks may still need to be done to round things. TROUBLESHOOTING NOTE Thoroughly tested, but Unit-tests for these CmdLets are not yet available. None needed. Edge-cases might still lurk that prevent Set-TeamsUserVoiceConfig to succeed. Please raise issues for them, happy to add more checks to validate specific scenarios. SEE ALSO - about_TeamsLicensing - about_UserManagement - about_TeamsCallableEntity - about_Supporting_Functions KEYWORDS - Direct Routing - Calling Plans - Licensing - PhoneSystem - EnterpriseVoice - Provisioning |