Тема: NAT IP АТС Комендантъ
Добрый день.
Подскажите, есть ли режим полного проксирования на IP-PBX?
Дело в том, что сама АТС находится за NAT, соединения внутри сети проходят успешно. Соединения извне у части SIP-клиентов проходят, но тишина в трубке, а часть вообще даже авторизоваться не может. На маршрутизаторе прокинуты порты 5060 и 554 (это видеопоток). Может, ещё для какого-то порта нужно сделать статическую трансляцию?
Что вы подразумеваете под полным проксированием?
Особенностью АТС является то, что все абоненты должны подключаться из интернета или все из локальной сети, иначе не будет звука в одном или обоих направлениях. При подключении из интернета нужно пробросить диапазон rtp портов, а порт 554 не нужно, т.к. для передачи видео в SIP используется один из RTP портов. Кроме того, при работе из интернета нужны клиенты с работающим подключением к STUN серверу. Если вы используете linphone, то там эта функция есть, но не работает.
STUN точно работает у PortSip, Zoiper .....
Под полным проксированием я имею ввиду установление соединения только с сервером. Т.е. набрали на домофоне номер, он установил соединение с SIP-сервером, а сервер, в свою очередь, делает вызов от себя к SIP-клиенту. Обычно в этом случае SIP-сервер умеет делать преобразование кодеков. Т.е. фактически будет полная обработка голоса и управления на SIP-сервере, и клиент будет работать только с ним (обычно голосовой трафик делается между клиентами P2P, а управляющий через SIP-сервер).
Подскажите диапазон портов, которые надо прокинуть. 554 я уберу из NAT-а.
Адрес STUN-сервера, я так понимаю, можно найти на вашем сайте, я поищу.
IP АТС Комендантъ только так и работает. Диапазон RTP портов указан в настройках АТС “глобальные настройки - системные настройки”. STUN сервер можно использовать любой, например stun.l.google.com
Спасибо, попробуем.
Добрый день.
Мы попробовали, но возникли некоторые проблемы.
Начнём по порядку.
Схема включения. Сервер расположен в локальной сети за NAT (на маршрутитзаторе прокинуты порты 5060, 5080, 16384-65535. Далее пробовали 2 варианта включения.
1) домофон (SIP-CDA2) тоже находится в локалке, также SIP-клиент расположен в локалке, а другой SIP-клиент - в интернете. В этом случае звонки с домофона на внутренний номер работают, на внешний нет (домофон выдаёт КПВ, но звонок на внешний SIP-клиент не приходит. Звонок же извне на внутренний номер (SIP-клиента) проходит успешно, причём есть и голос, и видео.
2) Домофон подключен к интернету (за другим NATом через другого оператора). Аналогично на внутренний номер проходит вызов, а на внешний звонок проходит, но нет ни голоса, ни видео.
При всём этом зарегистрированные на SIP-сервере номера телефонов остаются в состоянии “занято” (видимо, до истечения определённого тайм-аута, либо до ручного сброса).
Т.е. у меня не получилось сделать нормальный вызов между клиентами (и между домофоном и клиентом), подключенными к интернету. Либо вызова вообще нет, либо звонок проходит, но нет передачи голоса и видео.
В настройках SIP-сервера пробовал выставить stun.i.google.com, результата не дало.
Все клиенты (и домофон тоже) зарегистрированы как внутренние номера.
Подскажите, где ещё может быть некорректная настройка, не позволяющая делать вызовы?
Не stun.i.google.com, а stun.l.google.com порт 19302. Еше попробуйте stun.sipnet.ru порт 3478, у них порты разные. Последний Port SIP недавно проверяли, к несчастью утратил способность работать со STUN, как и linphone. Zoiper и GS Wave должны работать. Суть проблемы заключается в предоставлении внутренних IP адреса и/или порта вместо внешних каким-то из клиентов. Что не так, мы можем определить по дампу wireshark.
Понял. Ближайшее время проверим.
Последний Port SIP недавно проверяли, к несчастью утратил способность работать со STUN, как и linphone.
Маленькое уточнение. PortSIP не то что бы утратил, там какие-то проблемы у разработчика, да такие, что Port SIP выпал из Маркета - т.е. надо видимо подождать. Потеря способности Linphone последней версии (4.1.1.) работать со STUN наблюдается только если не включить TURN. Если включить - то все прекрасно у всех работает. Во всяком случае на реальных IP точно. За nat-ом примеров у нас мало т.к. в дата центрах на машину дают IP прямиком, т.е. “нету ната” ....
В общем, запустить корректно вызовы при нахождении сервера за NAT не получилось. Может, есть ещё какие-то моменты, которые мы не учли?
Подключение SIP-сервера без NAT позволило сделать вызовы между абонентами с честными адресами. Также удалось сделать вызовы с домофона (SIP-CDA2, если я правильно помню) на телефон. Домофон находится за NAT, телефоны - с честными адресами оператора GSM.
Возник такой вопрос.
У нас не получилось использовать gsm.ключ. Пробуем делать вызов с телефона (из внешней сети) на номер домофона, который за NAT-ом. Зарегистрированы и телефон, и домофон на SIP-сервере, который включен без NAT. Вызов либо не проходит (выдаётся “занято”), либо проходит, идёт КПВ, но соединение не устанавливается, и дверь открыть не получается. Где и какие настройки нужно проверить и исправить, чтобы эта функция заработала?
У абонента номер определившегося телефона должен соответствовать набираемому, т.е. несоответствие может быть прописано 89161234567, а определяется +79161234567. Посмотреть можно по логам wireshark. Также должна стоять настройка открывание + управление и открыть реле1 (или 2). При этом разговор не устанавливается, дабы он не был платным. Слышится КПВ, после срабатывания реле происходит сброс. Для управления кнопкой домофона нужно в настройках реле поставить “открыть временно”, время открывания 1 сек., нормально разомкнутый.
Если домофон находится за NAT, должен быть указан внешний IPадрес или автоматически или STUN сервер.
В общем, запустить корректно вызовы при нахождении сервера за NAT не получилось. Может, есть ещё какие-то моменты, которые мы не учли?
АТС собрана таким образом, что для корректной работы во всех режимах она по идее должна быть на реальном IP, не за NAT-ом. Там много чего еще того, что вы не используете для вашей задачи, но это все равно имеет значение, к примеру, в одной системе может быть несколько АТС и т.п.
Если все равно хотите попробовать ради теста заставить работать АТС за NAT-ом без особых плясок с бубном, то могу предложить сделать вот что: После настройки АТС через конфигуратор в файле конфига в следующих местах прописываем реальный IP:
ProgramData\komendant-ip-pbx\conf\komendant-ip-pbx
после чего ограничиваем права файла конфига “только для чтения” и перезагружаем АТС чтоб она его захватила. И вуаля. Для вашей задачи должно все заработать.
У абонента номер определившегося телефона должен соответствовать набираемому, т.е. несоответствие может быть прописано 89161234567, а определяется +79161234567. Посмотреть можно по логам wireshark. Также должна стоять настройка открывание + управление и открыть реле1 (или 2). При этом разговор не устанавливается, дабы он не был платным. Слышится КПВ, после срабатывания реле происходит сброс. Для управления кнопкой домофона нужно в настройках реле поставить “открыть временно”, время открывания 1 сек., нормально разомкнутый.
Если домофон находится за NAT, должен быть указан внешний IPадрес или автоматически или STUN сервер.
Извините, но я не совсем понял про номера телефонов. Сейчас у нас на телефоне установлен SIP-клиент, который регистрируется на сервере с определённым номером (пусть это будет 105). И домофон зарегистрирован с номером, например, 104. Я правильно понимаю, что я делаю вызов через этого SIP-клиента на номер, с которым зарегистрирован домофон (в данном случае с номера 105 на номер 104) для того, чтобы сработало открывание? Меня несколько смутило то, что вы указываете именно номера сотовых, а не внутренних SIP-номеров.
После настройки АТС через конфигуратор в файле конфига в следующих местах прописываем реальный IP:
ProgramData\komendant-ip-pbx\conf\komendant-ip-pbx
после чего ограничиваем права файла конфига “только для чтения” и перезагружаем АТС чтоб она его захватила. И вуаля. Для вашей задачи должно все заработать.
Спасибо, я такой вариант тоже попробую.
Номера сотовых, это как пример несоответствия для описания всех условий. Если все соответствует, это хорошо.