High-Tech talk on Talk? STUN, TURN, Janus Signaling

I gave my best efforts at trying to understand the documentation on STUN, TURN, and the Signaling Server settings for the Talk sub-system in Nextcloud. I do feel like a non-native speaker who’s been in a country speaking a different language for a couple of weeks; I feel very confused by everything and might be close to being minimally competent, but I think I might be asking to go to the bathroom on the carpet when I’m trying to order a fancy dinner.

As of right now, I have coturn running on the same physical machine as the webserver for my Nextcloud instance. It seems to be doing its job. I only added the TURN server in the past month. Before that, I had just the defaults in for a STUN server in my settings.

I never before understood why certain connections didn’t happen correctly, like during a test inside my NAT type network, I couldn’t connect between my personal account from a Chromebox and the Administrators account on a Ubuntu workstation, or between two android mobile apps where one was on a Wi-Fi NAT-type router and the other was mobile near a place where cell-tower jumping is common. I had no idea that various equipment needed a separate system to negotiate media incompatibility issues. Now that I have a TURN thing going those weird connection problems are gone, and one to one connections are really fast.

However, I don’t have a clue what I did right or wrong with settings in the turnserver.config file. I changed a bunch of timeout settings because I had a longer call die for no apparent reason at about the 10-minute mark; I just guessed at what may have been the problem by reading the config file comments. As of today, I can have connections last over an hour with multiple accounts logged in to the video call.

After that worked right, I was assuming that a Signaling Server would be a great addition to this, but as of now whenever I put in info for my Janus server, I don’t get ring connections on other accounts. For all I know, you either do a Signaling server or the STUN & TURN servers but not both. I just made a guess that both were better than just one of them. I do see this error thrown when trying to connect on the account that should be ringing.
Establishing signaling connection is taking longer than expected …✖
It’s gone after a split second.

The documentation for Janus (which seems like the only signaling server software option), is aged and inaccurate, as well as confusing (see his README). On a separate machine inside my network, I installed Ubuntu 20.04 LTS, and then installed the Janus system, but I did it with sudo apt-get instead of the make type compiling as suggested in the linked README document. It seems to be working, unlike when I tried doing it as shown in his README and running it on my main webserver. Within the janus.jcfg I set the api_secret that I made just for Janus with openssl rand -hex 32 command and also put that value in my Talk admin settings where Signaling servers lets you enter a Shared Secret. I also wrote wss://192.168.1.264 as the location of the signaling server which is the reserved IP of that separate machine running Janus. I also did a few single port forwardings on my router to let that machine handle 8088, 8089 & 7088.

There are so many places to do the wrong thing while thinking it’s the right thing. Nobody has done a Nextcloud specific set-up for signaling. Help me Obi-Nextcloud-Kenobi, you are my only hope.

Afaik, you will find several discussions around Talk and the need for a custom signaling server, using the search function of this forum:

https://help.nextcloud.com/search?q=signaling%20server

1 Like

I appreciate the effort @j-ed but I have already been on the places your links lead to. They didn’t get me to a place of understanding or competence.

You have three options for signaling:

  1. Internal (default)
  2. High performance backend
  3. nc_talk_backend (link above)

Just using Janus as signaling is not possible afaik.

2 Likes
1 Like