IsmaelMartinez / teams-for-linux

Unofficial Microsoft Teams for Linux client
GNU General Public License v3.0
2.86k stars 234 forks source link

Meeting Links Not Opening #1098

Closed Ryushin closed 1 month ago

Ryushin commented 8 months ago

Meeting links using msteams://teams.microsoft.com are not starting a meeting inside teams-on-linux. Copying and pasting the meeting link inside teams-on-linux and then clicking on the link does work. I've gone through the issues and it seemed like this was already fixed, so I don't know if it's "just me"

Example:

/opt/teams-for-linux/teams-for-linux "msteams://teams.microsoft.com/l/meetup-join/<meeting link goes here>"}" --appLogLevels=error,info,warn,debug

DEBUG] configPath:,/home/chris/.config/teams-for-linux
[DEBUG] configFile:,[object Object]
[INFO] App already running

I'm running on Devuan Daedalus (Debian Bookworm). Running Teams-For-Linux deb package 1.4.10

If run /opt/teams-for-linux/teams-for-linux https:/teams.microsoft.com/ It gives me the same already running error, but it opens a whole new window, replacing the previous window, and opens up the meeting.

I do have Microsoft's Teams client installed as well. xdg-mime settings shows teams-for-linux as being the default:

xdg-mime query default x-scheme-handler/msteams
teams-for-linux.desktop

Any suggestions would be appreciated.

Deewens commented 8 months ago

I was looking for a fix too. I tried to open a Teams Meeting Link (as follows: https://teams.microsoft.com/l/message/xxxxxx). It opened in my default browser, and I found no way to open in the Teams for Linux app. Is it possible? Is there a workaround?

I'm on KDE and tried to check in the File Association settings, but could not find anything. I'm using the Flatpak.

Thanks.

Ryushin commented 8 months ago

I was looking for a fix too. I tried to open a Teams Meeting Link (as follows: https://teams.microsoft.com/l/message/xxxxxx). It opened in my default browser, and I found no way to open in the Teams for Linux app. Is it possible? Is there a workaround?

I'm on KDE and tried to check in the File Association settings, but could not find anything. I'm using the Flatpak.

Thanks.

I use the Redirector add on for Firefox. It redirects https links to msteams. See: https://learn.microsoft.com/en-us/answers/questions/1168169/open-microsoft-teams-link-on-linux-doesnt-work-aga

Deewens commented 8 months ago

I was looking for a fix too. I tried to open a Teams Meeting Link (as follows: https://teams.microsoft.com/l/message/xxxxxx). It opened in my default browser, and I found no way to open in the Teams for Linux app. Is it possible? Is there a workaround? I'm on KDE and tried to check in the File Association settings, but could not find anything. I'm using the Flatpak. Thanks.

I use the Redirector add on for Firefox. It redirects https links to msteams. See: learn.microsoft.com/en-us/answers/questions/1168169/open-microsoft-teams-link-on-linux-doesnt-work-aga

Thanks a lot, I'll try that :smile: !

joh4nd commented 7 months ago

Is this supposed to happen or is a feature request needed?

MM's solution forwarded by Ryushin


# How to get Teams-for-Linux to join for the meeting invitations

1) Install Redirector extension for your browser. (e.g. 
2) Setup Redirector: 
  Description:MS teams
Example URL:https://teams.microsoft.com/*
Include pattern:https://teams.microsoft.com/(.*)
Redirect to:msteams://teams.microsoft.com/$1
Pattern type: Wildcard Regular Expression
Pattern Description:
Example result:msteams://teams.microsoft.com/*
3) Change App handling in settings (this is firefox, but also Chrome has such setting available) about:preferences -> Applications -> msteams: Always Ask
4) Create a script (and chmod a+x it): 
    #!/bin/bash
    URL="${1/msteams/https}"
    teams-for-linux --url $URL

5) Then when you open a link to meeting, it open it on browser, and  now should ask the app what is used for it - open the link with that script.
Ryushin commented 7 months ago

This is supposed to happen in everything I've read. Reading the old issues it seems this was fixed twice in the past.

Zahrun commented 7 months ago

I was looking for a fix too. I tried to open a Teams Meeting Link (as follows: https://teams.microsoft.com/l/message/xxxxxx). It opened in my default browser, and I found no way to open in the Teams for Linux app. Is it possible? Is there a workaround? I'm on KDE and tried to check in the File Association settings, but could not find anything. I'm using the Flatpak. Thanks.

I use the Redirector add on for Firefox. It redirects https links to msteams. See: https://learn.microsoft.com/en-us/answers/questions/1168169/open-microsoft-teams-link-on-linux-doesnt-work-aga

Thanks for sharing, this workaround works.

You can import this file into redirector to save 2 seconds of typing Redirector.json This script again saves you 2 seconds of typing teams-for-linux-open-url.zip

I hope to see this fixed though

Ryushin commented 7 months ago

I was looking for a fix too. I tried to open a Teams Meeting Link (as follows: https://teams.microsoft.com/l/message/xxxxxx). It opened in my default browser, and I found no way to open in the Teams for Linux app. Is it possible? Is there a workaround? I'm on KDE and tried to check in the File Association settings, but could not find anything. I'm using the Flatpak. Thanks.

I use the Redirector add on for Firefox. It redirects https links to msteams. See: https://learn.microsoft.com/en-us/answers/questions/1168169/open-microsoft-teams-link-on-linux-doesnt-work-aga

Thanks for sharing, this workaround works.

You can import this file into redirector to save 2 seconds of typing Redirector.json This script again saves you 2 seconds of typing teams-for-linux-open-url.zip

I hope to see this fixed though

Is this issue only affecting me then that teams-for-linux won't open msteams links but it's working for others? I am using the Debian package.

I still get the error that teams-for-linux is already running when trying to pass a msteams link:

/opt/teams-for-linux/teams-for-linux "msteams://teams.microsoft.com/l/meetup-join/19%3ameeting_MGE5ODMzMzgtZGQyYi00ZGFhLTk5OGUtYWNjOGQ1Y2FjMDhk%40thread.v2/0?context={"Tid"%3a"038b9396-0699-4a0d-b139-a19f7345f3e6"%2c"Oid"%3a"1c8786a6-1c90-4072-a79b-21a34d21556b"}" --appLogLevels=error,info,warn,debug
[DEBUG] configPath:,/home/chris/.config/teams-for-linux
[DEBUG] configFile:,[object Object]
[INFO] App already running
Zahrun commented 7 months ago

That is why the script replaces msteams:// with https://

#!/bin/bash
    URL="${1/msteams/https}"
    teams-for-linux --url $URL
Ryushin commented 7 months ago

That is why the script replaces msteams:// with https://

#!/bin/bash
  URL="${1/msteams/https}"
  teams-for-linux --url $URL

Okay, I downloaded the zip and I see it now. Putting it in my ~/bin and calling it from Redirector in Firefox allows it to open the meeting. It does seem to open a new window in place of the old one, not sure if it appears that way or that is be design.

joh4nd commented 7 months ago

But if you have to call a script to make teams-for-linux open the URL anyway, then why not just copy-paste the URL as an argument from the terminal? teams-for-linux URL

Ryushin commented 7 months ago

But if you have to call a script to make teams-for-linux open the URL anyway, then why not just copy-paste the URL as an argument from the terminal? teams-for-linux URL

Pasting the link in the shell works just as well.

The script is just a workaround for right now until teams-on-linux can open msteams links.

IsmaelMartinez commented 6 months ago

This is strange as I can see the links to meetings working just fine.

This is the area where the regex gets triggered. https://github.com/IsmaelMartinez/teams-for-linux/blob/develop/app/mainAppWindow/index.js#L225 . It will be good if people can start the app with the debug mode on and see if you get any logs that can give us a hint. Does the meeting links start with https://teams.microsoft.com/l/meetup-join/... ?

Ryushin commented 6 months ago

Afraid the problem still exists. The debug is the same as I posted before:

chris@muaddib:~$ /opt/teams-for-linux/teams-for-linux "msteams://teams.microsoft.com/l/meetup-join/19%3ameeting_<redacted link>%40thread.v2/0?context={"Tid"%3a"<redacted link>-b139-a19f7345f3e6"%2c"Oid"%3a"<redacted link>-21a34d21556b"}" --appLogLevels=error,info,warn,debug
[DEBUG] configPath:,/home/chris/.config/teams-for-linux
[DEBUG] configFile:,[object Object]
[INFO] App already running
IsmaelMartinez commented 6 months ago

This might be fixed in https://github.com/IsmaelMartinez/teams-for-linux/pull/1176 . Can one of you test it in this pre-release https://github.com/IsmaelMartinez/teams-for-linux/releases/tag/v1.4.18 ? It might not change anything but I have changed the regex around that are to be a bit "better". Ta

Zahrun commented 6 months ago

Logs from 1.4.18

teams-for-linux --webDebug --appLogLevels=error,info,warn,debug
[DEBUG] configPath:,/home/aroun/.config/teams-for-linux
[WARN] No config file found, using default values
[DEBUG] configFile:,[object Object]
[INFO] Running under Wayland, switching to PipeWire...
[DEBUG] Fetching custom background configuration from 'http://localhost/config.json'
[DEBUG] Custom background service url is 'http://localhost'
[DEBUG] processArgs:,/usr/lib/electron29/electron,/opt/teams-for-linux/app.asar,--webDebug,--appLogLevels=error,info,warn,debug
[DEBUG] Testing network using net.request() for https://teams.microsoft.com/
[DEBUG] Spellchecker is disabled!
[ERROR] net::ERR_CONNECTION_REFUSED
[DEBUG] Network test successful with method https
[63096:0404/200509.451019:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 1 times!
[63096:0404/200509.452373:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 2 times!
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[63017:0404/200509.570531:ERROR:CONSOLE(1)] "Request Autofill.enable failed. {"code":-32601,"message":"'Autofill.enable' wasn't found"}", source: devtools://devtools/bundled/core/protocol_client/protocol_client.js (1)
[DEBUG] did-frame-finish-load,[object Object],true
[DEBUG] did-finish-load
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[63096:0404/200511.703469:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 3 times!
[DEBUG] did-frame-finish-load,[object Object],false
[DEBUG] Badge count set to '0'
[DEBUG] did-frame-finish-load,[object Object],false
[DEBUG] did-frame-finish-load,[object Object],true
[DEBUG] did-finish-load
[DEBUG] did-frame-finish-load,[object Object],false
[DEBUG] did-frame-finish-load,[object Object],false
[63017:0404/200518.865603:ERROR:CONSOLE(1)] "Request Autofill.enable failed. {"code":-32601,"message":"'Autofill.enable' wasn't found"}", source: devtools://devtools/bundled/core/protocol_client/protocol_client.js (1)
[DEBUG] did-frame-finish-load,[object Object],false
[DEBUG] User status changed to '5'
[DEBUG] User status changed to '5'
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[DEBUG] second-instance started
[DEBUG] processArgs:,/usr/lib/electron29/electron,--allow-file-access-from-files,/opt/teams-for-linux/app.asar,msteams:/l/meetup-join/19:meeting_MzJlMDFlNGMtMGM5ZS00N2YwLThjMzctNzg5OWM2MGI4MGY5@thread.v2/0?context=%7b%22Tid%22%3a%222d54890f-18e3-4c70-97cd-bc1e5f21f9cb%22%2c%22Oid%22%3a%226e4e49a0-7b93-4cd0-a628-3b9b072ba7f5%22%7d&anon=true&deeplinkId=7758ab18-c6a9-477a-9f0d-6017bf54f40f&launchAgent=join_launcher&type=meetup-join&directDl=true&msLaunch=true&enableMobilePage=true&suppressPrompt=true&fqdn=teams.microsoft.com
[DEBUG] A url argument received with msteams protocol
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[DEBUG] did-frame-finish-load,[object Object],true
[DEBUG] did-finish-load
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[DEBUG] did-frame-finish-load,[object Object],true
[DEBUG] did-finish-load
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[DEBUG] did-frame-finish-load,[object Object],true
[DEBUG] did-finish-load
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[DEBUG] did-frame-finish-load,[object Object],false
[DEBUG] Badge count set to '0'
[DEBUG] did-frame-finish-load,[object Object],false
[DEBUG] User status changed to '5'
[DEBUG] User status changed to '5'
[DEBUG] did-frame-finish-load,[object Object],true
[DEBUG] did-finish-load
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
nerumo commented 6 months ago

In 1.4.27:

teams-for-linux https://... reloads the app content, but then ends up in the meeting join dialog. teams-for-linux msteams://... does not load, screen stays white.

[DEBUG] configPath:,/home/marco/.config/teams-for-linux
[DEBUG] configFile:,[object Object]
[INFO] Running under Wayland, switching to PipeWire...
[DEBUG] Adding electron CLI flag 'ozone-platform-hint' with value 'wayland'
[DEBUG] Adding electron CLI flag 'enable-features' with value 'WaylandWindowDecorations'
[DEBUG] Fetching custom background configuration from 'http://localhost/config.json'
[DEBUG] Custom background service url is 'http://localhost'
[DEBUG] processArgs:,/opt/teams-for-linux/teams-for-linux,msteams://teams.microsoft.com/l/meetup-join/19%3ameeting_YTBiNGFlYWItOTZmZC00YjUyLWIyMDEtZmE4NzRjNDY5NDdl%40thread.v2/0?context=%7b%22Tid%22%3a%225e2fa37d-0a53-49fb-a31a-0650e7079165%22%2c%22Oid%22%3a%22c321c62a-849b-4646-a261-04ca1d6a1058%22%7d,--appLogLevels=error,info,warn,debug
[DEBUG] A url argument received with msteams protocol
[DEBUG] Testing network using net.request() for https://teams.microsoft.com/
[DEBUG] Spellchecker is disabled!
[ERROR] Failed to fetch custom background remote configuration. net::ERR_CONNECTION_REFUSED
[163154:0418/080320.170742:ERROR:nss_util.cc(357)] After loading Root Certs, loaded==false: NSS error code: -8018
[DEBUG] Network test successful with method https
[163223:0418/080321.811724:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 1 times!
[DEBUG] did-frame-finish-load,[object Object],true
[DEBUG] did-finish-load
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[163223:0418/080325.761693:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 2 times!
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
[163223:0418/080407.337875:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 3 times!
[DEBUG] GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
chrisjdev commented 6 months ago

I'm sure this is probably only useful to me, but I found it will load the join meeting dialog without reloading the site if I loaded a msteams:// link with:

window.webContents.executeJavaScript(`
    function navigateAngularToMeeting() {
        const injector = window.angular.element(document.documentElement).injector();
        const rootScope = injector.get('$rootScope');
        const location = injector.get('$location');
        location.url('${url.substring(9, url.length)}');
        rootScope.$digest();
    }; navigateAngularToMeeting();
`);

I know this will probably break once MS stops supporting the AngularJS MS Teams site. And I'm running this on a Mac, so I'm not sure if this would even be helpful for AngularJS MS Teams on Linux.

IsmaelMartinez commented 5 months ago

@nerumo / @Zahrun , 1.4.27 create the "white/blank screen" to a few users but that was related to us updating the electron version. Are you able to try with 1.4.35 (latest) and see if you got the same problem?

Thanks @chrisjdev for the suggestion/workaround!

nerumo commented 5 months ago

I just tested with 1.4.37, it reloads the webview

ak2766 commented 5 months ago

Hi. I'm running Teams for Linux v1.4.37. Do I need to install the Redirector add on in Firefox?

I ask cause when I launch Teams for Linux, then navigate to the Calendar section, click Join with an ID, enter required Meeting ID and passcode and finally click Join meeting, I'm redirected away from the app and to the browser.

Teams Version ``` $ snap info teams-for-linux name: teams-for-linux summary: Teams for Linux publisher: ismael (ismaelmartinez) store-url: https://snapcraft.io/teams-for-linux contact: https://github.com/IsmaelMartinez/teams-for-linux license: unset description: | Unofficial Microsoft Teams client for Linux using Electron. It uses the Web App and wraps it as a standalone application using Electron. If you encounter any issues, please feel free to reach out to us through the GitHub repository provided in the contact information. We will do our best to try and help you. commands: - teams-for-linux snap-id: IIAJhVGfBhm393UTagoW5awtZlPDGqHd tracking: latest/stable refresh-date: 9 days ago, at 00:36 AEST channels: latest/stable: 1.4.37 2024-05-06 (584) 89MB - latest/candidate: ↑ latest/beta: ↑ latest/edge: 1.4.39 2024-05-15 (590) 89MB - installed: 1.4.37 (584) 89MB - ```
ak2766 commented 5 months ago

OK - this is very interesting.

If I login to Teams using my business email, it doesn't redirect after clicking the Join meeting button. However, if I login to Teams using my personal Hotmail account, it redirects...

I hope this helps you track the issue down...

EDIT: I might also add that after adding the Redirector addon to Firefox, I was prompted to select the handler. However, absolutely nothing happens after I select the script I created (${HOME}/bin/teamsfix) as suggested by @joh4nd further up as the handler.

ak2766 commented 5 months ago

Something else to note. Whenever I logout of my personal account and login to the business one, I always get this prompt - and there's no escaping switching as there's no cancel button:

image

It looks like there's a different version of something being loaded when logging in with the Hotmail account.

IsmaelMartinez commented 5 months ago

@ak2766 , thanks for reporting. On the 1st one if you try 'ctrl+click' it might just work, but I suspect it will not work as you probably need to authenticate in another "domain"

Regarding the redirector script, I wonder if that is because you are in teams v2. If that is the case you will probably need to add a /v2 after teams.microsoft.com but MS might have changed something else and that might not work.

For the last note, your company can decide to force you to teams-v2, while if you are in your personal account, is up to MS to do it. Hope helps!

Ryushin commented 5 months ago

Hi. I'm running Teams for Linux v1.4.37. Do I need to install the Redirector add on in Firefox?

I ask cause when I launch Teams for Linux, then navigate to the Calendar section, click Join with an ID, enter required Meeting ID and passcode and finally click Join meeting, I'm redirected away from the app and to the browser. Teams Version

I still use the Redirector add on to get the pop up to choose the program to open it with, then I point it to the shell script to convert msteams links back to https links that TFL can open:

at teams-for-linux-open-url.sh
#! /bin/bash

URL="${1/msteams/https}"
teams-for-linux --url $URL

TFL still can't seem to open up msteams links.

ak2766 commented 5 months ago

@IsmaelMartinez

@ak2766 , thanks for reporting. On the 1st one if you try 'ctrl+click' it might just work, but I suspect it will not work as you probably need to authenticate in another "domain"

Unfortunately, that did not work - it still redirected to the browser.

Regarding the redirector script, I wonder if that is because you are in teams v2. If that is the case you will probably need to add a /v2 after teams.microsoft.com but MS might have changed something else and that might not work.

This one is rather interesting in that if I disable the redirector script, the URL in the browser looks like this:

.../v2/?meetingjoin=true#/meet/<meetingId>?p=<passcode>&anon=true&deeplinkId=40e55111-40a7-4593-ac12-898eae1670a8

However, when I enable the redirector, the URL in the browser morphs into: .../meet/<meetingId>?p=<passcode>

EDIT:

For completeness sake, here's my redirector config: image

And here's the BASH script:

#!/bin/bash
logfile="/var/tmp/teamsfix.log"
exec &>${logfile}
set -x
URL="${1/msteams/https}"
teams-for-linux --url "$URL"
IsmaelMartinez commented 5 months ago

I suspect it is a teams-v2. The URLs have changed to add a V2 in between the domain and parameters.

That might have resulted in the ms stuff not understanding the redirect you are passing.

If you can provide logs for each of the cases, then it might show what is wrong, but I suspect it might just be a bit of tweaking of the config. Good luck

ak2766 commented 5 months ago

If you can provide logs for each of the cases, then it might show what is wrong, but I suspect it might just be a bit of tweaking of the config. Good luck

Not a big issue for me now since I have a corporate account login workaround. Will post the logs within the next couple of days.

ak2766 commented 5 months ago

I believe I have found the issue.

After reading this issue - https://github.com/IsmaelMartinez/teams-for-linux/issues/1156 - I noticed that whenever I logged in to Teams with my Hotmail account, the URL would be set to:

document.location.href
'https://teams.live.com/_#/conversations/?ctx=chat'

After following the instructions suggested by @christosnake, the URL is now showing up as:

document.location.href
'https://teams.live.com/v2/'

And now, joining a meeting with an ID no longer redirects to Teams in the browser.

ak2766 commented 5 months ago

Bummer. Looks like even with the localStorage option (see below), it reverts to the Classic URL (/_#/conversations/?ctx=chat) after I logging in and out of the corporate account!

window.localStorage.setItem("tmp.isOptedIntoT2Web", true)
document.location.href = 'https://teams.microsoft.com/v2/'

Looks like I'm stuck in a no win situation, albeit there are workarounds...

IsmaelMartinez commented 5 months ago

I suspect you might have found a wee reason for it.

The app only check for a specific MS URL as shown in here:

image

https://github.com/IsmaelMartinez/teams-for-linux/blob/develop/app/mainAppWindow/index.js#L227

I suspect that if we modify that to also check for the "teams.live.com" then it might start picking them up.

FYI, you can use the optInTeamsV2 and url config options instead of needing to need to run those commands in the browser each time. The optInTeamsV2 might also need to be tweak to allow for the other url in this line:

https://github.com/IsmaelMartinez/teams-for-linux/blob/develop/app/mainAppWindow/index.js#L141

Hope helps!

ak2766 commented 5 months ago

I already have this:

$ cat ~/.config/teams-for-linux/config.json
{
  "followSystemTheme": true,
  "optInTeamsV2": true,
  "url": "https://teams.microsoft.com/v2/",
  "useMutationTitleLogic": true
}

I wonder if maybe you'll need to cater to multiple URL's (or perhaps a regex) in the config now that you've identified the presence of teams.live.com in addition to teams.microsoft.com?

ak2766 commented 5 months ago

And I've just noticed that the snap version uses a different config path, namely: ~/snap/teams-for-linux/current/.config/teams-for-linux/config.json

Did I mention I hate snaps. I really really hate snaps... But as they are part and parcel of Ubuntu, resistance is futile...

EDIT: I see I got a thumbs down for this post. Please bear in mind that my distaste for snaps is pointed at Ubuntu for forcing the use of snaps and not at Teams-for-Linux.

IsmaelMartinez commented 5 months ago

aye, snap and flatpak put the config in different locations. See https://github.com/IsmaelMartinez/teams-for-linux/blob/develop/KNOWN_ISSUES.md#config-folder-locations

I invite anyone to try to make that regex work for both, and for the optInTeamsV2 to use the configured baseURL (so we can use either). I might try to do that later on the week, but it might need to wait depending on how many more issues get openned.

IsmaelMartinez commented 4 months ago

I added the "live" URL across the app. Can people test the 1.5.1 pre-release and see if it solves and/or improves this? Thanks!

Ryushin commented 4 months ago

I added the "live" URL across the app. Can people test the 1.5.1 pre-release and see if it solves and/or improves this? Thanks!

I installed the deb package. Afraid msteams links still don't open.

nerumo commented 4 months ago

I added the "live" URL across the app. Can people test the 1.5.1 pre-release and see if it solves and/or improves this? Thanks!

Same for me. It reloads the main window. Log file is attached

logs.txt

IsmaelMartinez commented 4 months ago

Oh well, I tried. One day...

jcszymansk commented 4 months ago

FWIW, I played with this a little, I noticed that when I manually copy the link from e-mail and run 'teams-for-linux link', it takes me to the meeting, but if I open link and let the browser execute teams-for-linux it wants me to login.

It turns, that MS appends some bullshit to the URL while making it a msteams:/ (yep, one slash) one.

A little fiddling, and this script works for me (and perhaps it'll help fix the issue :-) )

#!/usr/bin/env bash

URL="${1/msteams:\//https:\/\/teams.microsoft.com\/}"

#echo $1 >> ~/tmp/tt.log
#echo $URL >> ~/tmp/tt.log

if [[ "$URL" =~ ^https://teams.microsoft.com/ ]]; then
  REALURL=$(echo "$URL" | sed -e 's/&anon=.*$//g')
  exec teams-for-linux "$REALURL"
else
  exec firefox-developer-edition "$URL"
fi

and some last lines from the log:

https://teams.microsoft.com/l/meetup-join/19:meeting_CENSORED@thread.v2/0?context=%7b%22Tid%22%3a%22e721892eCENSORED%22%2c%22Oid%22%3a%22eaa112ecCENSORED%22%7d&anon=true&deeplinkId=4dc283bcCENSORED&launchAgent=join_launcher&type=meetup-join&directDl=true&msLaunch=true&enableMobilePage=true&suppressPrompt=true&fqdn=teams.microsoft.com
https://teams.microsoft.com/l/meetup-join/19%3ameeting_CENSORED%40thread.v2/0?context=%7b%22Tid%22%3a%22e721892eCENSORED%22%2c%22Oid%22%3a%22eaa112ecCENSORED%22%7d
https://teams.microsoft.com/l/meetup-join/19%3ameeting_CENSORED%40thread.v2/0?context=%7b%22Tid%22%3a%22e721892eCENSORED%22%2c%22Oid%22%3a%22eaa112ecCENSORED%22%7d
msteams:/l/meetup-join/19:meeting_CENSORED@thread.v2/0?context=%7b%22Tid%22%3a%22e721892eCENSORED%22%2c%22Oid%22%3a%22eaa112ecCENSORED%22%7d&anon=true&deeplinkId=62f93d36CENSORED&launchAgent=join_launcher&type=meetup-join&directDl=true&msLaunch=true&enableMobilePage=true&fqdn=teams.microsoft.com
https://teams.microsoft.com/l/meetup-join/19:meeting_CENSORED@thread.v2/0?context=%7b%22Tid%22%3a%22e721892eCENSORED%22%2c%22Oid%22%3a%22eaa112ecCENSORED%22%7d&anon=true&deeplinkId=62f93d36CENSORED&launchAgent=join_launcher&type=meetup-join&directDl=true&msLaunch=true&enableMobilePage=true&fqdn=teams.microsoft.com

The shortest ones are which, passed to teams-for-linux, open the meeting correctly.

IsmaelMartinez commented 4 months ago

Hello!

I have added another extra tweaks into 1.7.1 that "might" have help on this.

I don't really "hope" for much but letting you all know just in case it does help.

Meeting-links has always been a pain tbh.

nerumo commented 4 months ago

I looked at your code and finally realized what my problem is. The redirector changes https to msteams, but instead of invoking my script (which replaces the https back), it invokes teams-for-linux directly. The resulting url isn't a valid "teams://" url, as teams-for-linux expects it.

How did make the script the default handler for msteams?

Could teams-for-linux make the detection, if it's a manipulated/redirected "msteams://" url?

IsmaelMartinez commented 4 months ago

Try 1.7.1. it should, in theory, be able to handle it. But that implementation has always been a bit flaky.

nerumo commented 4 months ago

Try 1.7.1. it should, in theory, be able to handle it. But that implementation has always been a bit flaky.

My comment was based on 1.7.1. In the logs I see: image

It did a full apge reload and the meeting did not open

IsmaelMartinez commented 4 months ago

Did it change focus to the app? I think there are two behaviours depending if it comes from process arguments (running from the command line). Maybe we can change the login that only does the focus, but it might open a can of worms we don't want

joakim-tjernlund commented 3 months ago

I have these external invites where there is an link embedded into the msg(https://teams.microsoft.com/l/meetup-join/19%3ameeting_ ... ) and when I click on them nothing happens.

--webDebug --appLogLevels=error,info,warn,debug shows me when clicking on the link:

....
[DEBUG] testing RegExp onNewWindow true
[DEBUG] DEBUG - captured meetup-join url

Location is set to: Link in invite instead of Microsoft Teams Meeting

Tried 1.7.4, 1.6.1 and 1.4.39

joakim-tjernlund commented 3 months ago

Forgot, teams-for-linux will show the link but I cannot copy/select it It would be great if one could copy any embedded link and paste it anywhere else.

IsmaelMartinez commented 3 months ago

Hi @joakim-tjernlund, the not been able to copy is something we can't do much, ask Microsoft about this.

Thanks for sharing you also got the problem. I am not sure why this is happening but I believe MS does a lot of redirects between one an another making it quite confusing. If it works for one use case, it fails for the other. But we will get there.

alexconst commented 2 months ago

Hi

I'm using teams-for-linux 1.8.1 and I'm also having issues in joining a meeting either with the url or with meeting id.

If I run teams-for-linux --url 'https://teams.microsoft.com/l/meetup-join/19%3ameeting_xxxxxxxxxxxxxxxxxx%40thread.v2/0?context=%7b%22Tid%22%3a%xxxxxxxxx-xxxxxxxxx-xxxxxx-xxxxx-xxxxxx%22%2c%22Oid%22%3a%xxxx-xxxx-xxxxx-xxxx-xxxx%22%7d' it will start the application but then won't do anything.

And if I try to join with the meeting id (via the application join by id button) then it opens a new tab on my browser for that meeting.

This was in Debian 11 Bullseye

Thanks

edit: not sure if related to this but I saw this error:

[27255:0724/141245.620341:ERROR:cert_verify_proc_builtin.cc(1052)] CertVerifyProcBuiltin for wan.measure.office.com failed:
----- Certificate i=0 (CN=wan.measure.office.com,O=Microsoft Corporation,L=Redmond,ST=WA,C=US) -----
ERROR: Time is after notAfter

----- Certificate i=1 (CN=Microsoft Azure TLS Issuing CA 02,O=Microsoft Corporation,C=US) -----
ERROR: Time is after notAfter

[ERROR] An unexpected SSL error has occurred: net::ERR_CERT_DATE_INVALID
joakim-tjernlund commented 2 months ago

Hi @joakim-tjernlund, the not been able to copy is something we can't do much, ask Microsoft about this.

Thanks for sharing you also got the problem. I am not sure why this is happening but I believe MS does a lot of redirects between one an another making it quite confusing. If it works for one use case, it fails for the other. But we will get there.

Forgot to comment ...

To me this problem feels like captured meetup-join url is just ignoring the link? There are no more debug msgs or activity after that log msg.

seba7667 commented 2 months ago

I just installed the newest version and now I see that once I am trying to join the call I am redirected to the TFL but on the TFL I see only blue screen. I am using Ubuntu 22.04

EDIT I tested Edge version 1.9.0 and now I don't see blue screen but screen with information "Settings things up for you" and then is redirect to the chat instead of the call

IsmaelMartinez commented 2 months ago

hi @seba7667 , can you clear the cache and try again? Sometimes when an update includes a change of electron version it messes up with the cache.