TEAMS and LINUX: The Future is Now!

Occasional Contributor

Using Microsoft TEAMS in a web browser and getting the same level of capabilities as the Windows Desktop client has been limited at best, especially for Linux users. The inability to video conference or share desktops and applications or give presentations usually makes using TEAMS on Linux a no go.  


Using Linux myself to host my VMs for various OSes, the need to be able to use TEAMS and other Office 365 tools on Linux is quite high. It’s not always convenient to boot a Windows VM for a meeting or send emails or collaborate with a Team mate. Fortunately, and surprisingly this is no longer the case when using TEAMS on Linux. But to enable this new level of functionality requires just a bit of effort on the end user’s part. 


By using Chromium or Chrome browsers and making a few settings tweaks an installing a single browser extension you can achieve near parity with the Windows desktop client. You should be able to make in-private video calls, give presentations and use other functionality not previously possible in TEAMS for Linux users. 


Unfortunately, there has not been enough time to completely vet this as thoroughly as desired to identify what is or is not working once these changes are made. So, hopefully the TEAMS community will tackle this and update this site accordingly with their findings. 


Please keep in mind that you will need to have the appropriate TEAMS and sharing settings enabled in your Office 365 tenant. Also, for expediency sake this article will not be getting into the minutiae of the following step by step procedure for TEAMS on Linux. 


To get started there are a few required resources that you will need to have so just follow the step by step to get going. 

Step 1: Download and install one of the browsers listed below. 

  1. Chrome for Linux 
  2. Chromium for Linux 

Step 2: Install the following extension from the Google Webstore. 

  1. User Agent Switcher for Chrome 

Step 3: Add one or both of the following user agent strings to the “User Agent Switcher for Chrome”. This will allow you to switch to the desired one that works for your system. 

  1. Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134 
  2. Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393X 

Step 4: Click the User Agent Switcher and choose your Edge browser string. This should remain selected until you change it to something else or back to the browser default. 

Step 5: Open the Chrome browser, in the address bar type Chrome://flags and hit the Enter key. In the search box provided, search for each of the settings below. Set each one to ENABLED. 

  1. Hardware Acceleration 
    1. Override software rendering list: ENABLED 
  2. PWA 
    1. Enable PWA full code cache: ENABLED 
    2. Desktop PWAs: ENABLED 
    3. Desktop PWAs Link Capturing: ENABLED 
  3. WEBRTC 
    1. Negotiation with GCM cipher suites for SRTP in WebRTC: ENABLED 
    2. Negotiation with encrypted header extensions for SRTP in WebRTC: ENABLED 
    3. WebRTC Stun origin header: ENABLED 
    4. WebRTC Echo Canceller 3: ENABLED 
    5. WebRTC new encode cpu load estimator: ENABLED 
    6. WebRTC H.264 software video encoder/decoder: ENABLED 
    1. Parallel downloading: ENABLED 
  5. Verify that Setting work. 
    1. Open Microsoft Teams in your browser.  
    2. Start a private chat with someone and verify that the video chat icon switches from grey to purple and white. If so, you can start making video calls and you should also be able to make presentation.  

One quick note; this same procedure should also work on Windows and MAC but further testing is required for these platforms. 


45 Replies

UPDATE - While you can use the EDGE UA to participate in Conference calls it may cause issues with not displaying the most current posts in a TEAMS channel. So you may have to switch between the EDGE UA and the browser default UA.



Thanks for this webpage this is very nice to see Teams working on Linux.

For ones who doesn't know where to change the settings, just go to chrome://flags


I just tried it with Google Chrome 69 on Debian Sid.

If enabled everything mentioned, I can NOT join a meeting.

If I disable "Negotiation with encrypted header extensions for SRTP in WebRTC", I can join a meeting, hear, speak, share my camera, see other's camera and see other's share screen BUT I can NOT share my screen, I get this message: "Desktop sharing isn't supported in your browser yet. Meanwhile, the desktop app already has it, so why not give that a try?". 

Did I need to install an other deb package ?

Did I need to use an other Google-Chrome version ?

Or did I missed something ?


Thanks for you answer.


Here more details on my Google Chrome version.

