feat(freeswitch): publica SIP/RTP no host pra registro de ramal de verdade
Usuário tentou registrar um ramal e não conseguiu — nenhuma porta SIP/RTP estava publicada no host, só o Event Socket (interno). O teste ponta a ponta da fase anterior só funcionava porque os softphones de teste rodavam dentro da mesma rede Docker. RTP restrito a um range fixo de 200 portas (16384-16584, via sed em switch.conf.xml) — o default vanilla (~16k portas) é inviável de publicar uma a uma. docker-compose.yml publica 5060/udp+tcp (SIP) e 16384-16584/udp (RTP); Event Socket continua nunca publicado. Verificado: iptables -t nat -L DOCKER confirma DNAT correto pras 201 portas; sofia status confirma que o STUN já configurado (external_rtp_ip/ external_sip_ip) resolve pro IP público real da VM, então o SDP vai anunciar o IP certo — não só o registro, o áudio também deve funcionar. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BFaBaBSQGhyXGEgtTYZGV8
This commit is contained in:
27
TODO.md
27
TODO.md
@@ -1969,6 +1969,33 @@ resolvidos sem nunca registrar um SIP de verdade
|
||||
(Discagem interna corrigida + `*8`) foram mantidas — são
|
||||
configuração funcional de verdade, não lixo de teste
|
||||
|
||||
## PHASE 54 — Publicar SIP/RTP no host (usuário tentou registrar um ramal
|
||||
de fora da rede Docker e não conseguiu)
|
||||
- [x] achado real: nenhuma porta SIP/RTP do FreeSWITCH estava publicada no
|
||||
host — só o Event Socket (8021), e mesmo esse só na rede interna do
|
||||
compose. O teste ponta a ponta da PHASE 53 só funcionou porque os
|
||||
softphones de teste rodavam DENTRO da mesma rede Docker
|
||||
(`b2bcall_default`); um softphone de verdade fora do Docker não tem
|
||||
como alcançar o FreeSWITCH
|
||||
- [x] `infrastructure/freeswitch/Dockerfile`: RTP restrito a um range fixo
|
||||
de 200 portas (16384-16584) via `sed` em `switch.conf.xml` — o
|
||||
default vanilla (16384-32768, ~16k portas) é inviável de publicar
|
||||
uma a uma no host
|
||||
- [x] `docker-compose.yml`: publicado `5060/udp`+`5060/tcp` (SIP) e
|
||||
`16384-16584/udp` (RTP) pro container. Event Socket continua NUNCA
|
||||
publicado (só uso interno)
|
||||
- [x] Confirmado via `iptables -t nat -L DOCKER`: as 201 portas RTP + a
|
||||
porta SIP têm DNAT correto pro container; `ss -lunp` confirma
|
||||
`docker-proxy` escutando 5060 no host. `sofia status profile
|
||||
internal` confirma que o STUN (`external_rtp_ip`/`external_sip_ip`
|
||||
em `vars.xml`, já configurado desde antes) resolve corretamente pro
|
||||
IP público de verdade da VM (`191.240.175.55`) — SDP vai anunciar o
|
||||
IP certo, não só o registro deve funcionar, o áudio também
|
||||
- [ ] Não verificado (fora do alcance daqui): se a VM está atrás de um
|
||||
firewall de provedor de nuvem (security group), as mesmas portas
|
||||
precisam estar liberadas lá também — só o `iptables` local foi
|
||||
confirmado
|
||||
|
||||
---
|
||||
|
||||
## Riscos conhecidos
|
||||
|
||||
Reference in New Issue
Block a user