element-hq / element-ios

A glossy Matrix collaboration client for iOS
https://element.io
Apache License 2.0
1.73k stars 489 forks source link

Tab for list of calls with bridged users #5782

Open simonwiedmer opened 2 years ago

simonwiedmer commented 2 years ago

Your use case

In an environment where the user has the ability to start outgoing calls or receive incoming calls from a non-matrix network from non-matrix users (typically Numbers from a PSTN network) via a bridge device, it is beneficial to separate the rooms created with these bridged users in its own list of calls. This is because the available interactions with these non-matrix users are different than with matrix-users and the management of direct contacts is kept simple by not having them polluted by this kind of rooms.

This list of calls should be shown depending of the availability of a PSTN bridge.

Design aspects: As the PSTN bridge creates a matrix user as a proxy for each PSTN number, it would be needed to distinguish this kind of special matrix user from a normal matrix user. Based on the presence of such a special matrix user within a room, the room itself can then be considered a "call" room to be presented in the call list and be excluded from being presented in the list of direct rooms or group rooms.

Created a video for demonstration purpose: (https://aarenet-my.sharepoint.com/:v:/p/simon_wiedmer/ERSzUmOQMTRPhFjJfvFndxIBh_NBh2PBogLvOzCfPMHgRA?e=GrQwRb)

simonwiedmer commented 2 years ago

The design aspect part needs support and implementation in the SDK: https://github.com/matrix-org/matrix-ios-sdk/issues/1396

simonwiedmer commented 2 years ago

Updated description with video: (https://aarenet-my.sharepoint.com/:v:/p/simon_wiedmer/ERSzUmOQMTRPhFjJfvFndxIBh_NBh2PBogLvOzCfPMHgRA?e=GrQwRb)

simonwiedmer commented 2 years ago

ima_2019d4f

daniellekirkwood commented 2 years ago

I think this is a really interesting idea, thanks!

We'll need for the voip and design teams to consider this proposal strategically so I'm removing my assignment from this issue.

ShadowJonathan commented 2 years ago

Some thoughts on how to implement this, as i'm reading it;

For this feature (together with https://github.com/matrix-org/matrix-ios-sdk/issues/1396), there likely needs to be specification support detailing PSTN voip bridging, to make clients such as element ios handle these types of calls properly. This would need to be handled as a specification proposal.

Next to that, I'd say that MSC3401 is relevant here, but that the voip bridging room is also of interest to this feature.

I'd also like to personally note that iOS itself has a native "calls" app, which lists historical calls itself, it may be worth exploring a way to expose matrix-bridged-PSTN natively to iOS, to have it take advantage of contacts cross-referencing on the system side, if possible. It could also be possible to leave historical calls entirely to the calls app, and focus on improving that instead.

simonwiedmer commented 2 years ago

Thanks for your thoughts on it.

Searching through MSCs i found https://github.com/matrix-org/matrix-spec-proposals/pull/1840, which would actually allow to implement the call list based on the room type. Can i ask what is the state of MSC1840? It seems not to be progressing at the time.

For the native "calls" app we have tried different things, but ultimately have two remaining issues: one is the consistency in behavior is not satisfied: in some cases it is not possible to start calls through the matrix client from the native call list. And the other is that we d like to present one place or "app" to have everything ready for the user; chats, contacts, calls in one place.