Один из простых способов соединить Lync Server с любым провайдером IP-телефонии.
Небольшим, но существенным препятствием для использования Lync Server в качестве основы корпоративной телефонии может стать особенность его работы с протоколом SIP. Особенность заключается в полной несовместимости со стандартами провайдеров IP-телефонии. Lync Server поддерживает TCP или TLS и не может передавать учетные данные, провайдеры IP-телефонии в свою очередь в основном используют UDP и требуют авторизацию по логину и паролю.
Задача
Подобрать наиболее простое и легкое решение для организации шлюза. В идеале бесплатное, стабильное и под Windows.
Решение
FreeSWITCH в минимально возможной конфигурации, достаточной для соединения с одной стороны с Lync Server и с другой для авторизации у провайдеров IP-телефонии.
В качестве основы для решения FreeSWITCH выбран не случайно. Идеологически это довольно мощная платформа-маршрутизатор потоков мультимедийного трафика с возможностью подключения дополнительных обработчиков в виде модулей-плагинов. Конфигурация Lync <-> FreeSWITCH <-> PSTN является как раз самым простейшим случаем, соответствующим архитектурной модели FreeSWITCH.
Топология
Всё зависит от конфигурации конкретной сети и существующей нагрузки на телефонию. Жизнеспособны оба варианта, как с установкой FreeSWITCH совместно с ролью Mediation Server (или Standard Edition), так и на отдельном сервере.
Настройка
Весь процесс настройки предельно простой и состоит из 3-х шагов:
Создание SIP-транков в Topology Builder
Открываем существующую топологию в Topology Builder. В свойствах Mediation Server включаем TCP порт (для примера 5068). Создаем новый объект PSTN Gateway (имя и адрес можно указать либо отдельного сервера, либо Mediation в случае совместной установки). В параметрах SIP-транка указываем порт, на котором слушает FreeSWITCH (например, 6000), протокол TCP (в этом примере), порт Mediation Server (5068).
Настройка Lync Server
Открываем раздел Voice Routing.
В подразделе Trunk Configuration открываем правило Global. Для параметра Encryption support level выбираем Not Supported, для параметра Refer support – None. Устанавливаем флажок Centralized media processing и убираем все остальные.
В подразделе Route создаем правило для маршрутизации звонков на внешние номера на SIP-транк до нашего шлюза.
Настройка FreeSWITCH
Скачиваем и устанавливаем FreeSWITCH. Удаляем вcё содержимое папки conf в директории установки. Вместо удаленных файлов распаковываем архив с конфигурацией (ссылка в конце поста).
В папке confpstn указываем учетные данные в шаблоне файла для одного из провайдеров и удаляем у него расширение «.noload». Если для вашего провайдера шаблона нет в папке, то можно взять любой за основу и скопировать его в файл без расширения «.noload». В итоге должен остаться один или несколько .xml файлов с параметрами действующих провайдеров IP-телефонии.
В файле freeswitch.xml указываем адрес (fe.lab.local в нашем примере), порт (5068) и протокол (tcp) Lync Mediation Server, локальные адрес и порт (6000) для соединения с Lync Mediation Server, локальные адрес и порт (5060, но может быть любой) для соединения с провайдером PSTN.
В конце файла в секции «dialplan» в контексте «from_Lync» для в правиле «action» указываем имя шлюза из профайла действующего провайдера PSTN, к которому будут отравляться все внешний звонки от Lync. Если провайдеров несколько, необходимо создать правила маршрутизации вызовов. Можно это сделать в самом Lync, но это уже лучше описать в отдельной статье.
FreeSWITCH может запускаться как консольное приложение, так и как сервис. После внесения параметров в шаблон конфигурации необходимо запустить консольное приложение и проверить, подключились ли профйлы и шлюзы (gateway). Для этого в командной строке выполняется команда:
sofia status
Если оба профайла и gateway (к PSTN) успешно запустились и подключились, можно закрывать консоль командой «...» (три точки), запускать и ставить на отложенный автозапуск сервис FreeSWITCH.
Шлюз настроен!
Шаблон конфигурации для FreeSWITCH: freeswitch.conf.lync-pstn.zip.
Пользуйтесь на здоровье!
Автор: olegbaturin