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.