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;