Skip to content

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

Description

@hpk42

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 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething is not working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions