Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

offline meetings meet URL in message body is ignored #1379

Open
joakim-tjernlund opened this issue Aug 23, 2024 · 29 comments
Open

offline meetings meet URL in message body is ignored #1379

joakim-tjernlund opened this issue Aug 23, 2024 · 29 comments

Comments

@joakim-tjernlund
Copy link

Describe the bug
Meetings marked non online but with a meet URL embedded in invite message area
are ignored. Clicking on such link does nothing.
To Reproduce
Steps to reproduce the behavior:

Receive a non online meeting with meet URL in invite msg area:

https://teams.microsoft.com/l/meetup-join/19%3ameeting_OWFmZDg2NWQtMzYwYS00YWRhLTg5NzEtZ...

Click on link to open meeting and noting happens.

Desktop (please complete the following information):

  • OS: Gentoo
  • Installation package [ tar.gz ]
  • Version [ all up to and including 1.9.4 ]

Debug

teams-for-linux --optInTeamsV2 --url=https://teams.microsoft.com/v2 --logConfig={}
No config file found, using default values
all good with appLogLevels you aren't using them
Initialising logger with config: "{}"
Logger initialised with transports: {}
14:45:38.916 › File logging at /home/jocke/.config/teams-for-linux/logs/main.log with level silly
14:45:38.917 › Console logging enabled with level silly
14:45:38.917 › Logger initialised
14:45:38.917 › configPath: /home/jocke/.config/teams-for-linux
14:45:38.917 › configFile: {}
14:45:39.165 › processArgs: [
  '/opt/teams-for-linux/teams-for-linux',
  '--optInTeamsV2',
  '--url=https://teams.microsoft.com/v2',
  '--logConfig={}'
]
14:45:39.166 › testing RegExp processArgs false
14:45:39.166 › testing RegExp processArgs false
14:45:39.166 › testing RegExp processArgs false
14:45:39.166 › testing RegExp processArgs false
14:45:39.167 › Testing network using net.request() for https://teams.microsoft.com/v2
14:45:39.168 › Spellchecker is disabled!
[1107927:0823/144539.172656:ERROR:viz_main_impl.cc(198)] Exiting GPU process due to errors during initialization
[1107880:0823/144539.312041:ERROR:browser_main_loop.cc(280)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
[1107880:0823/144539.312144:ERROR:browser_main_loop.cc(280)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
[1107880:0823/144539.312167:ERROR:browser_main_loop.cc(280)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
[1107880:0823/144539.312187:ERROR:browser_main_loop.cc(280)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
[1107880:0823/144539.312751:ERROR:browser_main_loop.cc(280)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
[1107990:0823/144539.429421:ERROR:viz_main_impl.cc(198)] Exiting GPU process due to errors during initialization
14:45:39.765 › Network test successful with method https
14:45:40.395 › GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
14:45:40.839 › did-frame-finish-load {} true
14:45:40.839 › did-finish-load
14:45:41.786 › Badge count set to '0'
14:45:41.795 › Badge count set to '0'
14:45:42.321 › Badge count set to '0'
14:45:43.508 › did-frame-finish-load {} false
14:45:46.089 › Badge count set to '0'
14:45:50.491 › GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'locked'
14:45:58.135 › Badge count set to '0'
14:46:00.496 › GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'locked'
14:46:01.889 › testing RegExp onNewWindow true
14:46:01.889 › DEBUG - captured meetup-join url

Additional context
Pasting the URL in chat window and clicking on joins the meeting proper

@IsmaelMartinez
Copy link
Owner

Hi @joakim-tjernlund ,

Can you try triggering the meeting link in a second instance? Meaning, while this instance is working, you run another one from the command line like this:

teams-for-linux 'https://teams.microsoft.com/l/meetup-join/19%3ameeting_OWFmZDg2NWQtMzYwYS00YWRhLTg5NzEtZ...'

Also, it looks like you got some gpu issues so I would suggest you run your main instance with --disableGpu option. That should get rid of the following errors:

[1107927:0823/144539.172656:ERROR:viz_main_impl.cc(198)] Exiting GPU process due to errors during initialization
[1107880:0823/144539.312041:ERROR:browser_main_loop.cc(280)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
[1107880:0823/144539.312144:ERROR:browser_main_loop.cc(280)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
[1107880:0823/144539.312167:ERROR:browser_main_loop.cc(280)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
[1107880:0823/144539.312187:ERROR:browser_main_loop.cc(280)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
[1107880:0823/144539.312751:ERROR:browser_main_loop.cc(280)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
[1107990:0823/144539.429421:ERROR:viz_main_impl.cc(198)] Exiting GPU process due to errors during initialization

If you then can put the logs in here and let me know what happens that would be great. If that works, it means the problem is in your application handler config.

@IsmaelMartinez
Copy link
Owner

I really think is going to be the x-scheme-handler . I suspect you haven't configure that and you would need to do this in order to get it to work with tar.gz. You should be fine if you use any of the other packaging systems provided, but let me know how you get on

@joakim-tjernlund
Copy link
Author

Hi @joakim-tjernlund ,

Can you try triggering the meeting link in a second instance? Meaning, while this instance is working, you run another one from the command line like this:

teams-for-linux 'https://teams.microsoft.com/l/meetup-join/19%3ameeting_OWFmZDg2NWQtMzYwYS00YWRhLTg5NzEtZ...'

Yes I can, then the meeting opens in Teams

Also, it looks like you got some gpu issues so I would suggest you run your main instance with --disableGpu option. That should get rid of the following errors:

Naa, I was just running from a remote machine. No GPU problems when stating locally.

[1107927:0823/144539.172656:ERROR:viz_main_impl.cc(198)] Exiting GPU process due to errors during initialization
[1107880:0823/144539.312041:ERROR:browser_main_loop.cc(280)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
[1107880:0823/144539.312144:ERROR:browser_main_loop.cc(280)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
[1107880:0823/144539.312167:ERROR:browser_main_loop.cc(280)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
[1107880:0823/144539.312187:ERROR:browser_main_loop.cc(280)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
[1107880:0823/144539.312751:ERROR:browser_main_loop.cc(280)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
[1107990:0823/144539.429421:ERROR:viz_main_impl.cc(198)] Exiting GPU process due to errors during initialization

If you then can put the logs in here and let me know what happens that would be great. If that works, it means the problem is in your application handler config.

teams-for-linux 
No config file found, using default values
all good with appLogLevels you aren't using them
Initialising logger with config: "{}"
Logger initialised with transports: {}
15:24:58.373 › File logging at /home/jocke/.config/teams-for-linux/logs/main.log with level silly
15:24:58.374 › Console logging enabled with level silly
15:24:58.374 › Logger initialised
15:24:58.374 › configPath: /home/jocke/.config/teams-for-linux
15:24:58.374 › configFile: {}
15:24:58.537 › processArgs: [
  '/opt/teams-for-linux/teams-for-linux',
  '--lite-mode',
  '--optimize-for-size'
]
15:24:58.538 › testing RegExp processArgs false
15:24:58.538 › testing RegExp processArgs false
15:24:58.538 › testing RegExp processArgs false
15:24:58.539 › Testing network using net.request() for https://teams.microsoft.com
15:24:58.540 › Spellchecker is disabled!
[4160454:0823/152458.667250:ERROR:browser_main_loop.cc(280)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
[4160454:0823/152458.667338:ERROR:browser_main_loop.cc(280)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
[4160454:0823/152458.667355:ERROR:browser_main_loop.cc(280)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
[4160454:0823/152458.667372:ERROR:browser_main_loop.cc(280)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
[4160454:0823/152458.667803:ERROR:browser_main_loop.cc(280)] Gtk: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
15:24:59.115 › Network test successful with method https
15:24:59.758 › GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
15:25:00.238 › did-frame-finish-load {} true
15:25:00.239 › did-finish-load
15:25:01.224 › Badge count set to '0'
15:25:01.232 › Badge count set to '0'
15:25:01.774 › Badge count set to '0'
15:25:02.974 › did-frame-finish-load {} false
15:25:04.307 › did-frame-finish-load {} false
15:25:05.737 › did-frame-finish-load {} false
15:25:09.857 › GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
15:25:19.859 › GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
15:25:25.466 › second-instance started
15:25:25.466 › processArgs: [
  'teams-for-linux',
  '--lite-mode',
  '--optimize-for-size',
  '--url',
  '--allow-file-access-from-files',
  '--try-supported-channel-layouts',
  '--disable-features=HardwareMediaKeyHandling',
  '--auth-server-whitelist=*',
  '--enable-ntlm-v2=true',
  'https://teams.microsoft.com/l/meetup-join/19%3ameeting_OWFmZDg2NWQtMzYwYS00YWRhLTg5NzEtZjFkOGIxYTk5ZWYw%40thread.v2/0?context=%7b%22Tid%22%3a%22285643de-5f5b-4b03-a153-0ae2dc8aaf77%22%2c%22Oid%22%3a%2208355c52-f240-4a77-ae47-be43856328d4%22%7d'
]
15:25:25.466 › testing RegExp processArgs false
15:25:25.467 › testing RegExp processArgs false
15:25:25.467 › testing RegExp processArgs false
15:25:25.467 › testing RegExp processArgs false
15:25:25.467 › testing RegExp processArgs false
15:25:25.467 › testing RegExp processArgs false
15:25:25.467 › testing RegExp processArgs false
15:25:25.467 › testing RegExp processArgs false
15:25:25.467 › testing RegExp processArgs false
15:25:25.467 › testing RegExp processArgs true
15:25:25.467 › A url argument received with https protocol
15:25:25.751 › GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
15:25:26.010 › did-frame-finish-load {} true
15:25:26.011 › did-finish-load
15:25:26.145 › GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
15:25:26.703 › did-frame-finish-load {} true
15:25:26.704 › did-finish-load
15:25:27.677 › Badge count set to '0'
15:25:28.294 › did-frame-finish-load {} false
15:25:28.983 › Badge count set to '0'
15:25:29.104 › Badge count set to '0'
15:25:36.148 › GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'
15:25:46.151 › GetSystemIdleState => IdleTimeout: 300s, IdleTimeoutPollInterval: 10s, ActiveCheckPollInterval: 2s, IdleTime: 0s, IdleState: 'active'

how should my apphandler config look like?

@IsmaelMartinez
Copy link
Owner

It really depends on your configuration but there are a few examples on the closed issues, just look for x-scheme-handler/msteams

#959 (comment)

@joakim-tjernlund
Copy link
Author

It really depends on your configuration but there are a few examples on the closed issues, just look for x-scheme-handler/msteams

#959 (comment)

I have:

 xdg-mime query default x-scheme-handler/msteams
teams-for-linux.sh-teams-for-linux.desktop
jocke@se-jocke-lx ~ $ cat /usr/share/applications/teams-for-linux.sh-teams-for-linux.desktop
[Desktop Entry]
Name=Teams for Linux
Type=Application
Comment=Unofficial Microsoft Teams client for Linux. Binary precompiled version.
Exec=/opt/teams-for-linux/teams-for-linux.sh
TryExec=/opt/teams-for-linux/teams-for-linux.sh
Icon=teams-for-linux
Categories=Network;Chat;InstantMessaging;
MimeType=x-scheme-handler/msteams;

cat /opt/teams-for-linux/teams-for-linux.sh
#!/bin/bash

# Allow the user to override command-line flags, bug #357629.
# This is based on Debian's chromium-browser package, and is intended
# to be consistent with Debian.
for f in /etc/chromium/*.sh; do
    [[ -f ${f} ]] && source "${f}"
done

# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system
# default CHROMIUM_FLAGS (from /etc/chromium/default).
CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-"$CHROMIUM_FLAGS"}

# Let the wrapped binary know that it has been run through the wrapper.
export CHROME_WRAPPER="$(readlink -f "$0")"

HERE="$(dirname "$CHROME_WRAPPER")"

exec -a "teams-for-linux" "$HERE/teams-for-linux" ${CHROMIUM_FLAGS} "$@"

Does that look OK? Am I missing something for URLs starting with https://teams.microsoft.com/l/meetup-join/

@IsmaelMartinez
Copy link
Owner

I think you need to pass the %U in the EXEC.

Something like Exec=/opt/teams-for-linux/teams-for-linux.sh %U

Not sure if you need the same on the "TryExec" but you probably also do.

Otherwise you aren't passing the meeting URL

@joakim-tjernlund
Copy link
Author

I just did and it did not work, still nothing. I wonder, this is just an
https://teams... link in msg windows, how does xdg know that that is a Teams URL ?

There must be something missing here

@IsmaelMartinez
Copy link
Owner

I suspect it is in within your script. Something is eating the url to send to the binary. without it, it just doesn't send anything.

Maybe that exec -a "teams-for-linux" "$HERE/teams-for-linux" ${CHROMIUM_FLAGS} "$@" is not including the url. it should work with either https or msteams.

@joakim-tjernlund
Copy link
Author

I suspect it is in within your script. Something is eating the url to send to the binary. without it, it just doesn't send anything.

Maybe that exec -a "teams-for-linux" "$HERE/teams-for-linux" ${CHROMIUM_FLAGS} "$@" is not including the url. it should work with either https or msteams.

Changed that to Exec=/opt/teams-for-linux/teams-for-linux %U which is the true ELF binary
Didn't work.

@IsmaelMartinez
Copy link
Owner

IsmaelMartinez commented Aug 23, 2024 via email

@joakim-tjernlund
Copy link
Author

What happens if you change the https for msteams on that command?

It opens the meeting in teams-for-linux.

Thinking some more, if I pasted URL into chat window, it works too.
Why would there be a difference between clicking a link in a calendar and chat windows.
If Calandar really did something there should be some more log msgs after:
´DEBUG - captured meetup-join url´
log should probably be similar to clicking the chat link.

@IsmaelMartinez
Copy link
Owner

IsmaelMartinez commented Aug 23, 2024 via email

@IsmaelMartinez IsmaelMartinez changed the title meet URL in message body is ignored meet URL in message body is ignored - in calendar view Aug 23, 2024
@IsmaelMartinez IsmaelMartinez added the known issue/workaround Workaround available in the know_issues.md file label Aug 23, 2024
@joakim-tjernlund
Copy link
Author

Oh, calendar events are weird. You might be able to work around them by ctrl+click them. It will open the browser but, if the redirect is well configured it should load the app with the right meeting. Otherwise you can copy/paste click. Not ideal but it should also work. I will see if I get some time to look into that but the amount of people using the app only grows, while the people helping goes down... And I have a work to do a side from this!! I will mark it as workaround available but keep it open (so I don't forget)

1.9.5 Ctrl+Click don't work
Copy&Paste does not work in teams, I have to tease out the URL via Evolution, then i can paste into teams chat.
This would normally not be a problem but i have a bunch of users(I do this for work) and I get grief for these meetings

@IsmaelMartinez
Copy link
Owner

oh wait, I just re-read the ticket and non online meetings aren't suppose to have a meeting link (I am surprised you got some sort of link) as they are meant to be offline (in person).

If you need people to join a call in teams, the meeting needs to be online. Is a feature by Microsoft, so not much we can do on that.

I remember having a similar problem in the company I work for, but the administrators changed the default to be always online meetings (instead of offline) and made a lot of people happy. Not sure where that option is but I can see there is nothing we can do from here to make offline meetings having an online capabilities.

Closing as no-issue, but feel free to correct me if this is not for non-online meetings.

@IsmaelMartinez IsmaelMartinez added question Further information is requested wontfix This will not be worked on not an issue Not really an issue or not much we can do here and removed known issue/workaround Workaround available in the know_issues.md file labels Aug 24, 2024
@IsmaelMartinez IsmaelMartinez changed the title meet URL in message body is ignored - in calendar view offline meetings meet URL in message body is ignored Aug 24, 2024
@joakim-tjernlund
Copy link
Author

oh wait, I just re-read the ticket and non online meetings aren't suppose to have a meeting link (I am surprised you got some sort of link) as they are meant to be offline (in person).

If you need people to join a call in teams, the meeting needs to be online. Is a feature by Microsoft, so not much we can do on that.

I remember having a similar problem in the company I work for, but the administrators changed the default to be always online meetings (instead of offline) and made a lot of people happy. Not sure where that option is but I can see there is nothing we can do from here to make offline meetings having an online capabilities.

Closing as no-issue, but feel free to correct me if this is not for non-online meetings.

That might have been the original idea with such meetings but then someone added a meet link inside the msg text.
Anyhow, every other teams client can open these meetings but Teams-for-linux so I think you will have to do the same.

Our company/partners send these or a regular basis so it would be nice if it worked.

@joakim-tjernlund
Copy link
Author

I think I figured out why these invites are like this.
Invite is a mass invite, like a seminar for all people in an org, sent by an external partner.
Not everyone has Teams installed etc. so this format ensures that all can easily join the meeting.

@IsmaelMartinez
Copy link
Owner

IsmaelMartinez commented Aug 24, 2024 via email

@joakim-tjernlund
Copy link
Author

joakim-tjernlund commented Aug 25, 2024

Here is an screenshot of such invite:
image

Clicking one that link will not do anything, one will just see the;
DEBUG - captured meetup-join url
and nothing more.

I could try make a similar invite to you but then I need your MS teams user ID

@IsmaelMartinez
Copy link
Owner

have you tried with the redirector workaround from #1098 (comment) ?

I assume looking in the calendar that teams provide, the links should work as expected. Can you confirm that? Thanks

@joakim-tjernlund
Copy link
Author

I don't expect this MS Teams meeting link to be redirected to my browser. Instead it should open the
meeting in teams-for-linux.

Consider this, I have pasted the same MS link into my chat window:
image

and when I click on that link I go directly to the meeting:
image

@joakim-tjernlund
Copy link
Author

For fun I did:

diff --git a/app/mainAppWindow/index.js b/app/mainAppWindow/index.js
index ca5f934..a921260 100644
--- a/app/mainAppWindow/index.js
+++ b/app/mainAppWindow/index.js
@@ -266,6 +266,7 @@ function onNewWindow(details) {
        console.debug(`testing RegExp onNewWindow ${new RegExp(config.meetupJoinRegEx).test(details.url)}`);
        if (new RegExp(config.meetupJoinRegEx).test(details.url)) {
                console.debug('DEBUG - captured meetup-join url');
+               window.loadURL(details.url, { userAgent: config.chromeUserAgent });
                return { action: 'deny' };
        } else if (details.url === 'about:blank' || details.url === 'about:blank#blocked') {
                // Increment the counter

and that open the same window as above:
image
but it is not quite right anyhow as closing the window get me some edit meeting details

@IsmaelMartinez IsmaelMartinez removed question Further information is requested wontfix This will not be worked on not an issue Not really an issue or not much we can do here labels Aug 27, 2024
@IsmaelMartinez
Copy link
Owner

I will see when I can have more time to dig into this. Unfortunately that "new page" is called a bunch of times and adding a loading there would break a few things. I think screensharing been one of them, but I might be wrong as that area hasn't been properly touched for a few years.

@joakim-tjernlund
Copy link
Author

Any news on this issue?

@IsmaelMartinez
Copy link
Owner

IsmaelMartinez commented Oct 1, 2024

No updates, sorry. I have tried for a few days but with no luck so far.

Copy link

github-actions bot commented Nov 1, 2024

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.

@github-actions github-actions bot added the Stale label Nov 1, 2024
@joakim-tjernlund
Copy link
Author

This is still a problem.

It is odd though that one can expand a normal Teams meeting and click 'Join the meeting now' and
that works.

@github-actions github-actions bot removed the Stale label Nov 2, 2024
@IsmaelMartinez
Copy link
Owner

Microsoft treats them differently as one is an offline meeting that can happen outside of MS Teams. I don't know their reasoning

@joakim-tjernlund
Copy link
Author

Microsoft treats them differently as one is an offline meeting that can happen outside of MS Teams. I don't know their reasoning

yes it is odd, but using Chrome I can click this URL and it just works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants