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

MSC3401 Group Calls #2355

Closed
wants to merge 232 commits into from
Closed

MSC3401 Group Calls #2355

wants to merge 232 commits into from

Conversation

dbkr
Copy link
Member

@dbkr dbkr commented May 9, 2022

This is #1902 with the changes from develop merged in and updated to new TypedEventEmitter, etc.

As of yet, only briefly tested.


Here's what your changelog entry will look like:

✨ Features

robertlong and others added 9 commits February 25, 2022 09:48
Seems chrome at least will give you a disabled audio track if you
already had another user media audio track and disabled it, so make
sure our tracks are enabled when we add them. We already did this
on one code path but it didn't get moved over when a new code path
was added.

On the plus side, we now know the reason for the ancient code that
had the comment asking what it was for, so update that.
If a renogotiation ends up with one track being removed, we removed
the whole stream, which would cause us to lose, for example, audio
rather than just video.
* Add PTT call mode & mute by default in PTT calls (#2311)

No other parts of PTT calls implemented yet

* Make the tests pass again (#2316)

3280394
made call use a bunch of methods that weren't mocked in the tests.

* Add maximum trasmit time for PTT (#2312)

on sender side by muting mic after the max transmit time has elapsed.

* Don't allow user to unmute if another user is speaking  (#2313)

* Add maximum trasmit time for PTT

on sender side by muting mic after the max transmit time has elapsed.

* Don't allow user to unmute if another user is speaking

Based on #2312
For element-hq/element-call#298

* Fix createGroupCall arguments (#2325)

Comma instead of a colon...
as I can't work out why it was needed, so I can't justify keeping
it in the group calls merge. It should be PRed to develop separately
if needed.
@SimonBrandner SimonBrandner self-requested a review May 10, 2022 04:22
@t3chguy
Copy link
Member

t3chguy commented May 10, 2022

Does this supercede #1902?

@dbkr
Copy link
Member Author

dbkr commented May 10, 2022

Yeah, I'll close 1902.

@dbkr dbkr mentioned this pull request May 10, 2022
8 tasks
dbkr and others added 6 commits May 11, 2022 16:31
This was also in Element Call, and whilst js-=sdk might be a more
sensible place, EC has all the information to do it properly (this
impl didn't take admin talk-over into account).
await on the async operation so the promise we return resolves once
everything's actuall complete
Fetch the device info once at the start of the cal and cache it
rather than fetching every time, and throw if we're supposed to be
using e2e but the other end has no e2e keys.
This waits until the mute metadata update is sent to all the calls
before telling the user they're unmuted, when in PTT mode (and only
when starting to talk, ie. unmuting). This should help avoid situations
where the signalling connection is slow enough that the unmute event
takes long enough to reach the other side that you hear someone speak
before they've apparently unmuted.

Involves splitting out the method to send the metadata update.
When we lose ICE connection to peers, set the status of their feeds
to muted so to end their talking session.

For element-hq/element-call#331
@dbkr
Copy link
Member Author

dbkr commented Jul 29, 2022

We move doff this branch, so closing this to open a new PR from robertlong/group-call.

@dbkr dbkr closed this Jul 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants