Решаем проблемы с удаленными подключениями в 3CX

К нам периодически поступают обращения о некорректной работе удаленных пользователей, подключенных к 3CX через корпоративный NAT маршрутизатор или сетевой экран. В этой статье предлагаем пошаговое руководство по решению проблем с удаленными подключениями.


К сожалению, 3CX не может гарантировать корректную работу «прямых» удаленных подключений, особенно без использования технологии 3CX Tunnel.


Корректная работа не гарантируется по следующим причинам:


  • Специфическая либо некорректная топология сети;
  • Специфические либо некорректные настройки маршрутизатора или сетевого экрана как со стороны 3CX, так и со стороны удаленного пользователя;
  • Некорректная работа NAT или SIP ALG сервисов в сетевых устройствах (иногда устраняется обновлением прошивки);
  • Блокирование определенных портов интернет провайдерами (у некоторых операторов или в отелях);
  • Отсутствие доступа VoIP специалиста к сетевому оборудованию, т.е. невозможность настроить сеть заказчика для работы VoIP приложений.

На что следует обратить внимание, если вы столкнулись с проблемами при удаленном подключении?


Разрешение удаленного подключения для пользователя


В интерфейсе управления 3CX перейдите в свойства Пользователя на вкладку Параметры


image


  • Для того, чтобы разрешить «прямое» удаленное подключение, отключите опцию Запретить подключение за пределами локальной сети
  • Для того, чтобы разрешить удаленное подключение через 3CX Tunnel, отключите опцию Запретить подключение из публичной сети по туннелю 3CX

Публикация сервисов 3CX (проброс портов) на роутере


Прежде всего заметим, что чем проще топология вашей сети, чем меньше промежуточных устройств между сервером 3CX и WAN интерфейсом роутера, на который подключаются внешние пользователи, тем больше шансов на успех. Вы можете даже не подозревать, что Интернет провайдер выдал вам не «белый» IP адрес на WAN интерфейс, а «серый» IP из своей внутренней сети. Особенно часто это наблюдается в бизнес центрах, где Интернет раздают по внутренней локальной сети.


Для корректного подключения внешних пользователей, а также для прохождения аудио и видеопотока он них, на маршрутизаторе должны быть опубликованы (проброшены на IP адрес сервера 3CX) следующие порты:


  • 5060 UDP — SIP порт сервера 3CX
  • 9000–9500 UDP — RTP Аудио / Видео поток с удаленным пользователем
  • 5090 UDP и TCP — порт сервиса 3CX Tunnel
  • 5000 — 5001 или 80 / 443 — HTTP порты для веб сервиса 3CX

Рекомендуем ознакомиться с полным списком портов, используемым 3CX.


Удаленные SIP устройства с поддержкой работы через NAT


Если вы планируете использовать прямое SIP подключение (т.е. без технологии 3CX Tunnel), рекомендуется использовать только поддерживаемые 3CX телефоны. Они, в частности, корректно поддерживают следующие функции:


  • Rport
  • STUN
  • Keep — Alive

Подключите один из рекомендованных телефонов удаленно и убедитесь, что он зарегистрировался на 3CX. Сделайте звонок на 3CX эхо-тест *777. Если вы выполнили корректную настройку маршрутизатора со стороны сервера 3CX (как было описано выше), но вызов не проходит, либо слышимость односторонняя — скорее всего, проблема в маршрутизаторе, который соединяет удаленный IP телефон с Интернет (т.е. на вашей стороне).


Попробуйте подключиться еще раз, но с использованием 3CX Tunnel (3CX SBC). Если слышимость будет нормальная, вам следует вернуться к настройке маршрутизатора — обновить прошивку, убедиться в правильности настройки проброса портов, связаться с техподдержкой производителя и т.п.


Использование 3CX Tunnel и 3CX Session Border Controller


Если вы затрудняетесь определить причину некорректной регистрации удаленного абонента, либо не можете добиться двухсторонней слышимости, рекомендуем отказаться от «прямого» SIP подключения и использовать технологию 3CX Tunnel. 3CX Tunnel встроен в 3CX Client для всех платформ. Если вам нужно подключить аппаратный телефон или группу телефонов, рекомендуем использовать 3CX Session Border Controller.


