Grant-CsTeamsVideoInteropServicePolicy
Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. You can use the TeamsVideoInteropServicePolicy cmdlets to enable Cloud Video Interop for particular users or for your entire organization.
Syntax
Grant-CsTeamsVideoInteropServicePolicy
[[-Identity] <String>]
[-PassThru]
[[-PolicyName] <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Grant-CsTeamsVideoInteropServicePolicy
[-PassThru]
[[-PolicyName] <String>]
[-Global]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Grant-CsTeamsVideoInteropServicePolicy
[-PassThru]
[[-PolicyName] <String>]
-Group <String>
[-Rank <Int32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Cloud Video Interop for Teams enables 3rd party VTC devices to be able to join Teams meetings. You can use the TeamsVideoInteropServicePolicy cmdlets to enable Cloud Video Interop for particular users or for your entire organization. Microsoft provides pre-constructed policies for each of our supported partners that allow you to designate which of the partners to use for cloud video interop.
The Grant-CsTeamsVideoInteropServicePolicy cmdlet allows you to assign a pre-constructed policy across your whole organization or only to specific users.
User needs to be assigned one policy from admin to create a CVI meeting. There could be multiple provides in a tenant, but user can only be assigned only one policy(provide).
FAQ:
Q: After running Grant-CsTeamsVideoInteropServicePolicy -PolicyName <Identity of the Policy>
to assign a policy to the whole tenant, the result of Get-CsOnlineUser -Identity {User Identity} | Format-List TeamsVideoInteropServicePolicy
that checks if the User Policy is empty.
A: Global/Tenant level Policy Assignment can be checked by running Get-CsTeamsVideoInteropServicePolicy Global
.
Q: I assigned CVI policy to a user, but I can't create a VTC meeting with that policy or I made changes to policy assignment, but it didn't reflect on new meetings I created.
A: The policy is cached for 6 hours. Changes to the policy are updated after the cache expires. Check for your changes after 6 hours.
Frequently used commands that can help identify the policy assignment:
Command to get full list of user along with their CVI policy:
Get-CsOnlineUser | Format-List UserPrincipalName,TeamsVideoInteropServicePolicy
Command to get the policy assigned to the whole tenant:
Get-CsTeamsVideoInteropServicePolicy Global
Examples
Example 1: The whole tenant has the same provider
Grant-CsTeamsVideoInteropServicePolicy -PolicyName <Identity of the Policy | $null> -Global
Specify the provider for the whole tenant or use the value $null to remove the tenant-level provider and let the whole tenant fall back to the Global policy.
Example 2: The tenant has two (or three) interop service providers
Grant-CsTeamsVideoInteropServicePolicy -PolicyName <Identity of the Policy | $null> -Identity <UserId>
Specify each user with the Identity parameter, and use Provider-1 or Provider-2 for the value of the PolicyName parameter. Use the value $null to remove the provider and let the user's provider fallback to Global policy.
Example 3: The tenant has a default interop service provider, but specific users (say IT folks) want to pilot another interop provider.
Grant-CsTeamsVideoInteropServicePolicy -PolicyName <Identity of the Policy | ServiceProviderDisabled> [-Identity <UserId>]
To assign Provider-1 as the default interop service provider, don't use the Identity parameter and use the value Provider-1 for the PolicyName parameter.
For specific users to try Provider-2, specify each user with the Identity parameter, and use the value Provider-2 for the PolicyName parameter.
For specific users who need to disable CVI, specify each user with the Identity parameter and use the value ServiceProviderDisabled for the PolicyName parameter.
Example 4: Cloud Video Interop has been disabled for the entire tenant, except for those users that have an explicit policy assigned to them.
Grant-CsTeamsVideoInteropServicePolicy -PolicyName ServiceProviderDisabled
Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DomainController
Internal Microsoft use only.
Type: | Fqdn |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Global
Use this flag to override the warning when assigning the global policy for your tenant.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Group
Specifies the group used for the group policy assignment.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Identity
{{Fill Identity Description}}
Type: | UserIdParameter |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PassThru
Enables you to pass a user object through the pipeline that represents the user being assigned the policy. By default, the Grant-CsTeamsVideoInteropServicePolicy cmdlet does not pass objects through the pipeline.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PolicyName
Specify the pre-constructed policy that you would like to assign to your tenant or a particular user. You can get the policies available for your organization using the cmdlet Get-CsTeamsVideoInteropServicePolicy.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Rank
The rank of the policy assignment, relative to other group policy assignments for the same policy type.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Tenant
Internal Microsoft use only.
Type: | System.Guid |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Inputs
Microsoft.Rtc.Management.AD.UserIdParameter
Outputs
System.Object