DIY Microsoft Teams Room Console

Thorsten Janssen
5 min readApr 21, 2021

Once upon a time… and this is about 2 years ago, I layed my hands on a Crestron Teams Room Device. And I was amazed that it was ‘just’ an Intel NUC with some peripherals attached. So when I got a hold of an Intel NUC (we actually replaced all our NUCs with laptops during the pandemic) I wondered ‘would I be able to recreate that Microsoft Teams Room console from scratch’?

Spoiler alert: I was. Hence, this blog post.

What do you need:

  • A USB stick, minimum 8GB for the installation of the Teams Room Console
  • Another USB stick (any size) to store a configuration XML that we need later
  • This documentation from Microsoft

Some hardware:

  • An Intel NUC with enough compute power and memory to serve up to 3 displays and encode and decode real-time video. I have a NUC7i5BNK with 8GB RAM and it seems to be totally capable of doing the job
  • A touch display, I got a Viewsonic TD1655
  • A USB docking station with enough USB-A / USB-C ports and the ability to connect two 4k displays, I got the Raidsonic ICY BOX IB-DK2245AC
  • A USB speakerphone, I recommend the Teams certified Jabra Speak series, for example the Jabra Speak 750 MS-Teams
  • A USB HD webcam, I used a simple Logitech C920 HD Pro
  • A USB HDMI grabber to enable video sharing from a laptop, I got this Pengu 1080p USB HDMI grabber from Amazon.

And some licenses for your Microsoft 365 tenant:

  • Windows 10 Enterprise
  • Teams Room Standard

Now that you have everything ready: good luck!

What do you mean? ‘How did you do it?’. Ok ok… I will explain.

  • Create a folder on your computer where you’ll do all the work, I made a d:\teams-room\ for this.
  • Download the Windows 10 Enterprise 1909 original release ISO (not the one with all updates included from March 2020, but the October 2019 one). Full disclosure: I never tried a localized version of 1909 for this step, I always went for the English one. If I ever try this, I will update this post. If you do it: leave a comment and let everyone know.
  • Extract the ISO to a folder in your working directory, I was creative and called it d:\teams-room\win10-Enterprise-1909-iso\
  • Download the CreateSrsMedia.ps1 script and move it into your equivalent of d:\teams-room\
  • Open up PowerShell AS ADMINISTRATOR and switch into your folder d:\teams-room\
  • Execute the script:
    a. Answer the first question… if you are an OEM, why are you reading this blog post anyway? Answer ‘Enterprise’ because that’s what you are. By the way: this is affecting the Windows 10 Version needed for the installation process. OEMs need to use the Windows 10 IoT Enterprise ISO to proceed, which normal Enterprises don’t have access to.
    b. If the script asks which drivers to install, choose ‘none’.
    c. Wait till the script is finished (this will take about 20 minutes).
  • While the script is creating the installation media, go to your Microsoft 365 Admin Center and create the Room in ‘Resources -> Rooms & Equipment”. Assign the Teams Room Standard license to the room.
    A small hint here: if you changed the address of the room to any other domain other than the standard @[companyname].onmicrosoft.com address, you will need to fiddle around later when authenticating the teams room console. In most cases the login will be the onmicrosoft one. If in doubt, check the User Principal Name in Azure AD.
  • Because the setup routine can be a little picky on some devices (insisting that you put your Teams Room Console in a docking station at the end of the setup process, at which point it fails) we’re preparing the configuration XML for the Teams Room Console config just like outlined here
    Here is the one that i worked with:
