TEAMS and LINUX: The Future is Now!

Aubrey Marshall
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. 


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. 


33 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&colon; V8 6.9.427.23
Flash: /home/USER/.config/google-chrome/PepperFlash/
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?




@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) https://appear.in 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:


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.


i have created a chrome extension that enables the calling function for MS Teams.


Basically it sets a value in the settings that enables this function: 
angular.element(document).injector().get('callingSupportService').oneOnOneCallingEnabled = true 
angular.element(document).injector().get('settingsService').appConfig.enableCallingChromeOneOnOne = true

Using these instructions no longer work for me. I am able to start joining a call, my video is available, but when I finish to "Join", it says "Sorry, couldn't connect you to the call." (or something similar.

I had to reset all of these settings in `chrome://flags` to default, and follow the instructions here: http://nelkinda.com/blog/microsoft-teams-on-linux/#d11e89

Those instructions got me up and running.



That worked like a charm. On Opensuse Tumbleweed here. Instructions in original post no longer work and is too many steps.


Also found this (screenshare extension for chrome; has 2 stars but works well for me so I can't complain): https://chrome.google.com/webstore/detail/microsoft-teams-screen-sh/dhheiegalgcabbcobinipgmhepkkeidk


@Rainson12 : so is this something i have to do on top of the chrome config mentioned in the OP's first message, or does it replace all of the manual config you had to do ?

Great initiative! thanks !!

Has anyone other than me had an issue when mentioning another user in teams using linux / chromium ?


I have found that, using teams in chromium, if I prefix them with an "@" to bring up the list of suggested names, and select the person I want to mention then their name becomes a hyperlink, and if I send the message immediately they get a notification as expected.


However, if I keep typing after their name, then the hyperlink immediately reverts to plain text, and they receive no notification at all when the message is sent...


There is no need to switch user agent (and have the @mentions issue by doing it).

You can either use this electron wrapper or check in the app/browser section where you can pick and choose things to enable you screen sharing, etc.

Repo here (note, I am the main maintainer and this is a fork of ivelkov - no longer maintained - with many fixes):

Hope helps,
Hi ! About "teams-for-linux-0.1.15-x86_64.AppImage" My linux is: Leap15.1. Default browser is FF. (chrome is also installed ) When I run teams-for-linux-0.1.15-x86_64.AppImage, it uses firefox... As a result - there is no dialer.. How do I specify teams-for-linux-0.1.15-x86_64.AppImage to use Chrome? Serg

@SergeyU2 KoltogyanU2 


please se report issues in the github. 


I suspect is is because you have ff as default browser but maybe there is a way around it. 


Again, issues in github. 

@ismaelmartinez : just installed the teams-for-linux snap on my ubuntu 18.04.  Works great so far  :-)

Thanks for this initiative !!  I'm moving from WebEx > Teams and your work just made my life sooooo much easier !

kudos x 1000

@ismaelmartinezKudos for the great work on https://github.com/IsmaelMartinez/teams-for-linux!!

Works well in my Ubuntu 18.04.

Thank you, it really worked for me in my (Windows NT 10.0; Win64; x64) Edge/17.17134
Oh, I meant (X11; Linux x86_64) Chrome/73.0.3683.86

Looks it gonna work (audio, video, screen sharing) for me as well:
@ismaelmartinez, thank you!

Thanks a lot for the new version with desktop sharing @ismaelmartinez 

Related Conversations
Sharing a Teams Calendar
Michael Krueger in Microsoft Teams on
15 Replies
Teams Calling - Dial pad missing
Chris Cooper in Microsoft Teams on
34 Replies
Teams for Mac Client
tlindgren in Microsoft Teams on
5 Replies