Google Chrome: 69.0.3497.100 (Official Build) (64-bit)
Revision: 8920e690dd011895672947112477d10d5c8afb09-refs/branch-heads/3497@{#948}
OS: Linux
Javascript: V8 6.9.427.23
Flash: /home/USER/.config/google-chrome/PepperFlash/
User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Command Line: /usr/bin/google-chrome --flag-switches-begin --enable-webrtc-srtp-aes-gcm --enable-webrtc-stun-origin --ignore-gpu-blacklist --enable-features=DesktopPWAWindowing,DesktopPWAsLinkCapturing,NewEncodeCpuLoadEstimator,PWAFullCodeCache,ParallelDownloading,WebRTC-H264WithOpenH264FFmpeg,WebRtcUseEchoCanceller3 --flag-switches-end



I have the same problem. The Video and Phone call works fine, but the screen sharing give this message "Desktop sharing isn't supported in your browser yet. Meanwhile, the desktop app already has it, so why not give that a try?"


Is there any solution?



Thanks for posting Aubrey I have the same problem. The Video and Phone call works fine, but the screen sharing give this message "Desktop sharing isn't supported in your browser yet.

@Aubrey Marshall: I should thank you for posting this. But OTOH "go to the Chrome settings screen" is plain wrong information. I have searched how to set the options you specify until I saw blue in the face. Is it so difficult to write: "chrome://flags?"


Thanks Thibault Cohen for the pointer to chrome://flags. The original article mentioned Chrome Settings. To me that is --well-- Chrome settings.
Thanks for the feed back. I updated the post to reflect Chrome://flags in step 5.

When it comes to the User-Agent Switcher for Chrome in Step 3, it doesn't say if this needs Appended or Replaced and nothing about the required Indicator Flag...

@Aubrey MarshallI've also observed this behavior but I think it's not necessarily to switch between profiles - instead try logging out and logging in. In my case that helped and all chats displayed correctly.

In order to get the calls to work I used the instructions listed here, but in Step 3 had to add an entry for Edge as follows and then select this Edge setting from the switcher.

Edge Edge/17.17134 Edge 17

While the info is in the post, it may not be clear.

hi. Guys
first thanks for this post. i follow the steps and i am able to run and receive call on browser on centos 7 chrome browser using below string
Edge Edge/17.17134 Edge 17


but when i make call it shows me that its calling but receiving peron didn't receive any call and after call ended he able to see a missed call notification. while he not receive any call notification or popup.

i will really appreciate if you help me. because i really want to switch to linux centos 7 version.

Thanks in advance

Same issue here. ( Ubuntu 14 -yes, old :) - & Chrome 71.0.3578.98. )

This is a joke. I should make my web-browser fake the operating system?




This makes not sense.


The "browser detection vs feature detection" debate is several years old.


This is no solution.


I am willing to download a browser plugin. But not more.


But the title "The Future is Now!" sound good. Great title, really - wow I am amazed.

Agreed it's seek.


With instruction above I was able to make calls (woow, it's 2019!) via chrome browser at Debian, but not screen sharing.

As long as Teams is not supporting multi-platform client I rather would call it as "Teams at Windows only". . . 

The option "WebRTC H.264 software video encoder/decoder" was not available at Chrome  version 71.0.3578.80


Skype for business (Lync) meeting each time force me to install msi package that on linux that make me smile. 


Dear, Microsoft Team's team,  you could make Teams more preferable solution than Slack (that I love very much)!


PS: Currently I'm forcing to use (for free up to 4 participants) as it work everywhere including screen sharing


At a certain moment in time it worked. I tested it by called someone, and yes we could speak.

Yesterday I had a team meeting. Although I use Chrome also for Skype and Hangouts (but not with this User Agent ID) Teams insisted I had no microphone.

So I was there with 10 team members shouting at my that my mic was muted. No, it was not, Team said it could not find a recording device.

Now, things can happen. Maybe it can be fixed. But what is so extremely unbelievable stupid is that Teams conversations cannot be tested. Really I have to wait until THE moment the meeting starts to discover whether or not it works. Shame on me because again I could not participate again.

Oh, and I did have a microphone of course. In my audio control panel I could see the mic audio level. And my frustrated panting into the mic.

I don't care that Microsoft puts a lots of effort in Cloud products, Azure, Licensing, whatnot. But please, could they also develop something what works? What is not just bloated and offers everything except the kitchen sink? Of all features about 90% works and that 80% of the time. And if it is well known it breaks periodically, there should be a test option so it is not a surprise whether or not it works today.


Google Hangouts / Meet *just works* in a browser, but then it is it's is not stuck in the 80's.

m$ requires you to fake

@guettli wrote:

This is a joke. I should make my web-browser fake the operating system?

browser agent, to suppress Linux is statistics.

Why would you accept a browser plugin from a company famous for its security holes ?

Neither the browser, nor the OS is outdated. You describe the problem exactly right. It "just works". Except when it does not. Yesterday and the day before yesterday it "just worked". Not sure about tomorrow.

My point is that I want to know if it "just works" 10 minutes before a meeting. Because if it doesn't "just work" there is (a) nothing I can do about it, and (b) I know that when the meeting has started.

I used Teams on Rambox:


Working on my Budgie(Ubuntu18)

Video and mention seems working fine.