[Story] Ringing for incoming call
Description
- As a user
- I want to my device to ring on an incoming call
- So that I do not miss them
Based on MSC4075
Acceptance criteria
-
The client applications should attempt to send a new
m.call.notifyevent every time they access Element Call. This should be done through the means of the newly addedsend_call_notification_if_neededSDK method which will check if the right conditions are met:- if the room already has an active call then no new notification will be sent
- if the room is a DM then a
ringnotification will be sent - if the room is not a DM then a
notificationnotification will be sent
-
The interlocutor client will receive a
CallNotifyevent as a push notification payload and:- If the notification is older than 10 seconds ignore the
notify_typeand display it as a normal notification - If the notify type is
ringdisplay the native OS incoming call dialog - Otherwise display it as a normal notification
- If the notification is older than 10 seconds ignore the
-
From the native call dialog the decline action should ignore the call (similar to just not opening it up from within the room) while the accept action should open the app and that particular ElementCall
-
The call dialog should be automatically dismissed after 15 seconds of inactivity and the call handled as
unanswered -
NB These actions above should be available irrespective of the application (state, running, active, background, killed etc.)
-
These new
m.call.notifyevents should be rendered in the timeline to indicate the start of a call. Designs will be based on this WIP version and will not contain a join button or durations -
We would also like to track Element Call interactions so we've defined new events here https://github.com/matrix-org/matrix-analytics-events/pull/107/files
Leads
- Tech: @stefanceriu
Size estimate
M
Subtasks
### Android
- [ ] https://github.com/element-hq/element-x-android/issues/2894
### iOS
- [ ] https://github.com/element-hq/element-x-ios/issues/2876
### Rust
- [ ] https://github.com/matrix-org/matrix-rust-sdk/pull/3434
### Other
- [ ] https://github.com/matrix-org/matrix-rust-sdk/pull/3434
- [ ] https://github.com/matrix-org/matrix-rust-sdk/pull/3474
Out-of-scope
- Cancelling the ringing call when the other user in a DM hangs up.
- Displaying when a call has finished in the notifications and timeline items.
Sign-off
Android
- [ ] Design sign-off on completion
- [x] QA sign-off on completion
- [ ] Product sign-off on completion
iOS
- [ ] Design sign-off on completion
- [x] QA sign-off on completion
- [ ] Product sign-off on completion
I would like a ring to be sent to all members of a group. This is how a group call is supposed to work.
There is a long standing bug in Element Android related to this. The group call ring was implemented in iOS but not on Android.
The feature is live for a while. We are more than happy about it
@manuroe , I'm sorry, where is it available for a group calls? There is a PR on that feature for Android, which is not merged yet. Or am I missing something?
@manuroe a gentle reminder
Ringing is not enabled for group calls, only DMs as per https://github.com/matrix-org/matrix-rust-sdk/pull/3434
Ringing is not enabled for group calls, only DMs as per matrix-org/matrix-rust-sdk#3434
... and as per my humble observations of the app behaviour as well as work on the code.