External Signaling Server not working

Hello everyone.

I’ve just set up an external signaling server. Sadly, inside a call, there is only one person at once. I don’t see an issue in the logfiles of janus/spreedbackend/nats.

Signaling Server:

2021-01-04 13:46:12.405573 I | backend_configuration.go:77: Backend cloud.xxxxxxx.de added for https://cloud.xxxxxxxxx.de/
2021-01-04 13:46:12.405594 I | hub.go:177: Using a maximum of 8 concurrent backend connections per host
2021-01-04 13:46:12.405615 I | hub.go:184: Using a timeout of 10s for backend connections
2021-01-04 13:46:12.405664 I | hub.go:270: Not using GeoIP database
2021-01-04 13:46:12.409102 I | mcu_janus.go:289: Connected to Janus WebRTC Server 0.9.2 by Meetecho s.r.l.
2021-01-04 13:46:12.409130 I | mcu_janus.go:293: Found JANUS VideoRoom plugin 0.0.9 by Meetecho s.r.l.
2021-01-04 13:46:12.409142 I | mcu_janus.go:299: Data channels are supported
2021-01-04 13:46:12.409148 I | mcu_janus.go:305: Full-Trickle is enabled
2021-01-04 13:46:12.409159 I | mcu_janus.go:308: Maximum bandwidth 1048576 bits/sec per publishing stream
2021-01-04 13:46:12.409166 I | mcu_janus.go:309: Maximum bandwidth 2097152 bits/sec per screensharing stream
2021-01-04 13:46:12.410029 I | mcu_janus.go:315: Created Janus session 3645640818689689
2021-01-04 13:46:12.410438 I | mcu_janus.go:322: Created Janus handle 3559830758257239
2021-01-04 13:46:12.410468 I | main.go:226: Using janus MCU
2021-01-04 13:46:12.410480 I | hub.go:357: Using a timeout of 10s for MCU requests
2021-01-04 13:46:12.410542 I | backend_server.go:94: Using configured TURN API key
2021-01-04 13:46:12.410556 I | backend_server.go:95: Using configured shared TURN secret
2021-01-04 13:46:12.410593 I | backend_server.go:97: Adding "turn:xxxxxxxxx.de:5349?transport=udp" as TURN server
2021-01-04 13:46:12.410602 I | backend_server.go:97: Adding "turn:xxxxxxxxx.de:5349?transport=tcp" as TURN server
2021-01-04 13:46:12.410615 I | backend_server.go:104: No IPs configured for the stats endpoint, only allowing access from 127.0.0.1
2021-01-04 13:46:12.410813 I | main.go:302: Listening on 0.0.0.0:8081
2021-01-04 13:46:12.780195 I | client.go:251: Client from 5.83.183.211 has RTT of 18 ms (18.506905ms)
2021-01-04 13:46:12.936638 I | hub.go:695: Register user xxxx@cloud.xxxxxxxxx.de from xxx.xxx.xxx.xxx in unknown-country

Janus:

Janus commit: not-a-git-repo
Compiled on:  Tue Dec 29 08:51:47 UTC 2020

Logger plugins folder: /usr/local/lib/janus/loggers
[WARN] 	Couldn't access logger plugins folder...
---------------------------------------------------
  Starting Meetecho Janus (WebRTC Server) v0.9.2
---------------------------------------------------

Checking command line arguments...
Debug/log level is 4
Debug/log timestamps are disabled
Debug/log colors are enabled
Adding 'vmnet' to the ICE ignore list...
Using xxx.xxx.xxx.xxx as local IP...
[WARN] Token based authentication disabled
Initializing recorder code
Initializing ICE stuff (Full mode, ICE-TCP candidates disabled, full-trickle, IPv6 support disabled)
STUN server to use: xxxxxxxxxxx:5349
  >> xxx.xxx.xxx.xxx:5349 (IPv4)
Testing STUN server: message is of 20 bytes
  >> Our public address is xxx.xxx.xxx.xxx
