Как установить Asterisk 16 LTS на CentOS 7 / Fedora

Как установить Asterisk 16 LTS на CentOS 7 / Fedora

В этой статье мы расскажем как произвести установку Asterisk 16 LTS на CentOS 7 / Fedora. Asterisk – это мощная УАТС с открытым исходным кодом и с огромным количеством корпоративных функций.

Содержание

Особенности Asterisk

  • Конференц-связь
  • Запись разговоров
  • Мониторинг вызовов
  • Аудио- и видео-конференции
  • Голосовая почта
  • Очередь вызовов
  • Правила совершения звонка
  • Голосовое меню
  • Активные каналы связи
  • Резервное копирование информации
  • Идентификатор вызывающего абонента во время ожидания вызова
  • Парковка вызовов
  • Транскодирование

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

Прежде чем вы начнете выполнять команды установки Asterisk на вашем сервере CentOS 7 / Fedora, убедитесь, что все пакеты в системе обновлены.

Подключим дополнительные репозитории и обновим систему.

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum -y update
yum -y install epel-release

Установите SELinux в Permissive Mode, выполнив следующие команды:

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

Шаг 1: Установка зависимостей Asterisk 16

Первоначальный шаг при настройке Asterisk – установить все необходимые зависимости.

yum -y install wget vim net-tools
yum -y groupinstall "Development Tools"
yum -y install gcc gcc-c++ lynx bison automake mysql-devel e2fsprogs-devel keyutils-libs-devel krb5-devel libogg libselinux-devel libsepol-devel gmp php-gd php-pdo gnutls-devel libogg-devel openssl-devel zlib-devel perl perl-DateManip mysql-server 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 git php-process crontabs cronie cronie-anacron wget vim php-xml uuid-devel libtool libtool-ltdl-devel sqlite-devel libuuid-devel sqlite unixODBC unixODBC-devel mysql-connector-odbc texinfo curl-devel net-snmp-devel neon-devel speex-devel gsm-devel iksemel-devel spandsp-devel mc htop doxygen path svn nmap

Шаг 2: Загрузка и установка Jansson

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

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

Шаг 3: Загрузка и установка PJSIP

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

cd /usr/src/
export VER="2.8"
wget http://www.pjsip.org/release/${VER}/pjproject-${VER}.tar.bz2
tar -jxvf pjproject-${VER}.tar.bz2
cd pjproject-${VER}
./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

Шаг 4: Загрузка и установка Asterisk

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

cd /usr/src/
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
tar xvfz asterisk-16-current.tar.gz
rm -f asterisk-16-current.tar.gz
cd asterisk-*
./configure --libdir=/usr/lib64 –with-jansson-bundled

Если все идет хорошо, вы должны получить вывод, подобно приведенному ниже:

configure: Menuselect build configuration successfully completed

               .$$$$$$$$$$$$$$$=..      
            .$7$7..          .7$$7:.    
          .$$:.                 ,$7.7   
        .$7.     7$$$$           .$$77  
     ..$$.       $$$$$            .$$$7 
    ..7$   .?.   $$$$$   .?.       7$$$.
   $.$.   .$$$7. $$$$7 .7$$$.      .$$$.
 .777.   .$$$$$$77$$$77$$$$$7.      $$$,
 $$$~      .7$$$$$$$$$$$$$7.       .$$$.
.$$7          .7$$$$$$$7:          ?$$$.
$$$          ?7$$$$$$$$$$I        .$$$7 
$$$       .7$$$$$$$$$$$$$$$$      :$$$. 
$$$       $$$$$$7$$$$$$$$$$$$    .$$$.  
$$$        $$$   7$$$7  .$$$    .$$$.   
$$$$             $$$$7         .$$$.    
7$$$7            7$$$$        7$$$      
 $$$$$                        $$$       
  $$$$7.                       $$  (TM)     
   $$$$$$$.           .7$$$$$$  $$      
     $$$$$$$$$$$$7$$$$$$$$$.$$$$$$      
       $$$$$$$$$$$$$$$$.                

configure: Package configured for: 
configure: OS type  : linux-gnu
configure: Host CPU : x86_64
configure: build-cpu:vendor:os: x86_64 : pc : linux-gnu :
configure: host-cpu:vendor:os: x86_64 : pc : linux-gnu :

Шаг 5: Установка параметров меню Asterisk

Настраиваем дополнительные параметры перед установкой, выполнив следующую команду:

make menuselect

Используйте клавиши со стрелками для навигации и клавишу Enter, чтобы выбрать.

На дополнениях выберите chan_ooh323 и format_mp3 как показано ниже.

Как установить Asterisk 16 LTS на CentOS 7 / Fedora
В Core Sound Packages выберите форматы аудиопакетов, как показано ниже.

Как установить Asterisk 16 LTS на CentOS 7 / Fedora
Для Music On Hold выберите следующие минимальные модули:

Как установить Asterisk 16 LTS на CentOS 7 / Fedora

Для дополнительных звуковых пакетов выберите, как показано ниже:

Как установить Asterisk 16 LTS на CentOS 7 / Fedora

Включить в app_macro разделе «Приложения». По умолчанию в Asterisk 16 Macro() выключен.

Как установить Asterisk 16 LTS на CentOS 7 / Fedora
Вы можете изменить конфигурацию, которую вы считаете нужной в вашем проекте. Когда закончите, нажмите ‘Save & Exit’.

Устанавливаем библиотеку mp3-декодера.

contrib/scripts/get_mp3_source.sh

Чтобы начать сборку и установку Asterisk с выбранными модулями, выполните команды.

make
make install
make samples
make config
ldconfig

Успешная установка сопровождается следующим выводом:

---- Asterisk Installation Complete -------+
+ +
+ YOU MUST READ THE SECURITY DOCUMENT +
+ +
+ Asterisk has successfully been installed. +
+ If you would like to install the sample +
+ configuration files (overwriting any +
+ existing config files), run: +
+ +
+ For generic reference documentation: +
+ make samples +
+ +
+ For a sample basic PBX: +
+ make basic-pbx +
+ +
+ +
+----------------- or ---------------------+
+ +
+ You can go ahead and install the asterisk +
+ program documentation now or later run: +
+ +
+ make progdocs +
+ +
+ **Note** This requires that you have +
+ doxygen installed on your local system +
+-------------------------------------------+

Для вас будет создан Asterisk systemd.

Создайте отдельного пользователя и группу для запуска Asterisk 16 и назначьте права:

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

Установка пользователя Asterisk.

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

$ sudo vim /etc/asterisk/asterisk.conf
runuser = asterisk
rungroup = asterisk

Перезапустите службу Asterisk для применения настроек.

systemctl restart asterisk

Установим службу в загрузку

systemctl enable asterisk
# asterisk -rvv
Asterisk 16.0.1, Copyright (C) 1999 - 2018, Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Running as user 'asterisk'
Running under group 'asterisk'
Connected to Asterisk 16.0.1 currently running on centos-01 (pid = 17182)
centos-01*CLI>

Заключение

Теперь у вас есть работающий Asterisk 16 на сервере CentOS 7. Оставайтесь с нами и оставляйте комментарии, если у вас возникнут какие-либо проблемы с настройкой.