hydrogen-web
hydrogen-web copied to clipboard
Calls MVP
Take #705 and iron all the remaining bugs. Part of #659
Remaining tasks:
- [x] fix second dial in where other side should call us, m.call.anwser gets queued rather than handled immediately because on one side the seq counter gets reset but the max seq isn't on the receiving side.
- [ ] before fixing the stream id bug, localmedia ownership was clear(er), member owned it and peercall didn't dispose it. But now, it's not so clear anymore because we modify the original stream in peercall by moving the tracks from the new stream back to the old stream, so member won't find the tracks there anymore when disposing.
- [ ] prevent olm encryption from running out of wasm heap memory by implementing SessionLoader, akin to KeyLoader for megolm
- [x] don't talk to expired members, see https://github.com/matrix-org/matrix-spec-proposals/pull/3401/commits/7a06ed7897586e364bb55a05e2515bf5cef4083d and https://github.com/matrix-org/matrix-react-sdk/pull/8776
- [ ] hangup when peerCall.call() fails?
- [ ] remove waitFor (don't think it is used)
- [ ] implement to_device messages arriving before m.call state event (only for m.call.invite arriving before invite so far?)
- [ ] Better error handling: implement GroupCall.error and ensure we don't have any uncaught exceptions by defining all the "root" call paths (e.g. event handlers and public methods? none of which should throw). Should we also have an error prop on the member so we could show in better in the UI?
- [ ] anticipate things throwing better and ensure it at least doesn't spill over to other members
- [ ] test between H & EC and H & H
- [x] camera is not release while in call and going back to sessionpicker screen. session dispose does not disconnect from call?
Also consider whether falling back to non-encrypted to-device message is a good idea: https://github.com/vector-im/hydrogen-web/blob/bwindels/calls/src/matrix/calls/group/Member.ts#L234
https://github.com/matrix-org/thirdroom/issues/276 seems related to the first remaining task about the second dial-in.
closed in favor of: https://github.com/vector-im/hydrogen-web/issues/946