Configurações de rede para softphones

Os softphones Linphone e Zoiper, recomendados pela equipe do INOC-DBA, têm um ótimo suporte a NAT e são capazes de funcionar como clientes do INOC-DBA nos mais variados tipos de redes. Há também aparelhos telefônicos SIP mais modernos com bom suporte a NAT, de diversas marcas e modelos. Se você optou por usar um dos softphones recomendados, provavelmente não precisa se preocupar com as configurações de sua rede. Basta habilitar o suporte ao STUN nos softwares e na maioria dos casos tudo funcionará bem.
Ainda assim, aqui estão detalhados os protocolos, IPs e portas usados na comunicação no contexto do INOC-DBA, no intuito de ajudar os usuários na solução de eventuais problemas.
1 - Comunicação SIP com IPs públicos
Com o uso de IPs públicos a comunicação com os softphones se dá exatamente da mesma forma que com os telefones Cisco cedidos pelo NIC.br.
A comunicação RTP utiliza para cada chamada de voz duas portas UDP altas, escolhidas em sequência, tanto no lado do cliente (telefone) quanto do servidor. Uma é usada para o controle (RTCP) e outra para o audio em si (RTP). Os telefones Cisco do INOC-DBA escolhem portas entre 16384 e 32766. Para os softphones recomendamos a escolha de portas entre 10000 e 20000, a mesma faixa usada no servidor INOC-DBA.
Caso você pretenda usar filtros (firewall) nessa rede, note que:
- a comunicação SIP sempre se dá entre o cliente e o servidor INOC-DBA (o softphone deve ser capaz de enviar pacotes UDP para a porta 5060 do servidor INOC-DBA, e receber pacotes UDP originados na porta 5060 deste);
- a comunicação RTP e RTCP pode se dar entre o cliente (softphone) e o servidor INOC-DBA, ou diretamente entre dois clientes (os telefones devem ser capazes de enviar pacotes UDP originados das portas 10000 a 20000 para qualquer destino, nas portas UDP 10000 a 32766, e receber pacotes de qualquer origem, originados das portas UDP 10000 a 32766 tendo como destino as portas UDP 10000 a 20000).
Veja o diagrama de sequencia simplificado da comunicação (clique para ver em tamanho grande). Nesse diagrama está um exemplo da comunicação de audio (RTP) direta entre os clientes INOC-DBA. Estão representados telefones Cisco, mas nesse caso, para os softphones, é exatamente o mesmo que acontece. Nesse caso a voz não passa pelo servidor. Esse é o caso padrão e só não acontece quando há incompatibilidades (por exemplo, se um cliente usa IPv4 e outro IPv6, ou se suportam codecs diferentes):
2- Comunicação SIP com o uso de NAT e STUN
Em uma rede configurada desta forma, os softphones recomendados, com o STUN habilitado, funcionarão muito bem com o INOC-DBA.
O servidor STUN permite ao cliente (softphone) identificar o IP público (externo) usado pelo NAT. Para isso é enviado um pacote UDP para a porta 3478 do servidor STUN. Na resposta está embutida a informação do IP público observado pelo servidor.
Com a informação do IP público 'em mãos', o softphone pode embutir nos pacotes SIP informações suficientes para que eles consigam atravessar o NAT nos dois sentidos.
Para mais detalhes, veja o diagrama de sequencia simplificado da comunicação usando NAT e STUN (clique para ver em tamanho grande):