Первым делом проверим включен или выключен 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
|