Если я пытаюсь войти на user@192.168.1.1, он работает нормально; в любом случае, если я попытаюсь войти на сервер, используя в качестве адреса узла мой внешний IP-адрес, произойдет сбой.
Конечно, это терпит неудачу: если бы это не так, я (и многие, многие другие люди ;-)) звонили бы через ваш SIP-сервер за ваш счет.
Чтобы заставить его работать, убедитесь, что ваш телефон, находясь за пределами вашего дома, имеет IP-адрес в вашей локальной сети. Этого можно достичь, если вы настроите маршрутизируемый сервер OpenVPN на Linux-компьютере дома (это можно сделать с помощью Raspberry pi 3, небольшого компьютера, который стоит чуть более 40 евро).
Существует приложение OpenVPN для Android и iOS (и, возможно, некоторых других ОС, но я не уверен, что вам придется проверять), которое позволяет телефонам использовать маршрутизируемые OpenVPN ( не подключенные OpenVPN, осторожно). Единственный недостающий компонент - это использование правила MASQUERADE на Linux-коробке,
sudo iptables -t nat -A POSTROUTING -o eth0 ! -d 10.0.0.0/24 -j MASQUERADE
(если вы используете подсеть 10.0.0.0/24 для ваших клиентов OpenVPN, в противном случае измените соответствующим образом). В этот момент весь трафик с вашего телефона направляется к локальной сети, включая сервер SIP, будет отображаться как прибывающие из коробки Linux, который делает иметь IP - адрес в локальной сети, и, таким образом, ваш телефон сможет получить доступ к серверу SIP ,
Это будет работать, но, возможно, неидеально. Если качество звука не является идеальным, если есть заикание или прерывистые соединения, вам нужно научиться расставлять приоритеты VoIP-трафика в вашей локальной сети. Но так как он уже настроен через модем вашего провайдера, я уверен, что он будет работать из коробки.
Это немного сложный, но очень весело. Все шаги хорошо документированы на сайтах gazillion, просто используйте ваш Google.
РЕДАКТИРОВАТЬ
Ваша таблица маршрутизации должна выглядеть так:
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
Мой маршрутизатор Debian имеет два интерфейса, eth0 - это WAN, а brlan - это LAN. 192.168.73.0/24 - это локальная сеть, 192.168.1.0/254 - в подключении к моему модему на стороне WAN, 10.8.73.128/26 - это сеть OpenVPN, и то, чего вам не хватает, является важным утверждением
10.8.73.130 dev tun0 proto kernel scope link src 10.8.73.129
который определяет туннель.