Nextcloud+Janus+Signaling+Coturn - how does it work?

Support intro

Sorry to hear you’re facing problems :slightly_frowning_face:

help.nextcloud.com is for home/non-enterprise users. If you’re running a business, paid support can be accessed via portal.nextcloud.com where we can ensure your business keeps running smoothly.

In order to help you as quickly as possible, before clicking Create Topic please provide as much of the below as you can. Feel free to use a pastebin service for logs, otherwise either indent short log examples with four spaces:

example

Or for longer, use three backticks above and below the code snippet:

longer
example
here

Some or all of the below information will be requested if it isn’t supplied; for fastest response please provide as much as you can :heart:

Some useful links to gather information about your Nextcloud Talk installation:
Information about Signaling server: /index.php/index.php/settings/admin/talk#signaling_server
Information about TURN server: /index.php/settings/admin/talk#turn_server
Information about STUN server: /index.php/settings/admin/talk#stun_server

Nextcloud version (eg, 24.0.1): 30.0.1
Talk Server version (eg, 14.0.2): 20.1.8
Custom Signaling server configured: 2.0.2
Custom TURN server configured: yes
Custom STUN server configured: yes

In case the web version of Nextcloud Talk is involved:
Operating system (eg, Windows/Ubuntu/…): Mac OS X
Browser name and version (eg, Chrome v101): multiple

In case mobile Nextcloud Talk apps are involved:
Talk iOS version (eg, 14.0.2): replace me
Talk Android version (eg, 14.0.2): replace me

The issue you are facing:

Is this the first time you’ve seen this error? (Y):

Steps to replicate it:

  1. Try to connect
  2. Wait
  3. No connection

The output of your Nextcloud log in Admin > Logging or errors in nextcloud.log in /var/www/:

Nothing related

The output of your Apache/nginx/system log in /var/log/____:

Nothing related

Your browser log if relevant (javascript console log, network log, etc.):

Nothing related

I followed multiple documents in Internet to setup all the software, but Janus still cannot setup TURN server correctly:

[WARN] Could not set TURN server, is the address correct? (109.123.248.30:3478)

Sniffing the traffic I see that it sends several (dynamic) login:password pairs to Coturn but it does not answer (probably, login:password never matches).

I would like to understand how Nextcloud, Signaling, Janus and Coturn work together. I see apikey in server.conf of Signaling server, but I don’t see it in Coturn config. I see turn_rest_api_key in janus.jcfg, but I never saw any information about setting turn_rest_api address there (so it is disabled).

Could someone explain me HOW should it work, please?

I definitely don’t need any example of configuration ā€˜that works for me’. I want to understand the sequence of connections between different components, and the data transferred. I cannot find this information, and digging in code of 4 different applications looks really hard…

consider upgrading to a later version

TIP: create secretpasswordkey

Make sure you create a long secretpasswordkey (min. 24 chars, better 32 chars) for each service! Note down the secretpasswordkeys as you will need them for creating the Docker stack and for configuring Nextcloud talk.

  • issue command in host shell and repeat for each service:
openssl rand -hex 32

grafik

1. TURN_SECRET
  • create a long random secretpasswordkey, issue command in host shell:
openssl rand -hex 32
2. SIGNALING_SECRET
  • create a long random secretpasswordkey, issue command in host shell:
openssl rand -hex 32
3. INTERNAL_SECRET
  • create a long random secretpasswordkey, issue command in host shell:
openssl rand -hex 32

don’t throw in the towel too early, it just takes a lot of reading… no digging required :ok_hand:

maybe this explains what’s needed and works for you?

@scubamuc

I’ve seen almost all the documents present in internet about the subject, also the documents you’ve recommended.

As I mentioned in my request, I’m not searching for a document explaining how to install the solution. I’m searching for a document explaining how it works. What are the relations between the components? Which component generates the random credentials and how are they passed to another components? How does the flux pass? Why should I add TURN server in Nextcloud configuration and in Signal Server configuration? Etc. etc…

@Peter2121,

for technical questions feel free to reach out to the folks at Struktur AG.