RSS
 

Настройка IP телефонии на базе Asterisk

25 Авг

asteriskЭта маленькая статья предлагается самым начинающим инженерам в сфере телекоммуникаций. В ней очень коротко описано как запустить голосовую связь через компьютерную сеть своими силами. Итак, начну с главного. В качестве источника я выбрал готовую систему для установки с пакетов 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’а.

Успехов!

 

Комментарии facebook

Комментарии vkontakte

6 комментариев

Опубликовано в Сети

 

Теги: , ,

Оставить комментарий

 

 
  1. roman

    Январь 11, 2013 at 07:35

    спасибо за статью! продолжение будет?

     
    • Александр Бойченко

      Январь 11, 2013 at 09:35

      В плане была разработка интеграции с AD, но пока руки дошли только до интеграции чат и звука :-). Если интересно, то могу написать об этом.

       
      • Ruslan

        Январь 23, 2013 at 04:51

        Александр, если можно опишите, очень интересно как было реализовано

         
  2. AndrewZ

    Март 3, 2015 at 19:16

    Александр, спасибо за статью. Больше не планируете освещать тему Asterisk-а?

     
    • Александр

      Март 24, 2015 at 14:09

      Пока нет. Сейчас работаю в другом направлении. Но, все может быть.