Установка Asterisk 14 на CentOS 7

Установка Asterisk 14 на CentOS 7

Сегодня я расскажу как установить Asterisk 14.6.0 на систему CentOS. Asterisk мы будем собирать из исходников.

Все команды выполняем под пользователем root.

1. Подготовка системы

Перед установкой отключим опцию SElinux, так как по-умолчанию она включена. Делаем это с помощью текстового редактора vim или nano:

nano /etc/sysconfig/selinux

В строке SELINUX = вписываем disabled:

SELINUX=disabled

Сохраняем внесенные изменения и перезагружаем систему командой reboot. Далее добавляем в CentOS репозиторий EPEL:

Все ссылки актуальны на момент написания статьи (31.08.2017).

rpm -Uvh http://mirror.pnl.gov/epel/7/x86_64/e/epel-release-7-10.noarch.rpm
yum -y update

Далее установим зависимости:

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

В качестве базы данных будем использовать MariaDB:

systemctl enable mariadb.service
systemctl start mariadb.service

Установим PearDB:

pear uninstall db
pear install db-1.9.2

Установим драйверы телефонии PJproject и DAHDI, а также приложения Jansson и Lame:

cd /usr/src/
wget http://www.pjsip.org/release/2.6/pjproject-2.6.tar.bz2
tar -xjvf pjproject-2.6.tar.bz2
cd pjproject-2.6*
./configure  --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --libdir=/usr/lib64
make dep
make
make install
cd ..

Скачиваем и устанавливаем драйвера DAHDI:

wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz 
tar xvfz dahdi-linux-complete-current.tar.gz
cd dahdi-linux-complete-*
make all
make install
make config
cd ..

Скачиваем и устанавливаем приложение кодирования Lame:

wget https://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz 
tar zxvf lame-3.99.5.tar.gz 
cd lame-3.99.5
./configure
make
make install
cd ..

Скачиваем и устанавливаем Jansson. Можно воспользоваться yum -y install jansson-devel или:

wget http://www.digip.org/jansson/releases/jansson-2.10.tar.gz
tar zvxf jansson-2.10.tar.gz
cd jansson-2.10
./configure --prefix=/usr
make clean
make
make chek
make install 
ldconfig
cd ..

Завершением перед установкой Asterisk будет скачивание и установка библиотеки для работы с ISDN интерфейсами – LibPRI:

wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.6.0.tar.gz
tar xvfz libpri-1.6.0.tar.gz
cd libpri-1.6.0
make 
make install
cd ..

2. Установка Asterisk

Подготовление системы завершено. Приступим к установке Asterisk:

wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-14-current.tar.gz
tar xvfz asterisk-14-current.tar.gz
cd asterisk-14*
./configure --libdir=/usr/lib64
contrib/scripts/get_mp3_source.sh
make menuselect

После ввода команды menuselect откроется графическая оболочка установки модулей. По-умолчанию, все необходимые модули уже включены. Я рекомендую дополнительно установить из раздела Add-ons включить поддержку mp3, установив параметр format_mp3, как показано на рисунке ниже:

Установка Asterisk 14 на CentOS 7

В разделе Core Sound Packages установить форматы звуковых пакетов для русского и английского языков:

Установка Asterisk 14 на CentOS 7
Установка Asterisk 14 на CentOS 7

В разделе Music On Hold File Packages установить все значения для поддержки кодеков разных производителей оборудования:

Установка Asterisk 14 на CentOS 7

Наконец, в Extras Sound Packages установим нужные форматы и сохраним нажатием F12:

Установка Asterisk 14 на CentOS 7

На данном этапе предварительная настройка успешно завершена:

Установка Asterisk 14 на CentOS 7

Приступим к установке Asterisk:

make

По завершению данной команды, мы увидим сообщение, что сборка Asterisk успешно завершена и теперь можно начать его установку:

Установка Asterisk 14 на CentOS 7

Для этого вводим команды:

make install
make samples
make config

На этом установка Asterisk завершена:

Установка Asterisk 14 на CentOS 7

Теперь создадим пользователя с правами доступа к директориям Asterisk:

useradd -m asterisk
chown asterisk.asterisk /var/run/asterisk 
chown -R asterisk.asterisk /etc/asterisk
chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk
chown -R asterisk.asterisk /usr/lib64/asterisk

Для того, чтобы изменения вступили в силу, перезапустим Asterisk:

systemctl restart asterisk

Теперь подготовим MariaDB для работы с Asterisk:

mysql -u root –p //Пароль по умолчанию отсутствует

Создадим пользователя для работы с базами MariaDB:

CREATE USER 'asteriskcdruser'@'localhost' IDENTIFIED BY 'userpassword'; //Пользователь – asteriskcdruser, пароль – userpassword”

Создадим две базы данных для работы с Asterisk:

CREATE DATABASE asterisk;
CREATE DATABASE asteriskcdrdb;

Настроим права доступа для пользователя, которого создали:

GRANT ALL PRIVILEGES ON asterisk.* TO asteriskcdruser@localhost IDENTIFIED BY 'userpassword';
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskcdruser@localhost IDENTIFIED BY 'userpassword';
FLUSH PRIVILEGES;

Зайдем в CLI Asterisk:

asterisk -vvvvvvvvvvvvvrccd
Установка Asterisk 14 на CentOS 7