Add support of Call 📞 in Group

Hello Delta chat team. As call :telephone_receiver: is available in private message(DM), may I ask you to enable voice/video call in group too? So 4 or 5 people can join call? Thanks.

Expected behavior

Actual behavior

Example Images

2 Likes

I agree that this should be possible.
However it’s not simply a matter of flipping the switch. Implementing group calls is quite a bit harder than implementing 1:1 calls.

Workarounds

  • Use third-party services such as Jitsi
  • On desktop it’s possible to have multiple 1:1 calls at the same time. Just make all participants call each other.

My thoughts on implementation

It’s about time to switch to an existing implementation, such as Jitsi or something PeerJS-based. Then it’s gonna be only a matter of implementing the signaling protocol in Core (over email).

Wouldn’t it be better if this feature were implemented as a mini app? that way group voice calls could be handled there instead of being built directly into the core.

1 Like

With how WebXDC is currently implemented this is not quite possible. WebRTC, which calls rely on, is still disabled for WebXDC apps.
Plus we’d at least need some ringing notification API.
Edit: and give access to camera Allow access to camera, geolocation, other Web APIs.

1 Like

That makes sense, thanks for the detailed explanation.

If WebRTC isn’t available in WebXDC yet, then integrating something like Jitsi or a PeerJS-based solution in the core sounds like a reasonable direction. Even a basic group call (like small groups, no advanced features) could already be very useful as a first step.

Also, maybe starting with a simple signaling approach over email, as you mentioned, could help test things without too much complexity upfront.

In the meantime, I guess Jitsi is the most practical workaround, but it would definitely be nice to have something native in Delta Chat eventually.

Happy to help test if something experimental comes up :slightly_smiling_face:

Instead of WebRTC, xdc realtime P2P could be used for group calls. It could already work if we had access to multimedia API:

1 Like

While it is possible, handling media manually is way inferior to using WebRTC. To name a few things: WebRTC supports adaptive media quality and jitter buffering out of the box. We really shouldn’t be reinventing the wheel here.

Interesting points.

Using realtime P2P in webxdc sounds like a clever workaround and it’s impressive that it already gets latency down to ~1 second. That said, I also see the concern about reinventing the wheel—things like adaptive bitrate, jitter buffering, echo cancellation, etc. are pretty hard to get right without WebRTC.

Maybe the P2P approach could still be useful as an experimental step or prototype, while waiting for proper WebRTC support (either in core or eventually in WebXDC)? It could help explore UX and basic group call flows without committing to a full implementation yet.

Curious to see which direction the project leans toward :slightly_smiling_face:

1 Like