Manage a Microsoft Teams Rooms console settings remotely with an XML configuration file
This article discusses remote management of the default settings used by a Microsoft Teams Rooms device, including applying a custom theme. It discusses how to create a master settings file, and links to discussions of how to place them as needed on the remotely managed devices.
It is possible for you to change default settings of remotely managed devices by updating a master XML file and sending copies to the managed consoles. You can also implement Custom Themes on your Microsoft Teams Rooms consoles with XML configuration files.
Create an XML configuration file
Any text editor can be used to create a settings file. The XML Elements table explains the elements shown in this sample SkypeSettings.xml (required file name) configuration file.
<SkypeSettings> <AutoScreenShare>true</AutoScreenShare> <HideMeetingName>true</HideMeetingName> <UserAccount> <SkypeSignInAddress>RanierConf@contoso.com</SkypeSignInAddress> <ExchangeAddress>RanierConf@contoso.com</ExchangeAddress> <ModernAuthEnabled>false</ModernAuthEnabled> <DomainUsername>Seattle\RanierConf</DomainUsername> <Password>password</Password> <ConfigureDomain>domain1, domain2</ConfigureDomain> </UserAccount> <IsTeamsDefaultClient>false</IsTeamsDefaultClient> <BluetoothAdvertisementEnabled>true</BluetoothAdvertisementEnabled> <AutoAcceptProximateMeetingInvitations>false</AutoAcceptProximateMeetingInvitations> <SkypeMeetingsEnabled>false</SkypeMeetingsEnabled> <TeamsMeetingsEnabled>true</TeamsMeetingsEnabled> <WebExMeetingsEnabled>true</WebExMeetingsEnabled> <UseCustomInfoForThirdPartyMeetings>true</UseCustomInfoForThirdPartyMeetings> <CustomDisplayNameForThirdPartyMeetings>Rainier Conference Room</CustomDisplayNameForThirdPartyMeetings> <CustomDisplayEmailForThirdPartyMeetings>RanierConf@contoso.com</CustomDisplayEmailForThirdPartyMeetings> <DualScreenMode>true</DualScreenMode> <DuplicateIngestDefault>false</DuplicateIngestDefault> <DisableTeamsAudioSharing>false</DisableTeamsAudioSharing> <CortanaEnabled>false</CortanaEnabled> <CortanaWakewordEnabled>false</CortanaWakewordEnabled> <SendLogs> <EmailAddressForLogsAndFeedback>RanierConf@contoso.com</EmailAddressForLogsAndFeedback> <SendLogsAndFeedback>true</SendLogsAndFeedback> </SendLogs> <Devices> <MicrophoneForCommunication>Microsoft LifeChat LX-6000</MicrophoneForCommunication> <SpeakerForCommunication>Realtek High Definition Audio</SpeakerForCommunication> <DefaultSpeaker>Polycom CX5100</DefaultSpeaker> <ContentCameraId>USB\VID_046D&PID_0843&MI_00\7&17446CF2&0&0000</ContentCameraId> <ContentCameraInverted>false</ContentCameraInverted> <ContentCameraEnhancement>true</ContentCameraEnhancement> </Devices> <Theming> <ThemeName>Custom</ThemeName> <CustomThemeImageUrl>file name</CustomThemeImageUrl> <CustomThemeColor> <RedComponent>100</RedComponent> <GreenComponent>100</GreenComponent> <BlueComponent>100</BlueComponent> </CustomThemeColor> </Theming> <CoordinatedMeetings enabled="true"> <TrustedAccounts>firstname.lastname@example.org</TrustedAccounts> <Settings> <Audio default="false" enabled="false" /> <Video default="false" enabled="true" /> <Whiteboard default="false" enabled="false"/> </Settings> </CoordinatedMeetings> </SkypeSettings>
If a variable value is of the wrong type, elements are out of order, elements are unclosed, or another error is found, the XML file is badly formed. While processing a badly formed XML file, settings found up to the point where the error occurs are applied, then the rest of the file is ignored. Any unknown elements in the XML are ignored. If a parameter is omitted, it remains unchanged on the device. If a parameter value is invalid, its prior value remains unchanged.
|<SkypeSettings>||Container for all elements.||Required.|
|<AutoScreenShare>||Boolean ❷||First ❶||If true, auto screen share is enabled.|
|<HideMeetingName>||Boolean ❷||First ❶||If true, meeting names are hidden.|
|<UserAccount>||Container||First ❶||Container for credentials parameters. The sign-in address, Exchange address, or email address are usually the same, such as RainierConf@contoso.com.|
|<SkypeMeetingsEnabled>||Boolean ❷||First ❶||Enabled by default.|
|<SkypeSignInAddress>||String ❸||The sign-in name for the console's SfB or Teams device account.|
|<ExchangeAddress>||String ❸||The sign-in name for the console's Exchange device account. If the ExchangeAddress is omitted, the SkypeSignInAddress will not be reused automatically.|
|<ModernAuthEnabled>||Boolean ❷||Disabled by default.
When set to true, the Microsoft Teams Rooms application only uses modern authentication to connect to resources and doesn't fall back to basic authentication.
|<DomainUsername>||String ❸||The domain and user name of the console device, for example Seattle\RanierConf.|
|<Password>||String 3||The password parameter is the same password used for the Skype for Business device account sign-in.|
|<ConfigureDomain>||String ❸||You can list several domains, separated by commas.|
|<TeamsMeetingsEnabled>||Boolean ❷||First ❶||Disabled by default.
The XML file is considered badly formed if both <SkypeMeetingsEnabled> and<TeamsMeetingsEnabled> are disabled, but it's acceptable to have both settings enabled at the same time.
|<IsTeamsDefaultClient>||Boolean ❷||First ❶||Disabled by default.|
|<WebExMeetingsEnabled>||Boolean ❷||First ❶||Disabled by default.
If true, enables direct guest join experience for Cisco Webex meetings.
|<UseCustomInfoForThirdPartyMeetings>||Boolean ❷||First ❶||Disabled by default and uses conference room account info to join third party meetings.
If this value is set to true, you must specify both <CustomDisplayNameForThirdPartyMeetings>, <CustomDisplayEmailForThirdPartyMeetings> must be specified.
|<CustomDisplayNameForThirdPartyMeetings>||String ❸||First ❶||Specify guest name used to join third party meetings. Third party service will display this data in their experience and may store in their service.|
|<CustomDisplayEmailForThirdPartyMeetings>||String ❸||First ❶||Specify guest email used to join third party meetings. Third party service will display this data in their experience and may store in their service.|
|<BluetoothAdvertisementEnabled>||Boolean ❷||First ❶||Enabled by default.|
|<AutoAcceptProximateMeetingInvitations>||Boolean ❷||First ❶||If true, proximity based meetings are automatically accepted. Disabled by default.|
|<DualScreenMode>||Boolean ❷||First ❶||If true, dual screen mode is enabled. Otherwise the device uses single screen mode.|
|<DuplicateIngestDefault>||Boolean ❷||First ❶||If true, content is shown on both screens in dual screen mode, when out of meeting.|
|<DisableTeamsAudioSharing>||Boolean ❷||First ❶||Set to true to disable HDMI audio sharing to meeting participants in Teams meeting. The default is false.|
|<CortanaEnabled>||Boolean ❷||First ❶||Set to true to enable Cortana voice skills. This setting doesn't have any effect unless the Cortana service is supported in your country or region and your connected audio peripheral supports Cortana. The default is false.|
|<CortanaWakewordEnabled>||Boolean ❷||First ❶||Set to true to enable the Cortana wake word "Hey Cortana". This setting doesn't have any effect unless the Cortana service is supported in your country or region and your connected audio peripheral supports Cortana. The default is false.|
|<DisableTacCommunication>||Boolean ❷||First ❶||If true, all communication with Teams Admin Center device management will be disabled.|
|<EmailAddressForLogsAndFeedback>||String ❸||Sets an optional email address that logs can be sent to when the "Give Feedback" window appears.|
|<SendLogsAndFeedback>||Boolean ❷||If true, logs are sent to the admin. If false, only feedback is sent to the admin (and not logs).|
|<Devices>||Container||First ❶||The connected audio device names in the child elements are the same values listed in the Device Manager app. The configuration can contain a device that does not presently exist on the system, such as an A/V device not currently connected to the console. The configuration would be retained for the respective device.|
|<MicrophoneForCommunication>||String ❸||Sets the microphone used as the recording device in a conference.|
|<SpeakerForCommunication>||String ❸||Device to be used as speaker for the conference. This setting is used to set the speaker device used in a call.|
|<DefaultSpeaker>||String ❸||Device to be used to play the audio from an HDMI ingest source.|
|<ContentCameraId>||String ❸||Define the instance path for the camera configured in room to share analog whiteboard content in a meeting. See Locate the Content camera USB instance path.|
|<ContentCameraInverted>||Boolean ❷||Specify if the content camera is physically installed upside down. For content cameras that support automatic rotation, specify false.|
|<ContentCameraEnhancement>||Boolean ❷||When set to true (the default), the content camera image is digitally enhanced: the whiteboard edge is detected and an appropriate zoom is selected, ink lines are enhanced, and the person writing on the whiteboard is made transparent.
Set to false if you intend to send a raw video feed to meeting participants for spaces where a whiteboard is not drawn on with a pen and instead the camera is used to show sticky notes, posters, or other media.
|<Theming>||Container||First ❶||One of the features that can be applied with an XML file is a Custom Theme for your organization. You are able to specify a theme name, background image, and color.|
|<ThemeName>||String ❸||Used to identify the theme on the client. The Theme Name options are Default, one of the provided preset themes, or Custom.
Custom theme names always use the name Custom. The client UI can be set at the console to the Default or one of the presets, but use of a custom theme must be set remotely by an Administrator.
Preset themes include:
To disable the current theme, use "No Theme" for the ThemeName.
|<CustomThemeImageUrl>||String ❸||Required for a custom theme, otherwise optional. Input the file name only. For more information on the custom theme image, see the Custom Theme Images section.|
|<CustomThemeColor>||Container||Container for the <RedComponent>, <GreenComponent>, and <BlueComponent> values. These values are required for a custom theme.|
|<RedComponent>||Byte (0-255)||Represents the red color component.|
|<GreenComponent>||Byte (0-255)||Represents the green color component.|
|<BlueComponent>||Byte (0-255)||Represents the blue color component.|
|<CoordinatedMeetings>||Boolean ❷||First ❶||Container for the configuration elements for Coordinated Meetings. This element has one attribute:
|<TrustedAccounts>||String||This is a comma-separated list of UPNs for each Teams Room device or Surface Hub that the device should accept meeting join requests from, or to which meeting join requests should be sent.|
|<Settings>||Container||Container for the configuration audio and video configuration elements for Coordinated Meetings.|
|<Audio>||Boolean ❷||Controls audio configuration on a Teams Rooms device. This element has two attributes:
|<Video>||Boolean ❷||Controls video configuration on a Teams Rooms device. This element has two attributes:
|<Whiteboard>||Boolean ❷||Controls whiteboard configuration on a Teams Rooms device. This element has two attributes:
❶ All of the first-level elements are optional. If a first-level element is omitted, all of its child parameters remain unchanged on the device.
❷ A boolean flag can be: true, false, 0, or 1. Leaving boolean or numeric values empty can render the XML malformed and prevent changes to the settings.
❸ If a string parameter is present and empty, and empty is a valid value, the parameter is cleared on the device.
Manage console settings with an XML configuration file
At startup, if a Microsoft Teams Rooms console finds an XML file named SkypeSettings.xml located at
C:\Users\Skype\AppData\Local\Packages\Microsoft.SkypeRoomSystem_8wekyb3d8bbwe\LocalState, it applies the configuration settings indicated by the XML file then deletes the XML file.
Depending on how many Microsoft Teams Rooms devices your enterprise has and how you choose to manage to configure them, there are several ways to place the XML configuration file. Once the file is pushed to the console, restart it to process the configuration changes. The XML configuration file is deleted after it is successfully processed. The management methods suggested for Microsoft Teams Rooms devices are discussed in:
- Configuring Group Policy for Microsoft Teams Rooms
- Remote Management using PowerShell and Configure a File Item
You are free to use any method you like so long as you can use it to transfer files and trigger a restart on the console device. The file must be readable, writable, and delete-able by the device's local user account. Preferably it is owned by and has full privileges granted to that user. If the file permissions are not set correctly, the software can fail to apply the settings, can fail to delete the file upon successful processing, and can even potentially crash.
Custom Theme Images
The custom theme image file must be placed in the
C:\Users\Skype\AppData\Local\Packages\Microsoft.SkypeRoomSystem_8wekyb3d8bbwe\LocalState folder. Enter the file name and extension in the <CustomThemeImageUrl> variable.
The image file should be exactly 3840X1080 pixels and must be one of the following file formats: jpg, jpeg, png, and bmp. If your organization wants a custom image, a graphic designer can use the Custom Theme Photoshop Template. It contains further detail on where various user interface elements are relative to the rest of a theme image and what areas appear on consoles and displays.
The XML configuration file must be updated at device startup to recognize the theme image. Once the new XML file is processed and deleted, the theme graphic file is deleted from the directory.
Locate the Content camera USB instance path
To locate the instance path:
- Go into Windows settings on the Microsoft Teams Rooms console.
- Enter the admin password.
- From a Command Prompt, type
devmgmt.mscto bring up Device Manager.
- In Device Manager, look in the Imaging devices node and locate the content camera.
- Right-click the camera, and open Properties.
- Select the Details tab, and locate the Device instance path property in the drop-down.
- The value shown is the device instance path to set in the XML configuration file. When specifying the path in XML, replace the ampersand (&) with