<SkypeSettings>
<AutoScreenShare>true</AutoScreenShare>
<HideMeetingName>false</HideMeetingName>
<UserAccount>
<SkypeSignInAddress>roomaddress@company.onmicrosoft.com</SkypeSignInAddress>
<ExchangeAddress>roomaddress@company.onmicrosoft.com</ExchangeAddress>
<ModernAuthEnabled>true</ModernAuthEnabled>
<DomainUsername></DomainUsername>
<Password>yourfancypasswordhere</Password>
<ConfigureDomain></ConfigureDomain>
</UserAccount>
<IsTeamsDefaultClient>false</IsTeamsDefaultClient>
<BluetoothAdvertisementEnabled>true</BluetoothAdvertisementEnabled>
<AutoAcceptProximateMeetingInvitations>false</AutoAcceptProximateMeetingInvitations>
<AutoExitMeetingEnabled>true</AutoExitMeetingEnabled><SkypeMeetingsEnabled>false</SkypeMeetingsEnabled><TeamsMeetingsEnabled>true</TeamsMeetingsEnabled><WebExMeetingsEnabled>false</WebExMeetingsEnabled><ZoomMeetingsEnabled>false</ZoomMeetingsEnabled><UseCustomInfoForThirdPartyMeetings>false</UseCustomInfoForThirdPartyMeetings>
<CustomDisplayNameForThirdPartyMeetings>Room Name</CustomDisplayNameForThirdPartyMeetings><CustomDisplayEmailForThirdPartyMeetings>roomaddress@company.onmicrosoft.com</CustomDisplayEmailForThirdPartyMeetings><DualScreenMode>false</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&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>
  • Before starting the installation procedure DISCONNECT YOUR NUC FROM THE NETWORK. No, I do not know why, the installation just seems more reliable when there is no network present in the first steps and Microsoft tells you to unplug the device as well. Let’s just behave and unplug it.
  • Install the machine with the USB stick. Nothing you should do really, just watch and relax. If you still have not created the room account from 7., do it now. Nothing better to do right now.
  • When Windows is installed, unplug the USB stick and observe the tectonic movement on our planet while Windows is getting ready. At some point, the machine just switches off.
  • Connect it to the network and turn it on again, it will get thing ready and restart all by itself this time
  • Suddenly, a wild Out-Of-Box-Experience appears and asks for the region and keyboard settings. Once finished, the Teams room application starts for the very first time. Slowly. Very slowly. Then the machine restarts again and crushes all your hopes.
  • The Teams Room Setup Screen will appear, but we ignore it and just place the prepared XML into the path where it is expected: C:\Users\Skype\AppData\Local\Packages\Microsoft.SkypeRoomSystem_8wekyb3d8bbwe\LocalState
    a. Hit “Exit”, you will be presented with a Windows Login screen
    b. Choose the Administrator account, enter the password “sfb” (as in “Skype For Business”)
    c. When opening the path in Explorer it will ask you to grant yourself access to C:\Users\Skype\ — you obviously want to agree to that
    d. Copy the prepared file over and restart the machine
  • Once it is restarted, change the required parameters to your needs and voilà: you have a basic Teams Room Console ready.

AND: don’t forget to change the standard Administrator password

what do you mean? A Video of the process would help? Well good thing i prepared one:

Once the basic console is ready you can start setting it up with the rest of the equipment. I put together simple diagrams outlining the wiring for a small huddle room and a medium size meeting room.

DIY Teams Room Console equipment for small huddle room

Your prices may vary, and it depends on if you already have a small computer and a spare TV at hand, but the extra hardware for a simple huddle room should be less than 1000$.

DIY Teams Room Console equipment for medium room

For the bigger meeting room I went for a AVer video-soundbar with additional wired microphone. But any Logitech Rally or Poly Studio or the likes will also work fine. You could also just upgrade the Jabra 750 to the bigger Jabra Speak 810 MS solution if you want. It’s your room, it’s your choice!

And thanks to the big USB-C dock you can also go for the double display solution, so you’d have all participants on one screen and the presentation on the other.

I hope you found this DIY manual helpful and would love to hear your feedback!

--

--

Thorsten Janssen

full time nerd, part time gamer. cloud enthusiast. 40+ years of IT experience.