Asterisk — это свободное ПО, которое позволяет с минимально приемлемым аппаратным обеспечением организовать аналог классической АТС. Astterisk поддерживает множество VoIP-протоколов и предоставляет богатые функции управления звонками (Голосовая почта, Конференц-связь, интерактивное голосовое меню, постановка звонков в очередь и распределение их по абонентам, и т. д.).
В данной статье рассмотрим установку Asterisk 13 на Centos 7 с дальнейшей настройкой визуального web-интерфейса.
Подготовка к установке
1. Обновление системы
Залогиньтесь от имени root и обновите всё, что установлено в системе.
[root@centos-7 ~]# yum update
2. Установка требуемых пакетов
После того, как система обновлена, нужно установить несколько нужных пакетов с помощью следующей команды, которая содержит все необходимые пакеты и все зависимости.
[root@centos-7 ~]# 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
Проверьте список пакетов, которые будут установлены и нажмите «Y» для продолжения. Обновление займет около 125 Мб в зависимости от того, какие пакеты были установлены ранее. После успешной операции вы увидите список установленных пакетов и обновлений, включая все необходимые зависимости.
3. Настройка MariaDB
После установки можно подключиться к базе данных с настройками по умолчанию, без пароля. Начнем с настройки и запуска:
[root@centos-7 ~]# systemctl enable mariadb
[root@centos-7 ~]# systemctl start mariadb
[root@centos-7 ~]# systemctl status mariadb
Следующая команда установит пароль root на базу, удалит анонимного пользователя, тестовую базу данных и запретит удаленный вход в систему пользователя.
[root@centos-7 ~]# mysql_secure_installation
4. Установка libjansson
Jansson — это C-библиотека для кодирования, декодирования и манипулирования данными в формате JSON. Скачайте самый актуальный пакет с сайта разработчика:
[root@centos-7 ~]# wget http://www.digip.org/jansson/releases/jansson-2.7.tar.gz
Распакуйте:
[root@centos-7 ~]# tar -zxvf jansson-2.7.tar.gz
Сконфигурируйте:
[root@centos-7 ~]# cd jansson-2.7
[root@centos-7 ~]# ./configure --prefix=/usr
Для компиляции настроенного пакета используем связку команд 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.
[root@centos-7 ~]# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13.5.0.tar.gz
Распакуйте архив, перейдите в созданную папку и сконфигурируйте пакет перед сборкой:
[root@centos-7 ~]# 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
Если все прошло успешно, вы увидите такой логотип в стиле ASCII Art:
Установка модулей
Чистый Asterisk конечно работоспособен, но не зря он расширяется плагинами и модулями. Добавим пару полезных функций.
1. Главное меню настройки
Чтобы попасть в меню настройки и выбора модулей, выполните следующую команду и выберите нужные параметры.
[root@centos-7 asterisk-13.5.0]# make menuselect
Как мы видим, большинство нужных модулей включено по умолчанию. Можно отключить ненужные модули или добавить что-то на свой вкус. У каждого пункта краткое описание его задачи.
Полезно будет включить, например, модуль поддержки mp3. Для этого выберите «format_mp3», как показано ниже.
Затем перейдите в секцию Core Sound Packages и отметьте аудио-пакеты как показано на скриншоте:
Затем выберите все пакеты из «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
3. Установка модулей
Когда все нужное включено, а ненужное выключено, выполним сборку и установку. Сначала make, после успешного результата — make install.
[root@centos-7 asterisk-13.5.0]# make
[root@centos-7 asterisk-13.5.0]# make install
Если все успешно установилось, 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/{lib,log,spool}/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
2. Настройка правил файрволла
Теперь займемся безопасностью. По умолчанию на CentOS 7 вместо iptables используется FirewallD. Запустим его.
[root@centos-7 ~]# systemctl start firewalld
[root@centos-7 ~]# systemctl enable firewalld
Теперь разрешите доступ к портам, которые используются в Asterisk, добавив следующие правила:
[root@centos-7 ~]# 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
Перезапустим сервис
[root@centos-7 ~]# firewall-cmd --reload
Проверить, что правила применились корректно, можно командой:
[root@centos-7 ~]# firewall-cmd --zone=public --list-all
3. Настройка базы Asterisk
Подключимся к MySQL MariaDB, создадим нового пользователя и базу и предоставим ему привилегии:
[root@centos-7 ~]# 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
Первый запуск выполняем следующей командой. Проверяем, что ничего не отпало.
[root@centos-7 ~]# asterisk -r
Источник: linoxide.com
Установка GUI для Asterisk
1. Загрузка и настройка
Загрузите исходные файлы последней версии, используя svn. (yum install subversion)
[root@centos-7 ~]# 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 ~]# ./configure
[root@centos-7 ~]# make
[root@centos-7 ~]# make install
Сделайте резервную копию файлов конфигурации. Для этого достаточно скопировать /etc/asterisk под другими именем:
[root@centos-7 ~]# cp -r /etc/asterisk /etc/asterisk.backup
Два файла измените вручную:
[root@centos-7 ~]# nano /etc/asterisk/manager.conf
Включите следующие настройки
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
[root@centos-7 ~]# nano /etc/asterisk/http.conf
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
Теперь вы можете использовать asterisk-gui через указанные адреса:
http://yoururl:8088/static/config/index.html
http://yoururl:8088/httpstatus (для проверки состояния)
Источник two-it.ru
Подскажите пожалуйста а как например обновить libjansson или asterisk до новой версии?
Как я понимаю через yum update они обновлять не будут т.к собраны в ручную.
Спасибо!