8(499)-709-97-83
Работаем с 8:00 до 19:00

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

  • 22 апреля 2015

В сегодняшней статье мы расскажем, как установить Asterisk 13 на CentOS 7(64 бит).

Первым делом проверим включен или выключен SELinux. Вводим в консоли команду

sestatus

Если видим следующий вывод, то SELinux включен.

SELinux status:                 enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted

Current mode: enforcingMode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28

Отключаем SELinux и перезагружаем машину

nano /etc/sysconfig/selinux
SELINUX=disabled
reboot

Теперь вывод sestatus должен показать:

SELinux status:                 disabled

Подключить дополнительный репозиторий EPEL

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

Установим зависимости, которые будут необходимы для корректной работы Asterisk

yum install -y gcc gcc-c++  lynx bison mariadb-devel mariadb-server mariadb gmime-devel psmisc php php-mysql php-pear php-mbstring
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
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
 

Запустим и включим автозагрузку MySQL(mariadb)

systemctl enable mariadb.service
systemctl start mariadb.service

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

mysql_secure_installation


Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
Thanks for using MariaDB!
 

Установим PearDB

pear uninstall db
pear install db-1.7.14
 

Переходим в /usr/src/  скачиваем, распаковываем и компилируем pjproject

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

Скачиваем, распаковываем и компилируем jansson

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

Скачиваем, распаковываем и компилируем lame

wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz 
tar zxvf lame-3.98.4.tar.gz
cd lame-3.98.4
./configure
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 ..

Скачиваем, распаковываем и компилируем libpri

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

Теперь переходим к самому главному - скачиваем Asterisk

wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz

Распаковываем

tar xvfz asterisk-13-current.tar.gz
cd asterisk-13.*

Начнем установку Asterisk 13. Необходимые модули устанавливаем командой make menuselect.

./configure --libdir=/usr/lib64
contrib/scripts/get_mp3_source.sh
make menuselect

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


Во вкладке Core Sound Packages  выберите необходимые форматы звуковых пакетов.


В Music On Hold File Packages включаем все модули.

В Extras Sound Packages включаем первые 4 модуля, содержащие EN

Продолжаем установку:

make
make install
make samples
make config

Создаем пользователя и даем ему права для работы с 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
 

Сделаем некоторую настройку для MySQL. Подключаемся к MySQL.

mysql -uroot –p(пароль заданный при установке MySQL(mariadb))

После ввода пароля мы окажемся в консоли MySQL. Создадим пользователя asterisk и паролем ‘password’.

create user 'asterisk'@'localhost' identified by 'password';

Создадим базу данных asteriskcdrdb, asterisk.

create database asterisk;
create database asteriskcdrdb;

Далее определяем владельца базы данных

GRANT ALL PRIVILEGES ON asterisk.* TO asterisk@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asterisk@localhost IDENTIFIED BY 'password';
flush privileges;

Приступим к настройке безопасности. По умолчанию в CentOS 7 вместо iptables использует службу FirewallD. Синтаксис FirewallD выглядит:

firewall-cmd —permanent —add-port=№порта/протокол

Запустим и включим автозагрузку FirewallD

systemctl start  firewalldsystemctl enable firewalld

Добавим правила:

firewall-cmd --zone=public --add-port=5060/udp --permanent
firewall-cmd --zone=public --add-port=5061/udp --permanent
firewall-cmd --zone=public --add-port=4569/udp --permanent
firewall-cmd --zone=public --add-port=5060/tcp --permanent
firewall-cmd --zone=public --add-port=5061/tcp --permanent
firewall-cmd --zone=public --add-port=5038/tcp --permanent
firewall-cmd --zone=public --add-port=10000-20000/udp --permanent
firewall-cmd --reload

Убедимся, что правила добавились:

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

public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports: 80/tcp 5061/tcp 4569/udp 5060/tcp 10000-20000/udp 5061/udp 5060/udp 5038/tcp
masquerade: no
forward-ports:
icmp-blocks: echo-reply echo-request
rich rules:
На этом установка закончена. 

Проблемы в процессе установки. 

У многих, в процессе установки и настройки, возникают различные ошибки, поэтому мы решили в конце этой статьи привести решение ошибок, которые у вас могут возникнуть.

Проблема:

[CC] format_mp3.c -> format_mp3.o
format_mp3.c:39:24: fatal error: mp3/mpg123.h: No such file or directory

Решение проблемы:

cd /usr/src/asterisk-*/
contrib/scripts/get_mp3_source.sh
 

Проблема:

configure: error: *** termcap support not found

Решение проблемы:

yum install libtermcap-devel
 

Проблема:

configure: *** XML documentation will not be available because the 'libxml2' development package is missing.
configure: *** Please run the 'configure' script with the '--disable-xmldoc' parameter option
configure: *** or install the 'libxml2' development package.

Решение проблемы:

yum -y install libxml2-devel
 

Проблема:

Doxygen is not installed. Please install and re-run the configuration script.

Решение проблемы:

yum -y install doxygen
 

Проблема:

configure: error: *** uuid support not found (this typically means the uuid development package is missing)

Решение проблемы:

yum -y install libuuid-devel
 

Проблема:

Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?)

Решение проблемы:

/etc/selinux/config SELINUX=disabledreboot
 

Если вы в статье нашли ошибки или несоответствия, мы будем благодарны, если вы напишите нам о них в комментариях.

 
Powered by SEO CMS ver.: 23.1 TOP 2 (opencartadmin.com)
 
Метки: Asterisk