Проблема в том, что телефон отдает свой локальный ип (192.168.0.6) sip серверу, и соответственно дозвонится мне уже не возможно. Проброска портов здесь тоже не поможет.
Первое что пришло в голову — завести Asterisk PBX (программная АТС), но данное решение кажется избыточным для дома с одним телефоном, одним SIP провайдером и без FXO интерфейса. Совершенно случайно нашел небольшую утилиту реализующую как раз-то, что нужно:
siproxd. Данная программа есть в репозитории дебиана и убунты.
Настройка siproxd.conf:
# Интерфейс на котором висят sip телефоны и клиенты (да, siproxd может проксировать множество клиентов)
if_inbound = eth0
# Интерфейс к которому подключен интернет (важно чтобы интерфейс имел реальный ip адрес,
# т.к. именно на него будут поступать звонки). В моём случае это интерфейс PPPoE, к которому
# подключается сервер через adsl
if_outbound = ppp0
# Подсети с которых могут подключатся sip клиенты (через запятую, без пробелов)
hosts_allow_reg = 192.168.0.0/24
# Подсети с которых разрешен SIP трафик, т.е. звонящие на телефон.
#hosts_allow_sip = 123.45.0.0/16,123.46.0.0/16
# Подсети с которых запрещен SIP трафик.
#hosts_deny_sip = 10.0.0.0/8,11.0.0.0/8
Остальные опции менять не нужно. Так же можно настроить быстрый набор:
# Включаем необходимый плагин
pi_shortdial_enable = 1
# Задаем промежуток для номеров быстрого набора (*00 -- от *01 до *99)
pi_shortdial_akey = *00
# номер для записи выбирается по порядку добавления в конфигурационном файле.
# т.е. для промежутка от *01 до *99 первая запись будет *01,
pi_shortdial_entry = 11111@test.com
# а вторая *02
pi_shortdial_entry = 22222@test.com
Как выглядит настройка на телефоне Cisco 7912g (настройки для других телефон скорее всего будут подобными):
- OutBoundProxy: адрес сервера с siproxd
- Proxy: адрес sip сервера провайдера
- UID: Ваш UID у sip провайдера
- PWD: Ваш пароль
Если в Proxy написать адрес сервера с siproxd, то можно звонить между подключенными к данному серверу телефонами. Довольно удобная вещь.
В чем плюсы данного подхода:
- Нет необходимости запускать и настраивать полноценную АТС
- Довольно легко настраивать
- Прокси поддерживает авторизацию, соответственно можно сделать небольшой прокси сервер внутри организации с возможностью звонков между телефонами по короткому номеру.
- Можно использовать аппаратные sip телефоны за NAT (программные в основном и так прекрасно работают, благодаря STUN и другим технологиям)