Первым делом проверим включен или выключен SELinux.
Вводим в консоли команду
1
|
sestatus
|
Если видим следующий вывод, то SELinux включен.
1
2
3
4
5
6
7
8
9
|
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28
|
Отключаем SELinux и перезагружаем машину
1
2
3
|
nano /etc/sysconfig/selinux
SELINUX=disabled
reboot
|
Теперь вывод sestatus должен показать:
1
|
SELinux status: disabled
|
Подключить дополнительный репозиторий EPEL
1
2
|
rpm —Uvh http://mirror.pnl.gov/epel/7/x86_64/e/epel—release—7—5.noarch.rpm
yum —y update
|
Установим зависимости, которые будут необходимы для корректной работы Asterisk
1
|
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)
1
2
|
systemctl enable mariadb.service
systemctl start mariadb.service
|
По умолчанию, после установки, мы можем подключиться к нашему серверу баз данных под root-ом без ввода пароля. Поэтому назначим пароль и сделаем еще несколько настроек, выполнив скрипт:
1
2
3
4
5
6
7
8
9
10
11
12
|
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
1
2
|
pear uninstall db
pear install db—1.7.14
|
Переходим в /usr/src/ скачиваем, распаковываем и компилируем pjproject
1
2
3
4
5
6
7
8
|
wget http://www.pjsip.org/release/2.2.1/pjproject—2.2.1.tar.bz2
tar —xjvf pjproject—2.2.1.tar.bz2
cd pjproject—2.2.1
./configure —prefix=/usr —enable—shared —disable—sound —disable—resample —disable—video —libdir=/usr/lib64
make dep
make
make install
cd ..
|
Скачиваем, распаковываем и компилируем jansson
1
2
3
4
5
6
7
8
9
|
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
makeinstall
ldconfig
cd ..
|
Скачиваем, распаковываем и компилируем lame
1
2
3
4
5
6
7
|
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
1
2
3
4
5
6
7
|
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
1
2
3
4
5
6
|
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
1
|
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk—13—current.tar.gz
|
Распаковываем
1
2
|
tar xvfz asterisk—13—current.tar.gz
cd asterisk—13.*
|
Начнем установку Asterisk 13. Необходимые модули устанавливаем командой make menuselect.
1
2
3
|
./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
Продолжаем установку:
1
2
3
4
|
make
make install
make samples
make config
|
Создаем пользователя и даем ему права для работы с Asterisk.
1
2
3
4
5
|
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
1
|
systemctl restart asterisk
|
Сделаем некоторую настройку для MySQL. Подключаемся к MySQL.
1
|
mysql —uroot –p(пароль заданный при установке MySQL(mariadb))
|
После ввода пароля мы окажемся в консоли MySQL. Создадим пользователя asterisk и паролем ‘password’.
1
|
create user ‘asterisk’@‘localhost’ identified by ‘password’;
|
Создадим базу данных asteriskcdrdb, asterisk.
1
2
|
create database asterisk;
create database asteriskcdrdb;
|
Далее определяем владельца базы данных
1
2
3
|
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 выглядит:
1
|
firewall—cmd —permanent —add—port=№порта/протокол
|
Запустим и включим автозагрузку FirewallD
1
2
|
systemctl start firewalld
systemctl enable firewalld
|
Добавим правила:
1
2
3
4
5
6
7
8
|
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
|
Убедимся, что правила добавились:
1
2
3
4
5
6
7
8
9
10
11
|
#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:
|
На этом установка закончена.
Проблемы в процессе установки.
У многих, в процессе установки и настройки, возникают различные ошибки, поэтому мы решили в конце этой статьи привести решение ошибок, которые у вас могут возникнуть.
Проблема:
1
2
|
[CC] format_mp3.c -> format_mp3.o
format_mp3.c:39:24: fatal error: mp3/mpg123.h: No such file or directory
|
Решение проблемы:
1
2
|
cd /usr/src/asterisk—*/
contrib/scripts/get_mp3_source.sh
|
Проблема:
1
|
configure: error: *** termcap support not found
|
Решение проблемы:
1
|
yum install libtermcap—devel
|
Проблема:
1
2
3
|
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.
|
Решение проблемы:
1
|
yum —y install libxml2—devel
|
Проблема:
1
|
Doxygen is not installed. Please install and re—run the configuration script.
|
Решение проблемы:
1
|
yum —y install doxygen
|
Проблема:
1
|
configure: error: *** uuid support not found (this typically means the uuid development package is missing)
|
Решение проблемы:
1
|
yum —y install libuuid—devel
|
Проблема:
1
|
Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?)
|
Решение проблемы:
1
2
3
|
/etc/selinux/config
SELINUX=disabled
reboot
|