If I try to login to [email protected] it works fine; anyway, if I attempt to log in to the server, using as host address my external IP address, it fails.
Claro que falha: se não, eu (e muitas, muitas outras pessoas ;-)) estaria fazendo chamadas através do seu servidor SIP, às suas custas.
A maneira de fazê-lo funcionar é garantir que seu telefone, fora de sua casa, tenha um endereço IP dentro de sua LAN. Isso pode ser feito se você configurar um servidor OpenVPN roteado em uma caixa Linux em casa (pode ser feito com um Raspberry pi 3, um pequeno computador que custa pouco mais de 40 euros).
Existe um aplicativo OpenVPN para Android e iOS (e talvez algum outro sistema operacional, mas não tenho certeza, você terá que verificar), que permite que os telefones usem roteados OpenVPNs ( não bridged OpenVPNs, cuidado). O único ingrediente que falta é o uso de uma regra MASQUERADE na caixa Linux,
sudo iptables -t nat -A POSTROUTING -o eth0 ! -d 10.0.0.0/24 -j MASQUERADE
(se você estiver usando a sub-rede 10.0.0.0/24 para seus clientes OpenVPN, caso contrário, mude de acordo). Neste ponto, todo o tráfego do seu telefone direcionado para a sua LAN, incluindo o servidor SIP, aparecerá como vindo da caixa Linux, que tem um endereço IP na sua LAN, e assim o seu telefone ser capaz de acessar seu servidor SIP.
Esse irá funcionar, mas possivelmente de uma maneira ideal. Se a qualidade do som não for a ideal, se houver conexões intermitentes ou intermitentes, você terá que aprender a priorizar o tráfego VoIP na sua LAN. Mas desde que isto já é configurado através do seu modem ISP, a minha aposta é que funcionará fora da caixa.
É um pouco complexo, mas muito divertido. Todos os passos estão bem documentados em um site, basta usar o seu Google.
EDITAR
Sua tabela de roteamento deve ficar assim:
default via 192.168.1.254 dev eth0
10.8.73.128/26 via 10.8.73.130 dev tun0
10.8.73.130 dev tun0 proto kernel scope link src 10.8.73.129
192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.128
192.168.73.0/24 dev brlan proto kernel scope link src 192.168.73.1
Meu roteador Debian tem duas interfaces, eth0 é a WAN e brlan é a LAN. 192.168.73.0/24 é a LAN, 192.168.1.0/254 na conexão do lado da WAN para o meu modem, 10.8.73.128/26 é a rede OpenVPN, e o que você está perdendo é a declaração importante
10.8.73.130 dev tun0 proto kernel scope link src 10.8.73.129
que define o túnel.