Nextcloud 11 introduces experimental video and audio call integration through the Spreed app, designed to be easy to install and nicely integrated. We will walk through the current state and some plans for the future.



Introducing the Spreed app

The Spreed app uses the web standard WebRTC for communications. It has been built in PHP to enable easy installation and integration in Nextcloud.

The app is currently experimental, in no small part due to the limitations of the WebRTC technology. Current limitations include:

Scalability.

The peer-to-peer nature of WebRTC means there are limits to scalability. The app is capable of handling about 6 participants in a group video chat but heavily dependent on the network connection quality the participants have. A single server can host quite a number of one-on-one or group calls, they do not create a very heavy load. We are working on adding more capabilities, including ways to increase the number of participants beyond 6 and more using a mediating server in between.

The peer-to-peer nature of WebRTC means there are limits to scalability. The app is capable of handling about 6 participants in a group video chat but heavily dependent on the network connection quality the participants have. A single server can host quite a number of one-on-one or group calls, they do not create a very heavy load. We are working on adding more capabilities, including ways to increase the number of participants beyond 6 and more using a mediating server in between. Browser support

Another limit users will encounter is browser quality. Right now, Firefox and Chrome have decent compatibility on most platforms but breakage is still very frequent.

Another limit users will encounter is browser quality. Right now, Firefox and Chrome have decent compatibility on most platforms but breakage is still very frequent. Firewalls

Last but not least, heavily firewalled corporate networks make it hard to create a reliable connection. For this, Spreed supports a so called STUN server, which helps setting up a connection through firewalls.

Right now, the following features are available:

One-to-one calls

You just need to click on one of the users presented on the list:



This will create a private call between you and that user. The other user will receive a notification saying that you have invited him or her to a private call.

Group calls

There are different ways to create a group call. First you could select one of your Nextcloud groups that appear in the dropdown list.

This will immediately create a group call, adding all users from that group as participants of that call, including yourself even if you are not part of that Nextcloud group. All group members will receive a notification saying that you have invited them to a group call.

Another possibility is to add participants to an existing call. This could be done by selecting the “Add person” option in the call menu.



Public calls

As the name suggests, these calls are accessible for everyone, even people who are not users on your Nextcloud instance. There are also a few ways to start a public call. You can just select the option “New public room”. This will create a public call where you are the only participant. You can then share the link that is showed with your friends and they will be able to join that call. Also, you can still add Nextcloud users by adding them as described in group calls. You can make any call public by selecting the option “Share link” from the call menu.

If you want a call to no longer be public you just need to click on the “Unshare” icon in the call menu. This will convert that call to a normal group call again, and only the participants of that call from your Nextcloud server will be able to enter.

How can I use Spreed video calls?

If you would like to test out Spreed, you can go to the built in Nextcloud app store (the plus in the apps menu) where you can find it. You can learn more about the app in our web app store. After adding the app to your Nextcloud instance, everything will just work out of the box. No further installation steps will be needed.

Future plans

This is just the beginning of what we want to achieve with this app. We are working hard to bring new features, make the app more stable and integrate it deeper in Nextcloud. You can get involved in our github repo by reporting bugs or adding code!