Установка Asterisk 16 на CentOS 8

Установка Asterisk 16 на CentOS 8

Добро пожаловать в наше руководство по установке Asterisk 16 LTS на CentOS 8 / RHEL 8. Asterisk – это популярная и мощная система УАТС с открытым исходным кодом, функции которой аналогичны тем, которые имеются только в коммерческих системах УАТС. Asterisk поддерживает системы IP PBX, VoIP-шлюзы, серверы конференций и центры обработки вызовов (ЦОВ) как в SMB, так и на предприятиях.

Все дальнейшие команды выполняются от имени суперпользователя root

Подготовка CentOS 8 к установке

Установка времени и часового пояса

hostnamectl set-hostname pro-pbx
timedatectl set-timezone Europe/Moscow

Настройка синхронизации времени по NTP

yum -y install chrony
systemctl enable --now chronyd

Отредактируем конфигурацию

vi /etc/chrony.conf

Закомментируйте первую строку пула и добавьте список NTP-серверов.

#pool 2.rhel.pool.ntp.org iburst
server 0.ru.pool.ntp.org iburst
server 1.ru.pool.ntp.org iburst
server 2.ru.pool.ntp.org iburst
server 3.ru.pool.ntp.org iburst

Установим синхронизацию NTP

timedatectl set-ntp true
systemctl restart chronyd
firewall-cmd --add-service=ntp --permanent
firewall-cmd --reload

Настройка SELinux

Я рекомендовал вам начать изучать, как работать с политиками SELinux, вместо того, чтобы полностью отключать. Если вы предпочитаете установить постоянный режим Permissive, который вместо этого обеспечивает ведение журнала событий, установите этот режим с помощью команды ниже.

Если решили полностью отключить SELinux:

sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

Мы будем переводить SELinux в режим Permissive, который обеспечивает ведение журнала событий с помощью команды ниже:

setenforce 0
sed -i 's/\(^SELINUX=\).*/\SELINUX=permissive/' /etc/selinux/config

Подготовительные работы выполнены, приступаем к установке Asterisk 16 LTS.

Шаг 1. Включаем EPEL репозитории

dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf repolist epel
dnf --disablerepo="*" --enablerepo="epel" list available

Шаг 2. Установка средств разработки

Установите средства разработки программного обеспечения и другие зависимости, необходимые для сборки и запуска Asterisk в RHEL / CentOS 8.

dnf group -y install "Development Tools"
dnf install git wget vim  net-tools sqlite-devel psmisc ncurses-devel libtermcap-devel newt-devel libxml2-devel libtiff-devel gtk2-devel libtool libuuid-devel subversion kernel-devel kernel-devel-$(uname -r) crontabs cronie-anacron

Шаг 3. Скачивание и установка Jansson

Jansson – это библиотека C для кодирования, декодирования и обработки данных JSON. Загрузите и установите его на сервере CentOS / RHEL 8, выполнив следующие команды:

cd /usr/src/
git clone https://github.com/akheron/jansson.git
cd jansson
autoreconf -i
./configure --prefix=/usr/
make && make install

Шаг 4. Скачивание и установка PJSIP

PJSIP – это бесплатная мультимедийная библиотека с открытым исходным кодом, написанная на языке C, реализующая стандартные протоколы, такие как SIP, SDP, RTP, STUN, TURN и ICE.

Клонируйте проект из Github, затем скомпилируйте и установите:

cd /usr/src/
git clone https://github.com/pjsip/pjproject.git
cd pjproject
./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr
make dep
make && make install
ldconfig

Шаг 5. Скачивание и установка Asterisk 16

Теперь, когда у нас установлены все пакеты зависимостей, мы готовы загрузить и установить Asterisk 16 на CentOS / RHEL 8.

cd /usr/src/
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
tar xvfz asterisk-16-current.tar.gz
cd asterisk-16*/

Установите пакеты libedit.

dnf -y install https://rpmfind.net/linux/fedora/linux/releases/29/Everything/x86_64/os/Packages/l/libedit-3.1-24.20170329cvs.fc29.x86_64.rpm
dnf -y install https://rpmfind.net/linux/fedora/linux/releases/29/Everything/x86_64/os/Packages/l/libedit-devel-3.1-24.20170329cvs.fc29.x86_64.rpm

Настроим Asterisk:

./configure

Настраиваем необходимые параметры через визуальное меню:

make menuselect

Рекомендовано выбрать:

  • chan_ooh323
  • format_mp3
  • app_macro
  • CORE-SOUNDS-RU
  • MOH-OPSOUND-WAV

Шаг 7. Собираем и устанавливаем Asterisk

contrib/scripts/get_mp3_source.sh
make
make install
make samples
make config
ldconfig

Шаг 8. Настройка и запуск Asterisk

Создадим пользователя asterisk и дадим права на каталоги этому пользователю:

groupadd asterisk
useradd -r -d /var/lib/asterisk -g asterisk asterisk
usermod -aG audio,dialout asterisk
chown -R asterisk.asterisk /etc/asterisk /var/{lib,log,spool}/asterisk /usr/lib64/asterisk

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

$ vim /etc/sysconfig/asterisk
AST_USER="asterisk"
AST_GROUP="asterisk"

$ vim /etc/asterisk/asterisk.conf
runuser = asterisk ; The user to run as.
rungroup = asterisk ; The group to run as.

Перезапустим службу asterisk и добавим в автозагрузку:

systemctl restart asterisk
systemctl enable asterisk

Проверим статус службы:

$ systemctl status asterisk
 ● asterisk.service - LSB: Asterisk PBX
    Loaded: loaded (/etc/rc.d/init.d/asterisk; generated)
    Active: active (running) since Wed 2019-10-09 18:52:11 EAT; 31s ago
      Docs: man:systemd-sysv-generator(8)
   Process: 13468 ExecStop=/etc/rc.d/init.d/asterisk stop (code=exited, status=0/SUCCESS)
   Process: 13494 ExecStart=/etc/rc.d/init.d/asterisk start (code=exited, status=0/SUCCESS)
  Main PID: 13525
     Tasks: 2 (limit: 11510)
    Memory: 3.1M
    CGroup: /system.slice/asterisk.service
            ├─13523 /bin/sh /usr/sbin/safe_asterisk
            └─13614 sleep 4

Oct 09 18:52:11 rhel8.local systemd[1]: Stopped LSB: Asterisk PBX.
Oct 09 18:52:11 rhel8.local systemd[1]: Starting LSB: Asterisk PBX…
Oct 09 18:52:11 rhel8.local systemd[1]: Started LSB: Asterisk PBX.

На этом установка окончена!

Заключение

Теперь у вас есть работающий Asterisk 16 LTS на сервере CentOS / RHEL 8. В нашем следующем руководстве мы расскажем об установке и настройке FreePBX в RHEL / CentOS 8. Оставайтесь с нами и оставляйте комментарии, если у вас возникнут какие-либо проблемы с настройкой.