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

Port VideoChannelUtils to MSC3401 #22957

Closed
robintown opened this issue Jul 29, 2022 · 3 comments · Fixed by matrix-org/matrix-react-sdk#9131
Closed

Port VideoChannelUtils to MSC3401 #22957

robintown opened this issue Jul 29, 2022 · 3 comments · Fixed by matrix-org/matrix-react-sdk#9131
Assignees
Labels
A-Element-Call Group calls via Element Call A-Video-Rooms Persistent group calls A-VoIP O-Occasional Affects or can be seen by some users regularly or most users rarely S-Minor Impairs non-critical functionality or suitable workarounds exist T-Task Tasks for the team like planning Z-Labs

Comments

@robintown
Copy link
Member

As a preparatory task for integrating Element Call into Element Web, the utilities from the VideoChannelUtils file need to be ported to work with MSC3401, in addition to the proprietary io.element.video events that we use today for video rooms. I would suggest putting the MSC3401 versions of these utilities in a file called GroupCallUtils.

Since Element Call is already doing some of the work for us, not all of the utilities need to have MSC3401 versions. The only ones that will be used within the react-sdk, are:

  • getVideoChannel (should probably be named getGroupCall, and return the active m.call event)
  • useConnectedMembers (needs to take the m.call event as an input in order to find the associated m.call.member events)
  • removeOurDevice
  • fixStuckDevices

These should all be accompanied by unit tests.

Since these functions will need to inspect m.call and m.call.member events, but the types for them are sitting in the unmerged robertlong/group-call branch of the js-sdk, it's okay if those type declarations get duplicated in the react-sdk. Once we finish merging the group call branch back into mainline, we can remove those redundancies, but we just need something to build off of for the moment.

@robintown robintown added T-Task Tasks for the team like planning A-VoIP A-Video-Rooms Persistent group calls A-Element-Call Group calls via Element Call labels Jul 29, 2022
@weeman1337 weeman1337 added S-Minor Impairs non-critical functionality or suitable workarounds exist O-Occasional Affects or can be seen by some users regularly or most users rarely labels Jul 29, 2022
@weeman1337
Copy link
Contributor

weeman1337 commented Aug 3, 2022

Hi @robintown I wonder how fixStuckDevices is supposed to work. According to the spec there is no last seen per device any more. Instead there is an m.expires_ts for the entire m.call.member state. Maybe you have an idea?

@robintown
Copy link
Member Author

You should still be able to call await client.getDevices(); and then look for the last_seen_ts on each, right? That shouldn't've changed with MSC3401.

@robintown
Copy link
Member Author

Both the io.element.video.member events and the m.call.member events have a single expires_ts value in their content, so the logic should be practically the same

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Element-Call Group calls via Element Call A-Video-Rooms Persistent group calls A-VoIP O-Occasional Affects or can be seen by some users regularly or most users rarely S-Minor Impairs non-critical functionality or suitable workarounds exist T-Task Tasks for the team like planning Z-Labs
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants