I’ve been waiting for this for 10 years! As I prefer to have as much of my private data flowing over the Internet in my own hands I’m running pretty much all of my ‘business critical’ web based services with open source software either at home or in a data center in Germany. The last piece of the puzzle that was missing was mobile and ‘casual’ end-to-end encrypted voice and video calling over my own infrastructure. I’ve had Nextcloud talk for a couple of years now and over the past two months have set up Jitsi and BBB instances for additional use cases. But all three solutions do not cover the ‘casual’ mobile calling experience where you just take your mobile phone and call someone else. Nextcloud, Jitsi and BBB would all have the potential to do that but non of them tried successfully covered this use case so far. But now Conversations, my mobile XMPP federated messenger app has made a quantum leap forward and has introduced voice and video calling!
How It Works
Even in the first version released, mobile voice and video calling works as it should. When I call someone, the phone rings as it does for ‘normal’ voice calls while the lock screen is on. When accepting, the video appears almost instantly and both voice and video quality is excellent. Voice-only calls are possible as well. During a call I can change the app and the video becomes a small overlay window that I can place anywhere on the screen. Also important for me: When I set the phone to priority-only calls mode, incoming Conversation calls do not alert. Very nice! More about voice and video data rates in a follow up post.
The Server Side
Setting up the server side for voice and video calling is surprisingly simple. One thing that is required is a STUN/TURN server which is required in most cases to forward the video and audio stream between devices that are behind CGNATs. As I already have a STUN/TRUN server running for Nextcloud Talk and BBB, I only needed to update the modules of my Prosody XMPP server to get the latest version of the ‘turncredentials’ module and then add three lines to the configuration. That’s it, I was up and running!
The Emotional Side
Over the past two months, I’m in voice and video conferences for several hours a day. It has become routine. But this is something else entirely. I strongly reminds me of a day 15 years ago when I had my first 3G video call to my girlfriend between Germany and Italy. She was in Rome at the time walking through the Circo Massimo and showed me the place. A magic moment, my first international video call. Today was such a magic moment again. Private end-to-end mobile voice and video calling over my own infrastructure. Ah!
Kudos to Daniel Gultsch, this is insanely great!
Hello Martin, there exists an other (?) software, that can enable video calls for XMPP: https://www.jsxc.org
So, video calling in XMPP does not seem to be altogehter new? Do you know of any desktop cients for this and of open servers, that support the necessary standards?