-
-
Notifications
You must be signed in to change notification settings - Fork 115
add call ringing API #6650
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
add call ringing API #6650
Conversation
c8774c5 to
d5ec416
Compare
1c8ecc6 to
05852bb
Compare
3dd8188 to
3c99e8f
Compare
66b797a to
d1bc5f4
Compare
5d47297 to
e660546
Compare
|
Python tests are broken because in Somehow incoming video chat invitation in EDIT: the test itself is broken, it sends an invitation without setting a room. |
… setting a room; this was always wrong
|
@link2xt thanks again, i tried to target the additional comments and suggestions as well |
a dedicated viewtype allows the UI to show a more advanced UI, but even when using the defaults, it has the advantage that incoming/outgoing and the date are directly visible. successor of #6650
this PR uses the initial "call messages" (that has a separate viewtype since #7174) to show all call status. this is what most other messengers are doing as well. additional "info messages" after a call are no longer needed. on the wire, as we cannot pickpack on visible info messages, we use hidden messages, similar to eg. webxdc status updates. in future PR, it is planned to allow getting call state as a json, so that UI can render nicely. it is then decided if we want to translate the strings in the core. <img width="320" alt="IMG_0150" src="https://github.com/user-attachments/assets/41ee3fa3-8be4-42c3-8dd9-d20f49881650" /> successor of #6650
- sync declined calls from callee to caller, as usual in all larger
messengers
- introduce the call states "Missed call", "Declined call" and
"Cancelled all" ("Ended call" is gone)
- allow calling end_call()/accept_call() for already ended/accepted
calls, in practise, handling all cornercases is tricky in UI - and the
state needs anyways to be tracked.
- track and show the call duration
the duration calculation depends on local time, but it is displayed only
coarse and is not needed for any state. this can be improved as needed,
timestamps of the corresponding messages are probably better at some
point. or ending device sends its view of the time around. but for the
first throw, it seems good enough
if we finally want that set of states, it can be exposed to a json-info
in a subsequent call, so that the UI can render it more nicely. fallback
strings as follows will stay for now to make adaption in other UI easy,
and for debugging:
<img width="320" alt="IMG_0154"
src="https://github.com/user-attachments/assets/09a89bfb-66f4-4184-b05c-e8040b96cf44"
/>
successor of #6650

this PR adds a "ringing" api that can be used for calls later.
see deltachat.h for details about the API; jsonrpc is left out until things are settled for the needs of android/iOS
UI using this PR already successfully are deltachat/deltachat-ios#2638 and deltachat/deltachat-android#3785 ; the "payload" passed forth and back is optimised for https://github.com/deltachat/calls-webapp