A/V Calling with XMPP

I followed Digital Ocean’s guide on setting up XMPP server, then followed this guide for a TURN/STUN server. The calls go out, but they never connect! I’ve followed the Conversations app developer’s guide for troubleshooting, and even though I show the XEP-0215 standard as activated, neither audio nor video calls will connect.

Text and picture messaging works fine, but it’s the calling feature, one of the main reasons I wanted to start this project, isn’t working! Any help would be appreciated.

I had mistyped the TURN secret between turnserver.conf and prosody.config.lua.

I can now send text, pictures and files and make audio/video calls, all encrypted to people on my own little network.

1 Like

How does the audio/video calls work out for you? Ive been trying to find a self host replacement of discord, was looking at Matrix.

The real problem is buy-in and mobile clients that support it. I have another android device here, and the audio is fantastic. The video works decently too; not as clear as 1:1 Jitsi Meet calls on mobile, but better than Jami, which is what else I’ve tried.

The buy-in problem is obvious, you have to other people who want to test with you. I have auto-registration turned off of mine, to keep from being spammed. So I manually register people.

With devices, I think Conversations is the only one on Android that supports calling. I don’t know of a desktop client that does (Gajim can, but it has some requirements for software that I couldn’t meet). The other issue is: if I text/send files, it works like SMS. But there are in-device settings that prevent inbound calls from working normally. They will on my phone, but I can’t get my other Android device to allow inbound calls without having the app open, if that makes sense.

I’m trying to find someone with an iPhone so I can test it out.

All that being said, E2EE is very neat. I can see the logs in the server to see who is sending what to whom, but I can’t see the text if OMEMO is on. If you use it unencrypted, you can read the plain text that was sent.