The client applications should attempt to send a new m.call.notify event every time they access Element Call. This should be done through the means of the newly added send_call_notification_if_needed SDK 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 ring notification will be sent
if the room is not a DM then a notification notification will be sent
The interlocutor client will receive a CallNotify event as a push notification payload and:
If the notification is older than 10 seconds ignore the notify_type and display it as a normal notification
If the notify type is ring display the native OS incoming call dialog
Otherwise display it as a normal notification
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.notify events 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
Description
Based on MSC4075
Acceptance criteria
The client applications should attempt to send a new
m.call.notify
event every time they access Element Call. This should be done through the means of the newly addedsend_call_notification_if_needed
SDK method which will check if the right conditions are met:ring
notification will be sentnotification
notification will be sentThe interlocutor client will receive a
CallNotify
event as a push notification payload and:notify_type
and display it as a normal notificationring
display the native OS incoming call dialogFrom 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.notify
events 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 durationsWe 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
Size estimate
M
Subtasks
Out-of-scope
Sign-off
Android
iOS