Подключение IP-телефонов Akuvox к АТС Avaya без лицензии на SIP +7




Пришлось побывать мне в офисе некоторой компании, где использовались только аналоговые телефоны. И у этих людей было стойкое желание перейти хотя бы отчасти на IP телефонию с возможностью «протянуть» телефоны из внешней сети. Как АТС у них использовалась аппаратная Avaya. Все было заведено на нее: роботы, диалпланы, режимы работы. Полностью готовый офис. Но аналоговый.

«К Avaya можно подключить и IP телефоны», – скажете вы. И будете правы. Но т.к. это полностью проприетарный продукт – нужна лицензия и стоит эта лицензия очень ощутимых денег – больше стоимости самих IP-телефонов. Причем лицензии нужны на все. Была поставлена задача: создать гибридную связь с разумным количеством IP телефонов в пределах сети с минимальными затратами.

Начнем


В наличии имеется:

• Avaya на ~50 номеров с настроенными несколькими транками
• Готовая сеть с NAT`ом и firwall`ом.
• Synology DS209+II (3,5 2TB HDD x2 в RAID1)
• Dell latitude (Intel T5600 @1.8 ГГц, 2ГБ ОЗУ, 750 ГБ HDD, сломанный тачпад и трэкболл)
• Человеко-часы
• IP телефоны Akuvox



Серверная вместе с Avaya

После некоторых раздумий, была обговорена такая схема:

Поднимается Asterisk на latitude и убирается в шкаф, бэкап которого уходит на Synology. Avaya транком подключается к Asterisk и производится настройка из Avaya FXS шлюза. А так же полное переконфигурирование схемы. Avaya становится глупой железкой которая только обслуживает аналоговые телефоны.

Дальше любой IP телефон настраивается непосредственно для работы только с Asterisk, что не есть проблема и даже облегчение.


Схема нашего решения

Приступаем


Первое, с чего стоит начать – для реализации данной задачи у Avaya должна быть лицензия хотя бы на один транк. Пускай даже и использованная. Нам нужна одна, чтобы подцепить Asterisk. Далее связью и транками (любым их количеством) будет управлять он.

Берем наш прекрасный дэлл и устанавливаем на него Debian stable (благо не успела умереть клава, но даже это не было бы проблемой установить систему предварительно на ПЗУ) через debootstrap (потому что можем и хочется), дальше собираем Asterisk из исходников и устанавливаем на него FreePBX морду. (Ну-ну, все же не только из консоли управлять железом)

Расписывать полный процесс установки я не буду, просто дам ссылку на мануал использовавшийся мной для поднятия этого добра:

После минимальной настройки Asterisk создаем экстеншены на каждый аналоговый канал. Да. Не послышалось. На каждый, на который в будущем захотим звонить. В моей конфигурации экстеншены аналоговых телефонов имеют четырехзначные номера. Для простоты использования рекомендую создавать такие же номера, как в Avaya и в Asterisk. Автор использовал для лучшего описания в Asterisk четырехзначные номера, которые соответствовали аналоговым, они трехзначные.

Примерная схема выглядит так:

На каждую аналоговую линию поднимается соответствующий экстеншен. (Да-да, секурность на высоте). Так же создаем пользователя (для удобства у каждого экстеншона имеется пользователь с таким же именем, что не есть обязательно).



Далее идем в саму Avaya. Делаем по этому мануалу. Проверяем наличие лицензий для транков.



Отлично, она еще и вечная!

Переходим в раздел «Линии» и создаем новую линию SIP.

Во вкладке «Линия SIP» Устанавливаем значение поля «Метод маршрутизации вызовов» на значение «URI запроса». По желанию можем заполнить поле «Доменное имя ITSP», куда можно вписать домен нашего asterisk, если такой имеется. У меня его нет, поэтому оставляю пустым.

Вкладка «Транспорт»

Поле «Адрес прокси-сервера ITSP» – указываем адрес нашего Asterisk сервера.
Так же указываем порты (стандартный 5060) и протоколы (TCP\UDP, если не уверены — оставьте UDP). Тут же можете указать нужные для данного транка DNS сервера.

Вкладка «Учетные данные SIP»

Добавляем учетную запись по данным от экстеншена Asterisk



Вкладка «SIP URI»

Не трогаем поля, где установлено значение «Использовать имя пользователя из учетных данных».
Указать номера входящей группы соответствующий номеру экстеншена.

Исходящей группы – придумываем сами и делаем единой для всех учетных записей здесь.



Вкладка «VoIP»
Здесь настраиваем кодеки и указываем стандарт DTMF. Рекомендую выставить в такой же градации как установлено в Asterisk. Или просто синхронизировать список.



Создадим диалплан для звонков.