Crypto: OpenSSL >= 1.1.0
[WARN] The libsrtp installation does not support AES-GCM profiles
[WARN] No cert/key specified, autogenerating some...
Fingerprint of our certificate: 6A:E5:2B:91:1E:54:04:A6:78:49:76:CD:A1:AC:9F:19:A9:6A:76:63:BC:53:3D:D1:0E:22:F5:86:BA:D8:37:98
[WARN] Event handlers support disabled
Plugins folder: /usr/local/lib/janus/plugins
Loading plugin 'libjanus_videoroom.so'...
JANUS VideoRoom plugin initialized!
Loading plugin 'libjanus_streaming.so'...
Joining Janus requests handler thread
Sessions watchdog started
JANUS Streaming plugin initialized!
Loading plugin 'libjanus_textroom.so'...
JANUS TextRoom plugin initialized!
Loading plugin 'libjanus_videocall.so'...
JANUS VideoCall plugin initialized!
Loading plugin 'libjanus_echotest.so'...
JANUS EchoTest plugin initialized!
Loading plugin 'libjanus_recordplay.so'...
JANUS Record&Play plugin initialized!
Loading plugin 'libjanus_nosip.so'...
JANUS NoSIP plugin initialized!
Transport plugins folder: /usr/local/lib/janus/transports
Loading transport plugin 'libjanus_websockets.so'...
[WARN] libwebsockets has been built without IPv6 support, will bind to IPv4 only
libwebsockets logging: 0
WebSockets server started (port 8188)...
[WARN] Secure WebSockets server disabled
[WARN] Admin WebSockets server disabled
[WARN] Secure Admin WebSockets server disabled
JANUS WebSockets transport plugin initialized!
Loading transport plugin 'libjanus_pfunix.so'...
WebSockets thread started
[WARN] Unix Sockets server disabled (Janus API)
[WARN] Unix Sockets server disabled (Admin API)
[WARN] No Unix Sockets server started, giving up...
[WARN] The 'janus.transport.pfunix' plugin could not be initialized
Creating new session: 3645640818689689; 0x5555d5182ae0
Creating new handle in session 3645640818689689: 3559830758257239; 0x5555d5182ae0 0x5555d517b500

docker-compose.yml:

version: '3'

services:
  spreedbackend:
    build: .
    volumes:
      - ./server.conf:/config/server.conf
    restart: unless-stopped
    expose:
      - "8081"
    depends_on:
      - nats
      - janus
        #      - coturn
        #    network_mode: host
    networks:
      - web
      - signaling
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.signaling.rule=Host(`signaling.xxxxxxxxxxxxxxxx.de`)"
      - "traefik.http.routers.signaling.entrypoints=web-secure"
      - "traefik.http.routers.signaling.tls.certresolver=leresolver"
      - "traefik.http.services.signaling.loadbalancer.server.port=8081"
  nats:
    image: nats:2.1
    volumes:
      - ./gnatsd.conf:/config/gnatsd.conf
    ports:
      - 4222:4222
    command: ["-c", "/config/gnatsd.conf"]
    restart: unless-stopped
  janus:
    build: docker/janus
    command: ["janus", "--full-trickle", "--stun-server=xxxxxxxxxxxxxx.de:5349"]
    network_mode: host
    #    networks:
    #      - signaling
    restart: unless-stopped
    #  coturn:
    #    build: docker/coturn
    #    network_mode: host
    #    environment:
    #      REALM: xxxxxxxxxxxxxx.de
    #      STATIC_SECRET: xxxxxxxxxxxxxxxxxxxxxxxxxxx
    #    restart: unless-stopped

networks:
  signaling:
  web:
    external: true

I’m using Traefik as a reverse proxy for the signaling server.

Any help would be much appreciated.

1 Like

Hi @LaT3St

If it’s behind NAT then you need to install and configure TURN (i.e coturn) server also.