Talk is an extension of the Nextcloud platform, allows you to make protected audio and video calls, as well as exchange text messages via the web interface or the Nextcloud Talk mobile app. WebRTC is used to communicate with interlocutors, and end-to-end encryption is used to protect the transmitted information. All components of Nextcloud Talk are open.
Posts about Nextcloud on Habré can be counted on the fingers, and there is not a word about Nextcloud Talk, so I decided to fill this gap. Under the cut, I'll tell you how I learned about Nextcloud, Spreed.ME, Spreed and Talk, how I tested Talk and what problems I encountered when installing and configuring Talk.
How I learned about Nextcloud
In 2013, two friends, Zhenya and Maxim, bought a nettop and started home storage on their ownCloud. At that time, Dropbox offered 500 GB of disk space for $ 500 per year, a nettop with exactly the same disk size at least cost a little more, but private storage seemed more cost-effective and just more interesting than Dropbox Pro. Zhenya and Maxim created accounts for friends and acquaintances. At first, I did not use this account, but later I was inspired by the idea of private storage and began to fumble around photo albums, and besides, everything worked without failures. In 2016, Frank Karlitchek (Frank Karlitschek), the founder of ownCloud, left the project and created a fork called Nextcloud. Zhenya assumed that ownCloud is waiting for stagnation and transferred our storage from ownCloud to Nextcloud. At the same time, all the files remained in place, and I just put the mobile client of Nextcloud on my smartphone and started using Nextcloud.
What preceded Nextcloud Talk
From the very beginning, the Spreed.ME extension, from the eponymous development team, was available in the Nextcloud App Store. With this extension, you could create a video conference inside Nextcloud right in the browser, but unfortunately there were no mobile applications for Android and iOS, and Spreed.ME required the installation of additional software - Spreed WebRTC server. A little later, Nextcloud developers published an extension for video calls called Spreed in the Nextcloud App Store. Spreed was better integrated into Nextcloud, did not require the installation of the Spreed WebRTC server, but was inferior to Spreed.ME in terms of functionality.
')
In early 2018, the developers of Nextcloud announced the complete redesign of Spreed and published the Nextcloud Talk mobile app in the Google Play Store and the Apple App Store. The Spreed extension was renamed to Talk, but the application ID in the Nextcloud App Store remained the same - Spreed to make it easier for us to migrate from Nextcloud 12 to 13. Talk has a group text chat, voice and video calls with the sharing of the screen. Nextcloud Talk mobile apps for Android and iOS are still inferior to the web version, but the most necessary is implemented - calls from a smartphone to a smartphone.
How I tested Nextcloud Talk
I wanted to quickly try Nextcloud Talk, and without waiting for the official release of Nextcloud 13, Eugene updated Nextcloud to 13.0.0 RC 1 on a nettop. After that, we installed Nextcloud Talk on smartphones and phoned. The connection has passed, but there was no sound or video; we only saw a black screen. I contacted an Android application developer named Mario (Mario Đanić), and he explained that we don’t have enough TURN server to communicate over the Internet.
Nextcloud Talk uses WebRTC (peer-to-peer) to organize a communication channel between two devices, and since our smartphones do not have white IP addresses, the connection setup is difficult. We decided to use coturn as a TURN server, quickly deployed it on a nettop and indicated the white nettop IP address in the Talk settings in the Nextcloud admin panel. After that, there was video and sound, but at first we did not notice the lack of pop-up notifications when calling. Notifications appeared after installing and activating the Notifications extension in Nextcloud.
Nextcloud Talk: mobile app and web interface
In the mobile application Nextcloud Talk, at the time of this writing, only video calls and a list of contacts are implemented. My contact list in the application is loaded from the Nextcloud server on nettop.
In the web version of the possibilities there are more, for example, I can invite a person to the conference who does not have an account in our cloud storage. The web version has a chat, but, unfortunately, without emoticons and stickers.
In the future, the developers of Nextcloud Talk plan to add a compatible API to the XMPP chat so that third-party applications that support the XMPP protocol can communicate via the Nextcloud Talk server. Most likely, the chat will appear in the Nexcloud Talk 2.0 mobile application, but it is not yet known when 2.0 will be released.
Installing Nextcloud 13 and Talk
Now, a Docker-container with Nextcloud 13 is running on a nettop, and we have
published all the sources needed to build the container
on GitHub . It was Eugene's idea, he collected Docker files from various web services we use, added a script that collects containers and called it all “Mr. Meeseeks Box ”(abbreviated mbb). If you want to deploy Nextcloud Talk quickly and feel it yourself, but you don’t know Docker very well, then you will love mmb.
So, to get started, put Git, Docker and Docker Compose:
sudo apt-get update sudo apt-get install git, docker, docker-compose
Then clone the mmb repository:
git clone https://github.com/tolstoyevsky/mmb.git cd mmb
Build two containers MariaDB and Nextcloud by executing the following commands:
sudo ./mmb.sh mariadb amd64 sudo ./mmb.sh nextcloud amd64
If you are doing this on a Raspberry Pi, or any other device with an ARM processor, then replace amd64 with armhf.
Now start both containers, but before that make sure that port 3306 is not busy:
cd mariadb docker-compose up -d cd ../nextcloud docker-compose up -d
Open in the browser http: // [your ip-address]: 8001 / nc, and if you see the page for creating an administrator account, then you did everything correctly. Set the administrator's login and password, then go to the control panel, and in the upper right corner click Settings → Applications. In the long list of applications, find Talk and activate. Now create another account in Nextcloud and try to call via the browser or via the mobile application within the local network.
If there is a white IP-address, you can forward the 8001 port to the outside to phone through the Internet, but then you need to raise the TURN-server. This can be done using mmb, by assembling and running the container with coturn:
cd .. sudo ./mmb.sh coturn amd64 cd ../coturn docker-compose up -d
If you are doing this on a Raspberry Pi, or any other device with an ARM processor, then replace amd64 with armhf.
After raising the TURN server, open the Nextcloud admin panel, select Talk in the menu on the left, enter your white IP address in the TURN server field, and enter secret in the secret phrase field. If you want to use another secret phrase, then look in the file mmb / coturn / docker-compose.yml, change the value of the AUTH_SECRET variable and restart the container from coturn:
cd ../coturn docker-compose stop docker-compose rm docker-compose up -d
After that, you can create accounts for friends in your Nextcloud, put the Nextcloud Talk application on your smartphone and call each other.