Переходим в «ASR». Создаем новый глобальный диал-план. Поле «Код» — указываем N; (обращаю ваше внимание, что ";" в конце обязательна, если не хотите звонить в пустоту. Автор на этом погорел и докопался до сути только в udp дампах). Поле «Функция» — Набор. Поле «Номер телефона» — Указываем сам маршрут. У меня это N"@host". Также указываем идентификатор исходящей линии который придумали ранее.



Теперь создадим шорткат для звонков именно на эту линию.

Переходим в «Краткий код» и создаем новый. В поле «Код» – указываем желаемый шорткат. У меня это 0. Поле функция – «Набор». Поле «Номер телефона» – N (без ";"). Поле «Идентификатор группы исходящей линии» – собственно, группа, созданная в ASR.

Данные настройки применяются только для удобства использования в Asterisk. Для клиентов исключительно SIP`овых на Asterisk будут созданы такие же трехзначные номера. Для аналогов это будет маршрут N и все вызовы будут идти в Asterisk независимо от того, кто вызывается. На Asterisk заводим роуты и всю логику.



Минимальный конфиг для звонков на IP телефоны создан.

Но мы ведь хотим и принимать вызовы с этой линии. Поэтому открываем «Маршрут входящих вызовов» и создаем новый. Что нам тут важно — это два поля, «Емкость несущий» и «Идентификатор группы линии» на вкладке «Стандартный».

И вкладка «Пункты назначения» – указать номер, соответствующий аналоговой линии. На данном контакте это номер 123. Но в маршрутах указан как 1125. Потому что в дебрях авайи уже стоит редирект с 125 на 123. Не хочется трогать устоявщиеся маршруты работы сотрудников. Поэтому делаем все максимально прозрачно для них.



Вот мы и скрестили Avaya с Asterisk. Но пока что она у нас не полный FXS шлюз. Потому что мы с Asterisk не можем звонить на другие транки Avaya. И вот тут столкнулись с главной проблемой. Asterisk не может через IVR перевести вызов на нужный нам транк. На этом этапе было принято решение сделать из Avaya «глупый» FXS шлюз, занимающийся только аналоговыми линиями. А всю магию отдать на участь Asterisk. Он еще и более гибкий. Это требует полной настройки прозрачной для пользователей миграции их АТС на Asterisk. Для меня лично это еще пара дней работы… Эх.

Так же была необходимость подключения некоторых телефонов из внешней сети. Открывать общий доступ не хочется, поэтому на том же Dell поднимаю OpenVPN. Много ресурсов это не займет. Подумаешь VoIP трафик по UDP.

Настройка бэкапа нашего прекрасного сервера

Для бэкапа использовался встроенный пакет в FreePBX для бэкапа. Бэкап ложится по ssh на Synology. Все по расписанию в 00.00 еженедельно, учитывая, что конфигурация сервера не меняется часто после настройки. В первые дни я делал бэкапы почти каждый час. С радостью бы поднял все в Docker`е на Synology, если бы была на руках модель с x86. Или вовсе в нативном пакете DSM. Но имеем то, что имеем.

Телефоны


Выбирать мне не пришлось, работал с теми, которые дали. Это модели R50, R-53P, R-59P, EM53, EM63 от Akuvox. Телефоны на твердую уверенную четверку с плюсом, за что можно смело сказать спасибо. У всех моделей Akuvox стандартно имеется два Ethernet порта (Internet\PC), и работа в режиме моста или роутера. Модели с индексом «P» имеют PoE. Кому мало – полные спецификации на русском языке можно посмотреть тут.

Всех моделей у меня было по одной штуке из закупленного на склад набора, что вполне достаточно для простых тестов с базовой конфигурацией моего извращенного FXS шлюза.
R50 базовая модель на 1 SIP аккаунт, R53 имеет 3 SIP аккаунта, R59 имеет 6 SIP аккаунтов.
Остальная функциональная часть у них одинаковая. Разве что модули расширения, в моем случае могут подключаться только к R-59P, потому что только у него имеется необходимый порт RJ12. Разница между EM53 и EM63 только в типе экрана: у 53-его он монохромный, а у 63-го цветной. Последовательность подключения модулей не важна.

Фото устройств


R59P с подключенным модулем расширения на котором запущен тест LED индикаторов



Коробка R59



Коробка от модуля EM53 и сам EM53



R53 с русским меню


Коробка R53



R50 в коробке



Коробка R50

Набор возможностей стандартный: индикаторы BLF\BLFList, SRTP, локальная конференция, VPN (только OpenVPN через импортирование ovpn файла, – чем мы и воспользуемся), несколько удаленных книг (в том числе Broadsoft), удаленное управление, стягивание конфига и обновление с сервера, интеграция в LDAP.

Позабавила возможность смены действия клавиш. К примеру, можно сменить действие клавиш «Ок» и «назад». Или стрелок.

Русский язык имеется, но не в прошивке «из коробки». Перевод добротный, не китайский.
Настройка всего этого добра ниже.

У телефонов приятный пластиковый корпус, трубка удобно лежит в руке, экран информативный и не имеет ничего лишнего. Звук хороший, придраться не к чему.

ИМХО: R59P лучший из имеющихся. Экран ч/б но не монохромный как у R50/53.



Экраны для сравнения

Аппарат имеет назначенные по дэфолту клавиши переключения аккаунтов с разноцветными индикаторами на каждой (можно поменять) и порт для модулей расширения.

Про модули – просто экран с доп. кнопками. Сколько в цепочке их может быть не удалось выяснить, ибо всего имею только 2. С двумя точно работает. Если кнопок станет мало — имеется трехстраничный интерфейс на каждом из модулей. Цепочка подключения (цветной или ч/б модуль так же не важна).

Настройка телефонов


Полазив по официальному сайту была найдена документация. И в разделе support был найден документ по AutoP.

Отлично. Зайдем на сами телефоны. У меня было достаточно времени с ними поиграться, так как мне прислали их на руки в основной офис. Сами работы по настройке этого симбиоза были позже.
Рядом в документации лежат рекомендации по настройкам для OpenVPN.

Вот в этом и кроется главный минус данных телефонов. У них нет выбора типа VPN. Только OpenVPN без вариантов. Ну хоть бы pptp или l2tp бы дали. Скудновато в этом плане.

Как я уже говорил, у телефонов имеется русский язык. Для LCD экрана это отлично. Но вот для web-интерфейса – субъективно не привычно. В целом, русский интерфейс понятный, все что нужно человеку для использования и не только, имеется.



Меняем на англ и идем в Upgrade>Advanced



Ну все понятно. По PnP или DHCP телефон получает адрес AutoP сервера и лезет туда за конфигом и обновлениями.

В документации не описана каждая возможна опция, только маленький кусочек. Настраиваем телефон через web, выставляем желаемые настройки, и жмем кнопку Export Autop Template. В результате, у нас будет текстовый документ со всеми доступными для пользователей/администраторов опциями.

Чуть ниже, в этом же меню есть опция Export в подразделе Others. Я поначалу его скачивал и не мог понять, почему скачивается config.tgz. Который не архив, а текстовый файл, но зашифрован. Благо все решилось.

Конфигурационный файл имеет синтаксис:

Config.Account\Network.<подраздел>.<пункт> = <значение>

К примеру:

Config.Account1.OUTPROXY.BakServer =

В зависимости от параметра настройки, значение может быть числовым или текстовым. Все просто и понятно.

Для автоматической настройки персонализированных телефонов необходимо дать им имена соответствующие их MAC адресу с расширением cfg.

Для сервера шары было решено выбрать tftp как самый простой и минимально необходимый.
Для телефонов через VPN это проблема. Но мы предварительно в них загрузим все необходимые настройки и передадим человеку. Для tftp использовал tftpd-hpa на все том же dell. Бэкап директории по ssh на Synology так же организован.

Вопрос безопасности не встает остро, так как сеть локальная, уже за NAT`ом с проброшенным VPN по файлу конфигурации. А локально оно никому не нужно, но всем доступно. Так же туда положил phonebook.xls созданный по такому же принципу, как и конфиг. Так же ничего сложного. Если будет мало одной книжки – телефон тащит до 5 таких. Еще и локальную иметь может. За глаза места под номера.

Настройка одного телефона облегчила настройку всех остальных. Автору идеи AutoP вечная слава.

Вместо заключения


Проделана большая работа. Создана основа для переезда на Asterisk, все аналоговые линии уже имеют свой личный экстеншен и свободно общаются с IP-телефонами. Временно, пока не перенес транки из Avaya в Asterisk был использован еще один аккаунт для транка от SIP провайдера. Он уже только для Asterisk. На нем обкатывается перенос и общее тестирование тоже на нем. Маршруты – это отдельная история, и как временное решение в конфиге Avaya пока что адЪ. Но это временно. Перенос идет полным ходом.

Входе ввода в эксплуатацию всего решения, по итогу очень порадовали телефоны Akuvox. В моем внутреннем восприятии они прошли полный путь от «ой что это» до понимания, что заказчик на этот раз действительно не промахнулся. Akuvox оказался объективно стабилен, вменяем и за свои деньги – это вполне рабочий вариант.

Если будет ажиотаж, напишу полный мануал по переносу и настройке всего этого добра в Asterisk.
Из фич которые могут понравится – можно вынести весь IVR в google.voice. Приветствия, речи и т.д. будут генерироваться в риалтайме, то есть, без записанных звуковых файлов.
-->


К сожалению, не доступен сервер mySQL