Использование 3CX Firewall Checker Client


Если вам все же необходимо добиться корректной работы «прямого» подключения, рекомендуем запустить 3CX Firewall Checker Client. Основная задача этой утилиты — определить, правильно ли настроен статический проброс портов на сервер 3CX. Использование 3CX Firewall Checker Client может «дать подсказку» в следующих ситуациях:


  • Удаленный абонент не регистрируется
  • Односторонний звук с удаленным абонентом
  • Проблемы с сервером STUN

Лог ошибок 3CX Firewall Checker Client позволят вам примерно понять, где искать источник проблем.


Роутеры с SIP ALG и SIP Helper


Многие маршрутизаторы имеют функцию, называемую SIP ALG или SIP Helper. SIP ALG модифицирует заголовок SIP пакета для корректной NAT / PAT трансляции. Однако с развитием стандарта SIP появились более надежные механизмы прохождения NAT, например, SIP поле Rport в заголовке VIA. Все телефоны, рекомендованные 3CX, поддерживают поле Rport. Функция роутера SIP ALG может нежелательно модифицировать заголовок SIP VIA, исказив данные, установленные расширением Rport. Поэтому, мы настоятельно рекомендуем отключить опцию SIP ALG или SIP Helper, если она присутствует в вашем роутере. Ознакомьтесь с особенностями прохождения VoIP трафика через NAT / PAT трансляцию.


Системный параметр «ALLOWSOURCEASOUTBOUND»


Системный параметр ALLOWSOURCEASOUTBOUND устанавливается в консоли управления 3CX в разделе Параметры.


image


По умолчанию он равен 0 (выключен). Если его установить в 1 (включен), 3CX будет использовать для регистрации удаленного телефона IP адрес и порт из IP заголовка пакета (сетевой уровень), а не из поля Contact заголовка пакета SIP (уровень приложений). 3CX Media Server также будет использовать данные IP заголовка RTP (входящий медиапоток) пакета для выяснения адреса, на который следует отсылать исходящий медиапоток.


Указанный параметр рекомендуется установить, если имеются следующие проблемы:


  • Удаленный абонент за двойным или тройным NAT
  • Удаленный абонент не поддерживает расширение Rport
  • Удаленный абонент передает некорректную информацию о регистрации из-за ошибок в своем SIP стеке
  • Удаленный абонент подключен в своей сети через NAT роутер с включенным SIP ALG. Этот роутер некорректно модифицирует информацию в SIP заголовке. При этом вы не имеете доступа у удаленному роутеру.

Разнесение SIP портов в удаленных устройствах


Если несколько удаленных устройств подключаются из одной сети (LAN), и все вышеописанные методы не приводят к решению проблемы, можно попробовать на каждом таком устройстве назначить свой, неповторяющийся SIP порт. Например, на первом устройстве (телефоне, шлюзе и т.п.) установите SIP порт 5060, на втором 5062, на третьем 5064 и т.д. В некоторых случаях после этого устройства начинают успешно работать.


Заключение


Теперь вы видите, насколько грамотное планирование и корректная работа сетевой инфраструктуры важны для подключения удаленных пользователей, да и VoIP системы в целом. Подводя итог, еще раз обратим внимание на особенности работы 3CX с удаленными подключениями:


  • Если удаленный абонент не подключился, либо от него не проходит звук — это не проблема 3CX, это проблема сетевой инфраструктуры, в частности, WAN — LAN маршрутизации
  • Старайтесь максимально упростить инфраструктуру и исключить двойное и тройное NAT преобразование
  • Используйте рекомендованные, проверенные сетевые экраны и рекомендованное 3CX SIP оборудование
  • Установите самые последние обновления 3CX и самые последние прошивки на маршрутизаторы и SIP устройства
  • По возможности используйте 3CX Tunnel, который используется во всех софтфонах 3CX, либо 3CX SBC для удаленного подключения стандартных SIP телефонов

image


Повторим: 3CX поддерживает удаленные прямые SIP подключения. Тем не менее, 3CX гарантирует корректную работу удаленных абонентов только при условии использования технологии 3CX Tunnel. Во всех остальных случаях, в связи со множеством независящих от нас факторов, гарантировать корректное удаленное подключение невозможно!

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

© Habrahabr.ru