Установка Asterisk 13 (PBX) на Centos 7.x и подключение Web GUI

Содержание

Subscribe RSS

Asterisk — это свободное ПО, которое позволяет с минимально приемлемым аппаратным обеспечением организовать аналог классической АТС. Astterisk поддерживает множество VoIP-протоколов и предоставляет богатые функции управления звонками (Голосовая почта, Конференц-связь, интерактивное голосовое меню, постановка звонков в очередь и распределение их по абонентам, и т. д.).

В данной статье рассмотрим установку Asterisk 13 на Centos 7 с дальнейшей настройкой визуального web-интерфейса.

Подготовка к установке

1. Обновление системы

Залогиньтесь от имени root и обновите всё, что установлено в системе.

2. Установка требуемых пакетов

После того, как система обновлена, нужно установить несколько нужных пакетов с помощью следующей команды, которая содержит все необходимые пакеты и все зависимости.

]# yum install gcc gcc-c++ php-xml php php-mysql php-pear php-mbstring mariadb-devel mariadb-server mariadb sqlite-devel lynx bison gmime-devel psmisc tftp-server httpd make ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel uuid-devel libtool libuuid-devel subversion kernel-devel kernel-devel-$(uname -r) git subversion kernel-devel php-process crontabs cronie cronie-anacron wget vim

a

Проверьте список пакетов, которые будут установлены и нажмите "Y" для продолжения. Обновление займет около 125 Мб в зависимости от того, какие пакеты были установлены ранее. После успешной операции вы увидите список установленных пакетов и обновлений, включая все необходимые зависимости.

3. Настройка MariaDB

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

]# systemctl enable mariadb [root@centos-7

]# systemctl start mariadb [root@centos-7

]# systemctl status mariadb

b

Следующая команда установит пароль root на базу, удалит анонимного пользователя, тестовую базу данных и запретит удаленный вход в систему пользователя.

4. Установка libjansson

Jansson — это C-библиотека для кодирования, декодирования и манипулирования данными в формате JSON. Скачайте самый актуальный пакет с сайта разработчика:

c

]# tar -zxvf jansson-2.7.tar.gz

]# cd jansson-2.7 [root@centos-7

d

Для компиляции настроенного пакета используем связку команд make и make install в папке, куда был распакован архив.

[root@centos-7 jansson-2.7]# make clean [root@centos-7 jansson-2.7]# make make install [root@centos-7 jansson-2.7]# ldconfig

Установка Asterisk

Когда подготовка сервера завершена, начнем установку самого Asterisk. Скачайте самый свежий пакет с сайта разработчика в разделе Download, или воспользуйтесь командой wget.

e

Распакуйте архив, перейдите в созданную папку и сконфигурируйте пакет перед сборкой:

]# tar -zxvf asterisk-13.5.0.tar.gz [root@centos-7

]# cd asterisk-13.5.0 [root@centos-7 asterisk-13.5.0]# ./configure —libdir=/usr/lib64

f

Если все прошло успешно, вы увидите такой логотип в стиле ASCII Art:

g

Установка модулей

Чистый Asterisk конечно работоспособен, но не зря он расширяется плагинами и модулями. Добавим пару полезных функций.

1. Главное меню настройки

Чтобы попасть в меню настройки и выбора модулей, выполните следующую команду и выберите нужные параметры.

[root@centos-7 asterisk-13.5.0]# make menuselect

Как мы видим, большинство нужных модулей включено по умолчанию. Можно отключить ненужные модули или добавить что-то на свой вкус. У каждого пункта краткое описание его задачи.

Полезно будет включить, например, модуль поддержки mp3. Для этого выберите "format_mp3", как показано ниже.

h

Затем перейдите в секцию Core Sound Packages и отметьте аудио-пакеты как показано на скриншоте:

j

Затем выберите все пакеты из "Music On Hold Packages", и из "Extra Sound Packages" выберите те, которые содержат в названии EN. Нажмите "Save Exit", чтобы перейти к следующему шагу.

2. Загрузка mp3 библиотек

Теперь запустите следующую команду для загрузки библиотеки mp3-декодера.

[root@centos-7 asterisk-13.5.0]# contrib/scripts/get_mp3_source.sh

l

3. Установка модулей

Когда все нужное включено, а ненужное выключено, выполним сборку и установку. Сначала make, после успешного результата — make install.

[root@centos-7 asterisk-13.5.0]# make [root@centos-7 asterisk-13.5.0]# make install

m

