Janus
O Janus WebRTC Server é o servidor que roteia as chamadas de voz do Rouxinol — tanto SIP (telefonia) quanto WhatsApp e WebRTC direto do navegador. É um pré-requisito obrigatório: sem ele, nenhum canal de voz funciona.
Não existe pacote oficial apt — o Janus é instalado compilando o código-fonte oficial.
Dependências de build (Ubuntu)
sudo apt update
sudo apt install -y \
libmicrohttpd-dev libjansson-dev \
libssl-dev libsrtp2-dev libsofia-sip-ua-dev libglib2.0-dev \
libopus-dev libogg-dev libcurl4-openssl-dev liblua5.3-dev \
libconfig-dev pkg-config gengetopt libtool automake \
cmake meson ninja-build git
Compilando o libnice
O Janus precisa de uma versão recente do libnice (ICE/STUN/TURN):
git clone https://gitlab.freedesktop.org/libnice/libnice.git
cd libnice
meson build && ninja -C build && sudo ninja -C build install
cd ..
Compilando o usrsctp
Necessário para o suporte a DataChannels:
git clone https://github.com/sctplab/usrsctp.git
cd usrsctp
./bootstrap
./configure --prefix=/usr && make && sudo make install
cd ..
Compilando o Janus Gateway
git clone https://github.com/meetecho/janus-gateway.git
cd janus-gateway
sh autogen.sh
./configure --prefix=/opt/janus
make
sudo make install
sudo make configs
O make configs gera os arquivos de configuração padrão em /opt/janus/etc/janus/, a partir dos exemplos .sample.
Configurando o Janus para o Rouxinol
Os arquivos relevantes ficam em /opt/janus/etc/janus/:
janus.jcfg— habilite o transporte HTTP (janus.transport.http.jcfg) e o WebSockets (janus.transport.websockets.jcfg), usados pelo Rouxinol viaJANUS_BASE_URLeJANUS_WS_URL.janus.plugin.sip.jcfg— plugin SIP, usado para as conexões SIP.janus.transport.http.jcfg— definaadmin_secrete a porta HTTP (padrão8088).
Configure um segredo de API forte em janus.jcfg (api_secret) — ele corresponde à variável JANUS_API_SECRET no .env do Rouxinol (veja Configuração).
Rodando como serviço (systemd)
sudo tee /etc/systemd/system/janus.service > /dev/null <<'EOF'
[Unit]
Description=Janus WebRTC Server
After=network.target
[Service]
ExecStart=/opt/janus/bin/janus
Restart=on-failure
User=root
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now janus
Portas necessárias no firewall
| Porta | Uso |
|---|---|
| 8088/tcp | API HTTP do Janus (JANUS_BASE_URL). |
| 8188/tcp | API WebSocket do Janus (JANUS_WS_URL). |
| 5060/udp | Sinalização SIP (entre o Janus e o FreeSWITCH ou tronco SIP da operadora). |
| 10000–10200/udp | Mídia RTP/RTCP (faixa configurável em janus.jcfg). |
Próximo passo
Continue para FreeSWITCH, usado como PBX/tronco SIP para chamadas de telefonia.