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>
    <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&amp;PID_0843&amp;MI_00\7&amp;17446CF2&amp;0&amp;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>​room@contoso.com</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.

XML elements

Element Type Level Usage
<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.
<DisableTacCommunication> Boolean ❷ First ❶ If true, all communication with Teams Admin Center device management will be disabled.
<SendLogs> Container First ❶
<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:
Default
Blue Wave
Digital Forest
Dreamcatcher
Limeade
Pixel Perfect
Roadmap
Sunset
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:
  • enabled Determines whether Teams is configured to participate in Coordinated Meetings with other devices.
<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:
  • default Determines on which device the microphone will be active when a meeting starts. Only one device (typically a Teams Rooms device) can have this field set to true while the rest of the devices must have this field set to false to avoid audio echo and feedback.
  • enabled Determines whether participants in a meeting can toggle the microphone on or off. Devices on which Audio default is set to false should have this setting set to false so that participants can't accidentally turn on a microphone and cause audio echo or feedback.

    If Audio default is set to true, the Audio enabled setting is ignored and participants can mute or unmute the microphone.

<Video> Boolean ❷ Controls video configuration on a Teams Rooms device. This element has two attributes:
  • default Determines on which device the camera will be active when a meeting starts. For the best experience, we recommend that only the Teams Rooms device be set to true while all other devices are set to false.
  • enabled Determines whether participants in a meeting can toggle the camera on or off. You can set this to true on any other devices in the event participants want to share different video perspectives (such as if a participant is using the Surface Hub whiteboard). If you don't want participants to turn a camera on or off on a device, set this to false.

    If Video default is set to true, the Video enabled setting is ignored and participants can turn the camera on or off.

<Whiteboard> Boolean ❷ Controls whiteboard configuration on a Teams Rooms device. This element has two attributes:
  • default Determines on which device the whiteboard will be active when a meeting starts. For the best experience, we recommend that the Teams Rooms device be set to false and that you use the whiteboard on a Surface Hub.
  • enabled Determines whether participants in a meeting can toggle the whiteboard on or off. If you don't want participants to turn the whiteboard on or off on a device, set this to false.

    If Whiteboard default is set to true, the Whiteboard enabled setting is ignored and participants can turn the whiteboard on or off.

❶ 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:

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 theC:\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:

  1. Go into Windows settings on the Microsoft Teams Rooms console.
  2. Enter the admin password.
  3. From a Command Prompt, type devmgmt.msc to bring up Device Manager.
  4. In Device Manager, look in the Imaging devices node and locate the content camera.
  5. Right-click the camera, and open Properties.
  6. Select the Details tab, and locate the Device instance path property in the drop-down.
  7. 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 &amp;.

See also

Content cameras

Manage Microsoft Teams Rooms

Configure a File Item