chatmail / chatmail/core

Document, test and fix call-related messages/events for multi-device caller/callee

Open
#8,635 1 comment 0 reactions 1 assignee Claimed by @link2xt View on GitHub
bug
Dominant language
Rust
Stars
929
Forks
143
Avg merge
1d 20h
Merged PRs (30d)
53

Description

There are ongoing call-related issues/PRs at #8631 #8633 #7840 #8576 and several older closed ones, including #7842, whose fix (#7946) is what #8633 now may partly revert?

I find it pretty hard to understand what's actually going on, on all the participating devices of caller/callees. There is some summarizing documentation in [deltachat.h](https://github.com/chatmail/core/blob/693c40426662c6f1f310bcab2975d38eb192d9ef/deltachat-ffi/deltachat.h#L1119-L1171) but it talks about parties, not devices. Still the best we have currently, but it may have drifted from the code (it eg says ringing timeout is "after 1 minute" while `RINGING_SECONDS` is 120).

The lack of a comprehensive overview and joint understanding stating invariants, mechanisms, and the sending/receiving of call related messages, makes it hard for me to review PR #8633 so i suggest:

- [ ] `calls.rs` grows a module docstring, where both core and UI developers can understand what's going on in multi-device calls on both sides, including core-internal state changes, events and wire messages. Even if some code lives in the receiving and sending rust code, `calls.rs` should still provide a comprehensive reference.

- [ ] `calls_tests.rs` covers all accept/decline/ended cases on both the "active" caller/callee devices and their other devices, to begin to develop certainty that things work as expected.

I suspect working on this issue will also involve fixing things, but even if not, we need a joint understanding, so everyone can go to one place to understand the mechanics and events.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.