Если все успешно установилось, Asterisk предложит вам установить демонстранционные конфиги:

[root@centos-7 asterisk-13.5.0]# make samples [root@centos-7 asterisk-13.5.0]# make config

После установки

1. Добавление Asterisk пользователя

Вы можете создать отдельного пользователя и дать ему право работать с Asterisk, чтобы службы запускались от его имени. Для этого выполните следующие команды:

[root@centos-7 asterisk-13.5.0]# useradd -m asterisk [root@centos-7 asterisk-13.5.0]# chown asterisk.asterisk /var/run/asterisk [root@centos-7 asterisk-13.5.0]# chown -R asterisk.asterisk /etc/asterisk [root@centos-7 asterisk-13.5.0]# chown -R asterisk.asterisk /var//asterisk [root@centos-7 asterisk-13.5.0]# chown -R asterisk.asterisk /usr/lib64/asterisk [root@centos-7 asterisk-13.5.0]# systemctl restart asterisk [root@centos-7 asterisk-13.5.0]# systemctl status asterisk

n

2. Настройка правил файрволла

Теперь займемся безопасностью. По умолчанию на CentOS 7 вместо iptables используется FirewallD. Запустим его.

]# systemctl start firewalld [root@centos-7

]# systemctl enable firewalld

Теперь разрешите доступ к портам, которые используются в Asterisk, добавив следующие правила:

]# firewall-cmd —zone=public —add-port=5060/udp —permanent [root@centos-7

]# firewall-cmd —zone=public —add-port=5060/tcp —permanent [root@centos-7

]# firewall-cmd —zone=public —add-port=5061/udp —permanent [root@centos-7

]# firewall-cmd —zone=public —add-port=5061/tcp —permanent [root@centos-7

]# firewall-cmd —zone=public —add-port=4569/udp —permanent [root@centos-7

]# firewall-cmd —zone=public —add-port=5038/tcp —permanent [root@centos-7

]# firewall-cmd —zone=public —add-port=10000-20000/udp —permanent

Проверить, что правила применились корректно, можно командой:

]# firewall-cmd —zone=public —list-all

o

3. Настройка базы Asterisk

Подключимся к MySQL MariaDB, создадим нового пользователя и базу и предоставим ему привилегии:

]# mysql -u root -p MariaDB [(none)] create user ‘asterisk’@’localhost’ identified by ‘yourpassword’; MariaDB [(none)] create database asterisk; MariaDB [(none)] create database cdrdb; MariaDB [(none)] GRANT ALL PRIVILEGES ON asterisk.* TO asterisk@localhost IDENTIFIED BY ‘yourpassword’; MariaDB [(none)] GRANT ALL PRIVILEGES ON cdrdb.* TO asterisk@localhost IDENTIFIED BY ‘yourpassword’; MariaDB [(none)] flush privileges; MariaDB [(none)]

4. Запуск Asterisk

Первый запуск выполняем следующей командой. Проверяем, что ничего не отпало.

p

Установка GUI для Asterisk

1. Загрузка и настройка

Загрузите исходные файлы последней версии, используя svn. (yum install subversion)

]# cd /usr/src [root@centos-7

]# svn checkout http://svn.digium.com/svn/asterisk-gui/branches/2.0 asterisk-gui [root@centos-7

]# cd asterisk-gui [root@centos-7

Сделайте резервную копию файлов конфигурации. Для этого достаточно скопировать /etc/asterisk под другими именем:

]# cp -r /etc/asterisk /etc/asterisk.backup

Два файла измените вручную:

Включите следующие настройки

enabled = yes webenabled = yes

Теперь добавим нового пользователя в manager.conf:

[administrator] secret = mypassword read = system,call,log,verbose,command,agent,user,config write = system,call,log,verbose,command,agent,user,config

Теперь обновим конфиг http

enabled=yes enablestatic=yes bindaddr=0.0.0.0 bindport = 8088 prefix = gui enablestatic = yes

bindaddr 0.0.0.0 означает, что вы можете получить доступ из любого места. Если вам требуется доступ только с локального компьютера, то тогда используйте адрес 127.0.0.1.

Проверьте конфигурацию Asterisk-GUI, выполнив из каталога /usr/src/asterisk-gui команду

[root@centos-7 asterisk-gui]#make checkconfig

2. Запуск asterisk-gui

Чтобы загрузить asterisk-gui, необходимо перезапустить Asterisk. Перезапустить сервер Asterisk можно из с консоли CLI, выполнив команду reload


Источник: code-inside.com