QoS in Windows for Webex BroadWorks: QoS for Webex for Broadworks is done by means of DSCP. AF46 for Audio en AF34 for Video. These settings can be changed using Costum Tags:
%AUDIO_QOS_VALUE_WXT% value 46 (default)
%VIDEO_QOS_VALUE_WXT% value 34 (default)
Note that when changed this needs also be changed in the Group Policies for Windows ADM files or ADMX files. Or in Microsoft Intune.
Windows needs Registry changes.
This can be done in several ways.
Windows Registry file:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\QoS\WebexAppAudioDSCP] "DSCP Value"="46" "Local Port"="40000:50000" "Application Name"="CiscoCollabHost.exe" "Local IP"="*" "Local IP Prefix Length"="*" "Protocol"="*" "Remote IP"="*" "Remote IP Prefix Length"="*" "Remote Port"="*" "Throttle Rate"="-1" "Version"="1.0" [HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\QoS\WebexAppVideoDSCP] "DSCP Value"="34" "Local Port"="40000:50000" "Application Name"="CiscoCollabHost.exe" "Local IP"="*" "Local IP Prefix Length"="*" "Protocol"="*" "Remote IP"="*" "Remote IP Prefix Length"="*" "Remote Port"="*" "Throttle Rate"="-1" "Version"="1.0" Save file as WebexQos.reg and to import double click on the file. Admin rights are needed.
Group Policies ADM file: CLASS MACHINE CATEGORY !!Webex:Cat_Webex CATEGORY !!CiscoWebex POLICY !!WebexAppAudioDSCP_Policy KEYNAME "Software\Policies\Microsoft\Windows\QoS\WebexAppAudioDSCP" #if version >= 4 SUPPORTED !!SUPPORTED_WIN7 #endif EXPLAIN !!WebexAppDSCP_Explain PART !!WebexAppAudioDSCP_Part EDITTEXT VALUENAME "DSCP Value" MAXLEN 1000 DEFAULT "46" END PART PART !!WebexAppAudioPortRange_Part EDITTEXT VALUENAME "Local Port" MAXLEN 1000 DEFAULT "40000:50000" END PART ACTIONLISTON VALUENAME "Application Name" VALUE !!WebexAppName_Part VALUENAME "Local IP" VALUE "*" VALUENAME "Local IP Prefix Length" VALUE "*" VALUENAME "Protocol" VALUE "*" VALUENAME "Remote IP" VALUE "*" VALUENAME "Remote IP Prefix Length" VALUE "*" VALUENAME "Remote Port" VALUE "*" VALUENAME "Throttle Rate" VALUE "-1" VALUENAME "Version" VALUE "1.0" END ACTIONLISTON END POLICY POLICY !!WebexAppVideoDSCP_Policy KEYNAME "Software\Policies\Microsoft\Windows\QoS\WebexAppVideoDSCP" #if version >= 4 SUPPORTED !!SUPPORTED_WIN7 #endif EXPLAIN !!WebexAppDSCP_Explain PART !!WebexAppVideoDSCP_Part EDITTEXT VALUENAME "DSCP Value" MAXLEN 1000 DEFAULT "34" END PART PART !!WebexAppVideoPortRange_Part EDITTEXT VALUENAME "Local Port" MAXLEN 1000 DEFAULT "40000:50000" END PART ACTIONLISTON VALUENAME "Application Name" VALUE !!WebexAppName_Part VALUENAME "Local IP" VALUE "*" VALUENAME "Local IP Prefix Length" VALUE "*" VALUENAME "Protocol" VALUE "*" VALUENAME "Remote IP" VALUE "*" VALUENAME "Remote IP Prefix Length" VALUE "*" VALUENAME "Remote Port" VALUE "*" VALUENAME "Throttle Rate" VALUE "-1" VALUENAME "Version" VALUE "1.0" END ACTIONLISTON END POLICY END CATEGORY END CATEGORY [Strings] Webex:Cat_Webex="Webex" CiscoWebex="Webex General Settings" SUPPORTED_WIN7="Microsoft Windows 7 or later" WebexAppDSCP_Explain="Configure DSCP value for Webex App.\n\nIf this value is configured, the Webex App will use these DSCP values for audio, video, and sharing data if the data originates from the specified local port range.\n\nRecommended port range: 40000:50000." WebexAppName_Part="CiscoCollabHost.exe" WebexAppAudioDSCP_Policy="Configure Audio DSCP for Webex App" WebexAppAudioDSCP_Part="Audio DSCP Configuration in Webex App" WebexAppAudioPortRange_Part="Audio data port range" WebexAppVideoDSCP_Policy="Configure Video DSCP for Webex App" WebexAppVideoDSCP_Part="Video DSCP Configuration in Webex App" WebexAppVideoPortRange_Part="Video data port range"
Group Policies ADMXL file:
<?xml version="1.0" encoding="utf-8"?> <policyDefinitions revision="1.0" schemaVersion="1.0" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" xmlns:policy="http://schemas.microsoft.com/GroupPolicy/2006/07/Policy"> <categories> <category name="WebexCategory" displayName="$(string.WebexCategory)"/> </categories> <policies> <policy name="WebexAppAudioDSCP" class="Machine" displayName="$(string.AudioDSCPPolicy)" explainText="$(string.WebexAppDSCP_Explain)" key="Software\Policies\Microsoft\Windows\QoS\WebexAppAudioDSCP" valueName="DSCP Value"> <enabledValue> <decimal id="DSCPValueAudio" valueName="DSCP Value" minValue="0" maxValue="63" defaultValue="46" /> <text id="AudioPortRange" valueName="Local Port" maxLength="1000" defaultValue="40000:50000"/> <text id="ApplicationNameAudio" valueName="Application Name" defaultValue="CiscoCollabHost.exe"/> <text id="LocalIP" valueName="Local IP" defaultValue="*"/> <text id="LocalIPPrefix" valueName="Local IP Prefix Length" defaultValue="*"/> <text id="Protocol" valueName="Protocol" defaultValue="*"/> <text id="RemoteIP" valueName="Remote IP" defaultValue="*"/> <text id="RemoteIPPrefix" valueName="Remote IP Prefix Length" defaultValue="*"/> <text id="RemotePort" valueName="Remote Port" defaultValue="*"/> <text id="ThrottleRate" valueName="Throttle Rate" defaultValue="-1"/> <text id="Version" valueName="Version" defaultValue="1.0"/> </enabledValue> </policy> <policy name="WebexAppVideoDSCP" class="Machine" displayName="$(string.VideoDSCPPolicy)" explainText="$(string.WebexAppDSCP_Explain)" key="Software\Policies\Microsoft\Windows\QoS\WebexAppVideoDSCP" valueName="DSCP Value"> <enabledValue> <decimal id="DSCPValueVideo" valueName="DSCP Value" minValue="0" maxValue="63" defaultValue="34" /> <text id="VideoPortRange" valueName="Local Port" maxLength="1000" defaultValue="40000:50000"/> <text id="ApplicationNameVideo" valueName="Application Name" defaultValue="CiscoCollabHost.exe"/> <text id="LocalIP" valueName="Local IP" defaultValue="*"/> <text id="LocalIPPrefix" valueName="Local IP Prefix Length" defaultValue="*"/> <text id="Protocol" valueName="Protocol" defaultValue="*"/> <text id="RemoteIP" valueName="Remote IP" defaultValue="*"/> <text id="RemoteIPPrefix" valueName="Remote IP Prefix Length" defaultValue="*"/> <text id="RemotePort" valueName="Remote Port" defaultValue="*"/> <text id="ThrottleRate" valueName="Throttle Rate" defaultValue="-1"/> <text id="Version" valueName="Version" defaultValue="1.0"/> </enabledValue> </policy> </policies> </policyDefinitions> For Microsoft Intune:
Powershell script in intune:
Copy the contents of this code blob to a file Called WebexQoS.ps1 or any name you want.
# Define logging $LogFile = "C:\ProgramData\WebexQoS.log" "[$(Get-Date)] Starting Webex QoS registry configuration..." | Out-File -FilePath $LogFile -Encoding utf8 # Function to configure QoS settings function Set-QoSPolicy { param ( [string]$Path, [string]$DSCP, [string]$PortRange ) Try { if (-Not (Test-Path $Path)) { New-Item -Path $Path -Force | Out-Null } Set-ItemProperty -Path $Path -Name "DSCP Value" -Value $DSCP Set-ItemProperty -Path $Path -Name "Local Port" -Value $PortRange Set-ItemProperty -Path $Path -Name "Application Name" -Value "CiscoCollabHost.exe" Set-ItemProperty -Path $Path -Name "Local IP" -Value "*" Set-ItemProperty -Path $Path -Name "Local IP Prefix Length" -Value "*" Set-ItemProperty -Path $Path -Name "Protocol" -Value "*" Set-ItemProperty -Path $Path -Name "Remote IP" -Value "*" Set-ItemProperty -Path $Path -Name "Remote IP Prefix Length" -Value "*" Set-ItemProperty -Path $Path -Name "Remote Port" -Value "*" Set-ItemProperty -Path $Path -Name "Throttle Rate" -Value "-1" Set-ItemProperty -Path $Path -Name "Version" -Value "1.0" "[$(Get-Date)] Successfully configured QoS at $Path" | Out-File -FilePath $LogFile -Append -Encoding utf8 } Catch { "[$(Get-Date)] ERROR setting QoS at $Path: $_" | Out-File -FilePath $LogFile -Append -Encoding utf8 } } # Set Audio DSCP (46) and Video DSCP (34) Set-QoSPolicy -Path "HKLM:\Software\Policies\Microsoft\Windows\QoS\WebexAppAudioDSCP" -DSCP "46" -PortRange "40000:50000" Set-QoSPolicy -Path "HKLM:\Software\Policies\Microsoft\Windows\QoS\WebexAppVideoDSCP" -DSCP "34" -PortRange "40000:50000" "[$(Get-Date)] Script completed." | Out-File -FilePath $LogFile -Append -Encoding utf8
Go to Intune Admin Center →
Devices → Scripts → Add
Platform : Windows 10 and later.
Script location : Upload WebexQoS.ps1
Run this script using the logged-on credentials : No (this runs it as SYSTEM)
Enforce script signature check : No
Assign to a group and deploy