- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 648
 
When state says you've left ongoing call, rejoin #4342
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
Conversation
5156800    to
    fac4f49      
    Compare
  
    fac4f49    to
    a4ce523      
    Compare
  
    | 
           Marking as draft until test coverage is added. Local testing is also hitting some strange behaviour.  | 
    
a4ce523    to
    e96ad3e      
    Compare
  
    | 
           This doesn't yet fully work in widget mode + Element Web (and potentially other clients). EW terminates the widget when it detects that there are no members left in a call. So, if there's only one person left in a call and their membership is lost (such as by a missed heartbeat), EW will close the widget before EC has a chance to restore the membership. A naive solution could be to make EW simply wait a few seconds for an "empty" session to become non-empty. Ideally it could examine Livekit state (if that's even possible). But EW does need to know when a call is empty, because AFAICT that's how it clears the entry in the room preview bar.  | 
    
| 
           I've made this depend on #4494 because without it, attempts to restore membership state are likely to get rate-limited.  | 
    
When receiving a state change that says you are no longer a member of a RTC session that you are actually still participating in, send another state event to put yourself back in the session membership. This can happen when an administrator overwrites your call membership event (which is allowed even with MSC3757's restrictions on state), or if your delayed disconnection event (via MSC4140) timed out before your client could send a heartbeat to delay it further.
e96ad3e    to
    d69b075      
    Compare
  
    | 
           Albeit not fully working for embedded mode, this is still a step in the right direction IMO.  | 
    
* Add matrix_rtc_session config options * Bump js-sdk matrix-org/matrix-js-sdk@6971e7b...fcb69b1 Also brings in: - matrix-org/matrix-js-sdk#4342 - matrix-org/matrix-js-sdk#4494
* When state says you've left ongoing call, rejoin When receiving a state change that says you are no longer a member of a RTC session that you are actually still participating in, send another state event to put yourself back in the session membership. This can happen when an administrator overwrites your call membership event (which is allowed even with MSC3757's restrictions on state), or if your delayed disconnection event (via MSC4140) timed out before your client could send a heartbeat to delay it further. * Don't emit state changed on join recovery
When receiving a state change that says you are no longer a member of a RTC session that you are actually still participating in, send another state event to put yourself back in the session membership.
This can happen when an administrator overwrites your call membership event (which is allowed even with MSC3757's restrictions on state), or if your delayed disconnection event (via MSC4140) timed out before your client could send a heartbeat to delay it further.
Signed-off-by: Andrew Ferrazzutti [email protected]
Checklist
public/exportedsymbols have accurate TSDoc documentation.