pingu @pingu read-only
Пользователь
21 августа 2008 в 14:34

Администрирование → Домашний сервер: прокси для SIP

У меня есть стационарный ip телефон, и раутер под ubuntu-server раздающий интернет. Проблема в том, что телефон отдает свой локальный ип (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, то можно звонить между подключенными к данному серверу телефонами. Довольно удобная вещь.
В чем плюсы данного подхода:
  1. Нет необходимости запускать и настраивать полноценную АТС
  2. Довольно легко настраивать
  3. Прокси поддерживает авторизацию, соответственно можно сделать небольшой прокси сервер внутри организации с возможностью звонков между телефонами по короткому номеру.
  4. Можно использовать аппаратные sip телефоны за NAT (программные в основном и так прекрасно работают, благодаря STUN и другим технологиям)


кросс пост с моего блога
pingu @pingu
карма
1,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Администрирование

Комментарии (24)

  • +2
    Вопрос к хабрасообществу: стоит ли писать подобные статьи о настройке домашнего сервера?
    • +2
      Конечно стоит, очень часто попадаешь в ситуацию, когда хочется что-то завести на домашней машине, но основные варианты и решения — из продакш класса и для дома избыточны, а найти что-то маленькое и легкое зачастую сложно.
    • +1
      еще как стоит
      • 0
        Да отдельный топик — «Домашний сервер» пора создавать.
  • +1
    насколько я понял SIP сервер у вас внешний, от провайдера, не в локалке?
    Все устройства ходя в инет через роутер который тоже имеет внешний IP шник.
    Тогда как телефон может отдавать внешнему адресату свой локальный IP адрес? Он же за раутером, который подставит свой в соответсвии с NAT.
    • 0
      SIP не работает с NAT судя по всему, т.к. ип адрес устройства отдает само устроство при подключении к SIP серверу.
      • 0
        Вообще, это обходится через STUN протокол, но многие аппаратные телефоны его не умеют.
        • 0
          Да многие его умеют, но всё же шняга какая-то получалась. Я с ходу не разобрался. Раньше бы эту статью бы, где-то на полгода.
  • +2
    А разве socks proxy сервер не справится с этой задачей? обязательно необходим специальный?
    • 0
      Не все аппаратные телефоны их умеют. Конкретно мой умеет только SIP прокси.
  • 0
    Нашел еще один подобный сервер, но с большей функциональностью: PartySIP. Вообще, если есть внешний статический ip адрес, то можно поступить проще: установить внешний ip адрес на телефоне, и сделать проброс портов на телефон. Но в таком случае за прокси может находится только один телефон (если не назначать различные порты и прочее)
  • +1
    А вот если телефон с wi-fi, тогда можно его по всему дому таскать. Очень удобно. Получается радио-ip-телефон :-)
    • 0
      есть такие, D-Link DPH-540 и Linksys WIP330, и еще вроде что-то было у Cisco.
  • +3
    сейчас занимаюсь реализацией проекта Asterisk + Железка (Ещё не купил поэтому «Железка») на 4 FXO и Ethernet. Роутинг входящих и исходящих вызовов + sipnet.ru Как дешёвая международная междугородная связь. Как доделую обязательно отпишу на Хабре.
    • 0
      А сколько планируется телефонов подключать?
      • +1
        4FXO предполагают минимум 4 аппарата, если непосредственно в гейт. Однако упоминание астериска в сочетании с FXO-железкой позволяет предположить, что будет задействована АТС. В принципе, можно и без астериска :). Но не столь удобно.
  • +1
    Кто-нибудь знает как дешево звонить в Беларусь через sip? Минимально, что видел 0.25$ в минуту.
  • +1
    у меня cisco 7940 за раутером стоит и звонки с и на телефон идут без проблем. собвственно вопрос: что я не так сделал? или это зависит от провайдера?
    • 0
      И от прова и от шелесяки вашей. Рад за Вас, честно. Но проблемы всё же возникают.
  • 0
    Хмм… Работаю в провайдере, предоставляем телефонию (asterisk), половина железок висят за nat, половина на статических ip, все нормально работает. Дома отлично работает с сипнетом linksys spa941 через роутер. Странно как то у вас все.
    • 0
      Из чистого любопытства — а как вы со своим астериском вопросы с Минсвязи решили? Или есть какая-то софтина/железка «для виду», а астериск уже в ее тени трудится?
  • 0
    Вообще это опция софт-свича поддерживать клиентов за NAT. Если у вашего провайдера VoIP это не работет… меняйте провайдера.
  • НЛО прилетело и опубликовало эту надпись здесь

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.