Форумы  ·  Войти  · 

Тема: NAT IP АТС Комендантъ

06.11.19 2:45   iyago  (42/07.09.18)  

Добрый день.
Подскажите, есть ли режим полного проксирования на IP-PBX?
Дело в том, что сама АТС находится за NAT, соединения внутри сети проходят успешно. Соединения извне у части SIP-клиентов проходят, но тишина в трубке, а часть вообще даже авторизоваться не может. На маршрутизаторе прокинуты порты 5060 и 554 (это видеопоток). Может, ещё для какого-то порта нужно сделать статическую трансляцию?

[ Изменено: 06.11.19 7:40 Oleg [Editor] ]
[ #1 ]  06.11.19 7:21   Tech.Support  KOMENDANT LAB  

Что вы подразумеваете под полным проксированием?
Особенностью АТС является то, что все абоненты должны подключаться из интернета или все из локальной сети, иначе не будет звука в одном или обоих направлениях. При  подключении из интернета нужно пробросить диапазон rtp портов, а порт 554 не нужно, т.к. для передачи видео в SIP используется один из RTP портов. Кроме того, при работе из интернета нужны клиенты с работающим подключением к STUN серверу. Если вы используете linphone, то там эта функция есть, но не работает.

[ Изменено: 06.11.19 7:26 Tech.Support ]
[ #2 ]  06.11.19 7:37   Oleg [Editor]  KOMENDANT LAB  

STUN точно работает у PortSip, Zoiper .....

[ #3 ]  06.11.19 8:25   iyago  (42/07.09.18)  

Под полным проксированием я имею ввиду установление соединения только с сервером. Т.е. набрали на домофоне номер, он установил соединение с SIP-сервером, а сервер, в свою очередь, делает вызов от себя к SIP-клиенту. Обычно в этом случае SIP-сервер умеет делать преобразование кодеков. Т.е. фактически будет полная обработка голоса и управления на SIP-сервере, и клиент будет работать только с ним (обычно голосовой трафик делается между клиентами P2P, а управляющий через SIP-сервер).
Подскажите диапазон портов, которые надо прокинуть. 554 я уберу из NAT-а.
Адрес STUN-сервера, я так понимаю, можно найти на вашем сайте, я поищу.

[ #4 ]  06.11.19 8:34   Tech.Support  KOMENDANT LAB  

IP АТС Комендантъ только так и работает. Диапазон RTP портов указан в настройках АТС “глобальные настройки - системные настройки”. STUN сервер можно использовать любой, например stun.l.google.com

[ #5 ]  06.11.19 10:23   iyago  (42/07.09.18)  

Спасибо, попробуем.

[ #6 ]  13.11.19 4:21   iyago  (42/07.09.18)  

Добрый день.
Мы попробовали, но возникли некоторые проблемы.
Начнём по порядку.
Схема включения. Сервер расположен в локальной сети за NAT (на маршрутитзаторе прокинуты порты 5060, 5080, 16384-65535. Далее пробовали 2 варианта включения.
1) домофон (SIP-CDA2) тоже находится в локалке, также SIP-клиент расположен в локалке, а другой SIP-клиент - в интернете. В этом случае звонки с домофона на внутренний номер работают, на внешний нет (домофон выдаёт КПВ, но звонок на внешний SIP-клиент не приходит. Звонок же извне на внутренний номер (SIP-клиента) проходит успешно, причём есть и голос, и видео.
2) Домофон подключен к интернету (за другим NATом через другого оператора). Аналогично на внутренний номер проходит вызов, а на внешний звонок проходит, но нет ни голоса, ни видео.
При всём этом зарегистрированные на SIP-сервере номера телефонов остаются в состоянии “занято” (видимо, до истечения определённого тайм-аута, либо до ручного сброса).
Т.е. у меня не получилось сделать нормальный вызов между клиентами (и между домофоном и клиентом), подключенными к интернету. Либо вызова вообще нет, либо звонок проходит, но нет передачи голоса и видео.
В настройках SIP-сервера пробовал выставить stun.i.google.com, результата не дало.
Все клиенты (и домофон тоже) зарегистрированы как внутренние номера.
Подскажите, где ещё может быть некорректная настройка, не позволяющая делать вызовы?

[ #7 ]  13.11.19 6:43   Tech.Support  KOMENDANT LAB  

Не stun.i.google.com, а stun.l.google.com порт 19302. Еше попробуйте stun.sipnet.ru порт 3478, у них порты разные. Последний Port SIP недавно проверяли, к несчастью утратил способность работать со STUN, как и linphone. Zoiper и GS Wave должны работать. Суть проблемы заключается в предоставлении внутренних IP адреса и/или порта вместо внешних каким-то из клиентов. Что не так, мы можем определить по дампу wireshark.

[ #8 ]  13.11.19 6:46   iyago  (42/07.09.18)  

Понял. Ближайшее время проверим.

[ #9 ]  13.11.19 14:51   Oleg [Editor]  KOMENDANT LAB  
Tech.Support - 13.11.19 6:43

Последний Port SIP недавно проверяли, к несчастью утратил способность работать со STUN, как и linphone.

Маленькое уточнение. PortSIP не то что бы утратил, там какие-то проблемы у разработчика, да такие, что Port SIP выпал из Маркета -  т.е. надо видимо подождать. Потеря способности Linphone последней версии (4.1.1.) работать со STUN наблюдается только если не включить TURN. Если включить - то все прекрасно у всех работает. Во всяком случае на реальных IP точно. За nat-ом примеров у нас мало т.к. в дата центрах на машину дают IP прямиком, т.е. “нету ната” ....

[ #10 ]  21.11.19 10:58   iyago  (42/07.09.18)  

В общем, запустить корректно вызовы при нахождении сервера за NAT не получилось. Может, есть ещё какие-то моменты, которые мы не учли?
Подключение SIP-сервера без NAT позволило сделать вызовы между абонентами с честными адресами. Также удалось сделать вызовы с домофона (SIP-CDA2, если я правильно помню) на телефон. Домофон  находится за NAT, телефоны - с честными адресами оператора GSM.
Возник такой вопрос.
У нас не получилось использовать gsm.ключ. Пробуем делать вызов с телефона (из внешней сети) на номер домофона, который за NAT-ом. Зарегистрированы и телефон, и домофон на SIP-сервере, который включен без NAT. Вызов либо не проходит (выдаётся “занято”), либо проходит, идёт КПВ, но соединение не устанавливается, и дверь открыть не получается. Где и какие настройки нужно проверить и исправить, чтобы эта функция заработала?

[ Изменено: 21.11.19 11:01 iyago ]
[ #11 ]  21.11.19 11:19   Tech.Support  KOMENDANT LAB  

У абонента номер определившегося телефона должен соответствовать набираемому, т.е. несоответствие может быть прописано 89161234567, а определяется +79161234567. Посмотреть можно по логам wireshark. Также должна стоять настройка открывание + управление и открыть реле1 (или 2). При этом разговор не устанавливается, дабы он не был платным. Слышится КПВ, после срабатывания реле происходит сброс. Для управления кнопкой домофона нужно в настройках реле поставить “открыть временно”, время открывания 1 сек., нормально разомкнутый.
Если домофон находится за NAT, должен быть указан внешний IPадрес или автоматически или STUN сервер.

[ #12 ]  21.11.19 11:42   Oleg [Editor]  KOMENDANT LAB  
iyago - 21.11.19 10:58

В общем, запустить корректно вызовы при нахождении сервера за NAT не получилось. Может, есть ещё какие-то моменты, которые мы не учли?

АТС собрана таким образом, что для корректной работы во всех режимах она по идее должна быть на реальном IP, не за NAT-ом. Там много чего еще того, что вы не используете для вашей задачи, но это все равно имеет значение, к примеру, в одной системе может быть несколько АТС и т.п. 
Если все равно хотите попробовать ради теста заставить работать АТС за NAT-ом без особых плясок с бубном, то могу предложить сделать вот что: После настройки АТС через конфигуратор в файле конфига  в следующих местах прописываем реальный IP:
ProgramData\komendant-ip-pbx\conf\komendant-ip-pbx



после чего ограничиваем права файла конфига “только для чтения” и перезагружаем АТС чтоб она его  захватила. И вуаля. Для вашей задачи должно все заработать.

[ #13 ]  21.11.19 16:44   iyago  (42/07.09.18)  
Tech.Support - 21.11.19 11:19

У абонента номер определившегося телефона должен соответствовать набираемому, т.е. несоответствие может быть прописано 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


после чего ограничиваем права файла конфига “только для чтения” и перезагружаем АТС чтоб она его захватила. И вуаля. Для вашей задачи должно все заработать.

Спасибо, я такой вариант тоже попробую.

[ #14 ]  21.11.19 17:24   Tech.Support  KOMENDANT LAB  

Номера сотовых, это как пример несоответствия для описания всех условий. Если все соответствует, это хорошо.

Komendant.pro
 ©1999-2024  Инженерная лаборатория "Комендантъ"