meta data for this page
  •  

This is an old revision of the document!


Spreed standalone signaling server

It is composed from following services:

  • Spreed backend (it is REST api service) which control everything
  • NATS (Messaging server)
  • Janus WebRTC server
  • CoTURN server (act as STUN/TURN)

Notes for dockerized solution:

  • It is using direct host network because large ranges of ports are needed (RTP/TURN) and Docker port forwarding proxy performance is poor.
  • Using one shared host network let detect already used ports when 2 services can opens ports with overlaping ranges:
    • Janus WebRTC opens listening ports on any range (it can be limited in janus.jcfg or cmd line argument)
    • TURN also opens listening ports 49152-65535 (range required by RFC)

behind NAT

Port forwarding is needed:

  • Spreed backend HTTP port 3080 (set in server.conf) neeeds to be rev proxied with SSL to external IP with attached domain
  • STUN/TURN UDP/TCP port 3478
  • CoTURN UDP/TCP ports 49152-65535 (range required by RFC)
  • Janus WebRTC ports 20000-40000 (set by cmd line argument -r 20000-40000)
    • nice_agent_set_port_range(handle→agent, handle→stream_id, 1, rtp_range_min, rtp_range_max);

/* RTP/RTCP port range */ uint16_t rtp_range_min = 0; uint16_t rtp_range_max = 0;