EionRobb / purple-teams

A MS Teams plugin for libpurple/Pidgin (3rd party client)
GNU General Public License v3.0
157 stars 11 forks source link

Support Audio/Video Calls #6

Open ivy-rew opened 2 years ago

ivy-rew commented 2 years ago

Working in a company with employees all over the world, we use ms-teams video-call features quit often to stay in touch. What's more, this plugin is skyrocketing with new ms-teams supporting features. So, I'd finally ask for this last big blocker that prevents me from not starting the fat ms-teams client anymore on a regular basis: can we support calls with ms-teams?

I'd assume that real audio+video-call support is a major feature. And as far as I remember, the skype plugin never went that far. Not to mention that I can't think of a way to extend it with screen-sharing capabilities in pidgin.

However, It doesn't necessarily be a full feature call support. Maybe it could be solved with small steps:

  1. show a notification on incoming calls or started meetings (I could then quickly start the real teams app, and take the call there)
  2. post a link to the ms-teams web-client, where I can take the call: so my browser would fill the gab and setup voice/audio and even screen-sharing.
  3. .... later pidgin's native voice/audio supporting features could be used accept and initiate calls.
ivy-rew commented 2 years ago

Thanks a lot for the recent updates regarding incoming calls. Already, I see that call are arriving, what makes it convenient to open teams on demand.

A minor bug which seems related. On incoming new group-calls, the chat is being opened. And somehow images from the past are then viewed as most recent content. However, actually these images were part of last weeks chat contents. So there seems to be something weird involved how images are processed chatCall_restatesImages .

ivy-rew commented 2 years ago

Thanks @EionRobb : the bug with the re-stated images is gone. Call starts and ends are being properly reported. Do you see any chance to provide further audio/video call support features? Link to native client in web (2) or Pidgin audio call (3) support?

ivy-rew commented 2 years ago

Another minor effect with video-calls I'd include in this issue: after hanging up a call in the native ms-team client ... I'll always get another chat-tab with the following content. pidginCallLog

Can you omit that notification or include it in the chat, where the call actually was done? Here's how the real chat looks like: pidgin_groupCall

EionRobb commented 2 years ago

Do you see any chance to provide further audio/video call support features?

Definitely!

Link to native client in web

That would be amazing as a minimum-viable-product kinda thing. I haven't figured out the direct link to the call yet to be able to trigger the browser to open

or Pidgin audio call (3) support?

This might be possible using https://github.com/centricular/webrtcsink :) I need to implement a whoooollllle buncha websocket stuff first to be able to do this - which I'll need to do anyway to support live notification status updates

EionRobb commented 1 year ago

Latest version of the plugin has links to join the call once it's started. Better than nothing! Needs a bit of prettying up though, the bare url is a bit ugly.

Next I'll probably add in a /call slash command to generate the link too

jackorlando99 commented 1 year ago

Latest version of the plugin has links to join the call once it's started. Better than nothing! Needs a bit of prettying up though, the bare url is a bit ugly.

Next I'll probably add in a /call slash command to generate the link too

hi,

I tried the latest code but receiving calls are not working for me. Other parties reported I always unavailable when calling. I only see a tab with 48:callogs and a uid in it. What should I do to get the link to join the call?

Anyway your project is awesome, thanks a lot!

EionRobb commented 1 year ago

Unfortunately the event stream the plugin is subscribed to at the moment doesn't bring through the live call info (such as incoming direct calls), the most I could add in is a "You missed a call from XYZ" message in the IM window. Adding in the live call info needs to set up the reverse-webhook trouter websocket (bit of a mission!) which we also need for live user status updates.

Looks like the links don't show up for direct calls, but only for meetings that get started, so if the other person started a meeting then invited you in, there should be different behaviour?

EionRobb commented 8 months ago

Minor update: I've just added in support for the trouter websocket mentioned previously, so the events are being sent to Pidgin now - but they still dont display in the UI anywhere yet (other that the Help->Debug Window log screen)