суббота, 12 мая 2012 г.

Настройка AsteriskNOW




Эта маленькая статья предлагается самым начинающим инженерам в сфере телекоммуникаций. В ней очень коротко описано как запустить голосовую связь через компьютерную сеть своими силами. Итак, начну с главного. В качестве источника я выбрал готовую систему для установки с пакетов AsteriskNOW. Она построена на системе CentOS, которая полностью совместима с Fedora & Red Hat. Соответственно, все дополнения к ней можно ставить с .rpm пакетов. Установка тривиальна и описывать ее я не буду.
После установки системы нам предложат ввести логин и пароль. Если Вы во время установки пропустили шаг по настройке сети, то его сейчас необходимо восполнить. Иначе, мы не сможем управлять Asterisk’ом через веб-интерфейс. Допустим у нас интерфейс сетевой карты имеет адрес 10.0.10.5/24. Тогда после введения в адрессной строке браузера http://10.0.10.5 на другой машине, мы получим веб-интерфейс FreePBX. По умолчанию логин: freepbx, пароль: fpbx. Когда ввойдем, увидим приблизительно такую картинку:


Здесь мы видим статус системы: нагрузка, аптаймы, сервисы, количество подключений и другое. Скажу сразу, что это уже обновленная и дополненная система со всеми плагинами. Напомню, Asterisk является модульной системой и обновляется частями. Сейчас мы рассмотрим некоторые возможности этой системы. Начнем собственно с обновления. Не буду говорить по какому порту идет обновление ибо не испытывал, поэтому сделаем доступ данной машины в интернет через обычный static NAT. Почему статический NAT, а не, скажем, NAT overload? При дальнейшей настройке системы для звонков с локалки в интернет и обратно нам необходимо будет открыть некоторые порты. Об этом позже. А сейчас перейдем на вкладку Module Admin и начнем обновление системы.

Выберем необходимые плагины с расширенного репозитория. Сразу скажу, что желательно поставить следующие плагины: Asterisk Info, Asterisk SIP Settings, Java SSH. Первый плагин даст нам возможность мониторить подключения пользователей к нашей системе. Второй нужен для настройки работы системы в интернете. Третий — клиент для доступа к системе по SSH. Все остальные плагины по желанию.

Перед тем, как начать создание номеров для клиентов хочу предупредить, что все настройки Asterisk’а через веб-интнрфейс не будут осуществляться пока не сделать несколько изменений в системе. Поэтому, проделаем следующее:

cd /etc/asterisk

mv extensions.conf /tmp/extensions.conf

mv sip.conf /tmp/sip.conf

mv iax.conf /tmp/iax.conf

mv features.conf /tmp/features.conf

После перемещения указанных файлов нужно извлечь конфиг Asterisk’а.

cd /var/lib/asterisk/bin/

./retrieve_conf

После проделанных манипуляций управлять системой можно через веб-интерфейс. Почему я сделал перемещение а не удаление? Наверное, чтобы попозже изучить эти файлы, но вы можете их просто удалить. Итак, давайте создадим пару номеров для проверки работоспособности системы. Нажимаем на вкладку Extensions.


Выбираем тип девайса, а точнее протокол, по которому будет осуществляться связь. В данном случае мы виберем SIP, так как он самый распостраненный и стандартизированный. Нажимаем Submit и переходим к картинке:


Здесь три поля обязательных: номер клиента (0004), отображаемое имя клиента (user04), пароль клиента (User04). После создания номера необходимо подтвердить изменения. Asterisk перечитает конфиги и номер создасться. Как только вы создадите несколько номеров можно подключить соответственно несколько SIP клиентов для проверки. Я пользуюсь X-Lite 3. Вы можете выбрать любой доступный SIP клиент здесь.

На примере клиента X-Lite 3 покажу как подключиться к Asterisk. Вот так выглядит клиент:

А настройки еккаунта так:


После подключения на нескольких машинах можно пробовать звонить. С помощью плагина Asterisk Info можно мониторить подключения клиентов и просматривать статистику.


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


Чесно говоря, я перерыл много документации о том, как за фаерволом настроить работу Asterisk’а. Пробовал указывать реальный IP адрес и локальные сети, пробовал и другие методы, но в итоге у меня звонило между машинами в локалке, но не звонило в интернете, или ноборот. После нескольких неудачных експериментов я поставил кавычки как на рисунке (указал что сервер имеет реальный IP, хотя это не так и поставил кавычку НАТить звонки) и у меня все заработало. Не претендую на точность и все такое, но суть в том, что такой расклад у меня заработал.

После этого нужно не забыть сделать несколько манипуляций с фаерволом. В моем случае это Cisco ASA 5540. И на ней я сделал такие настройки:

static (dmz,internet) 204.204.204.204 10.0.10.5 netmask 255.255.255.255 — собственно статический NAT о котором я говорил ранее. dmz — интерфейс ДМЗ, где находится наш сервер. internet — интерфейс, который смотрит в мир.

access-list INTERNET-IN extended permit udp any host 204.204.204.204 eq sip — открываем SIP порт для соединения.

access-list INTERNET-IN extended permit udp any host 204.204.204.204 range 10000 10100 — открываем по 2 порта на каждый конкурирующий звонок.


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

1 комментарий: