Установка Asterisk 18 LTS на CentOS 8 | RHEL 8

Установка Asterisk 18 LTS на CentOS 8 | RHEL 8

 

Asterisk — это бесплатная мощная коммуникационная система с открытым исходным кодом, обеспечивающая работу многих систем IP PBX, шлюзов VoIP, конференц-серверов, используемых на малых и средних предприятиях, предприятиях, центрах обработки вызовов, операторах связи и государственных учреждениях по всему миру. Установка Asterisk Server — это первый шаг к внедрению доступных, надежных и высокодоступных систем PBX и VoIP.

В сегодняшнем руководстве мы рассмотрим установку и настройку Asterisk 18 LTS на CentOS 8 | RHEL 8. Asterisk 18.0 был недавно выпущен для производственного использования и доступен для загрузки. Это выпуск LTS, то есть он будет поддерживаться в течение нескольких лет. Если вы используете более ранние версии Asterisk, такие как 16 LTS или 17.x, сейчас самое время спланировать обновление.

Особенности системы АТС Asterisk

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

Установите Asterisk 18 LTS на CentOS 8 | RHEL 8

В следующих разделах мы познакомим вас с установкой Asterisk 18 LTS на CentOS 8 | Система RHEL 8. Предполагается, что вы выполняете задачи на недавно настроенном сервере CentOS 8 / RHEL 8. Это рекомендация, чтобы убедиться, что вы не нарушаете зависимости каких-либо запущенных приложений.

Шаг 1. Обновите систему и установите часовой пояс

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

sudo yum -y update

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

sudo systemctl reboot

Подождите, пока сервер перезагрузится, затем установите правильное имя хоста.

sudo hostnamectl set-hostname asterisk.example.com

Также обновите часовой пояс.

sudo timedatectl set-timezone Africa/Nairobi

Дополнительно установите SELinux в разрешающий режим, выполнив следующие команды:

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

Шаг 2: Добавьте репозиторий EPEL

Добавьте репозиторий EPEL в свой CentOS 8 | Сервер RHEL 8, так как он может содержать пакеты, необходимые как deps.

CentOS 8:

sudo yum -y install epel-release
sudo yum config-manager --set-enabled powertools

RHEL 8:

sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
ARCH=$( /bin/arch )
sudo subscription-manager repos --enable "codeready-builder-for-rhel-8-${ARCH}-rpms

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

Установите все необходимые инструменты разработки для сборки Asterisk 18 на CentOS 8 | RHEL 8 из исходников.

sudo yum group -y install "Development Tools"
sudo yum -y 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 libedit libedit-devel

Шаг 4: Загрузите и установите Jansson

Мы также установим Jansson, библиотеку C для кодирования и декодирования мультимедийных данных.

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

Шаг 5: Загрузите и установите PJSIP

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

Создайте PJSIP из исходного кода, выполнив следующие команды в своем терминале.

cd ~
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
sudo make install
sudo ldconfig

Шаг 6: Загрузите и установите Asterisk

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

cd ~
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz
tar xvfz asterisk-18-current.tar.gz
cd asterisk-18*/

Настроить Asterisk.

./configure --libdir=/usr/lib64

Успешная конфигурация должна напечатать выходные данные, как показано ниже.

.....
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 :

Шаг 7. Установите параметры меню Asterisk

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

make menuselect

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

1. В разделе Add-ons выберите  chan_ooh323 и,  format_mp3  как показано ниже.

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

3. Для Music On Hold выберите следующие минимальные модули

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

6. Включите в  app_macro разделе «Приложения».

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

Шаг 8: Cоберите и установите Asterisk

Выполните следующую команду, чтобы загрузить библиотеку mp3-декодера в дерево исходных текстов.

contrib/scripts/get_mp3_source.sh

Соберите и установите Asterisk на CentOS 8 | RHEL 8:

make
sudo make install
sudo make samples
sudo make config
sudo ldconfig

Шаг 9: Настройте и запустите Asterisk

Создайте отдельного пользователя и группу для запуска служб asterisk и назначьте правильные разрешения:

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

Установите для пользователя Asterisk по умолчанию  asterisk:

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

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

После сохранения изменений в файле конфигурации перезапустите службу asterisk.

sudo systemctl restart asterisk

Разрешить запуск службы при перезагрузке сервера.

sudo systemctl enable asterisk

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

$ systemctl status asterisk
● asterisk.service - LSB: Asterisk PBX
   Loaded: loaded (/etc/rc.d/init.d/asterisk; generated)
   Active: active (running) since Mon 2021-01-11 19:00:39 EAT; 2s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 107586 ExecStop=/etc/rc.d/init.d/asterisk stop (code=exited, status=0/SUCCESS)
  Process: 107616 ExecStart=/etc/rc.d/init.d/asterisk start (code=exited, status=0/SUCCESS)
 Main PID: 107650 (asterisk)
    Tasks: 84 (limit: 4763)
   Memory: 68.7M
   CGroup: /system.slice/asterisk.service
           ├─107648 /bin/sh /usr/sbin/safe_asterisk
           └─107650 /usr/sbin/asterisk -f -vvvg -c

Jan 11 19:00:39 asterisk.example.com systemd[1]: asterisk.service: Succeeded.
Jan 11 19:00:39 asterisk.example.com systemd[1]: Stopped LSB: Asterisk PBX.
Jan 11 19:00:39 asterisk.example.com systemd[1]: Starting LSB: Asterisk PBX...
Jan 11 19:00:39 asterisk.example.com asterisk[107616]: Starting asterisk:
Jan 11 19:00:39 asterisk.example.com systemd[1]: Started LSB: Asterisk PBX.

Протестируйте с помощью команды asterisk, чтобы убедиться, что интерфейс командной строки Asterisk работает:

[markster@digium.com]$ sudo asterisk -rvv
 Asterisk 18.1.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 18.1.1 currently running on asterisk (pid = 107650)
 asterisk*CLI>

asterisk*CLI> core show channels
Channel              Location             State   Application(Data)             
0 active channels
0 active calls
0 calls processed

asterisk*CLI> core show  uptime 
System uptime: 2 minutes, 53 seconds
Last reload: 2 minutes, 53 seconds

asterisk*CLI> quit
Asterisk cleanly ending (0).
Executing last minute cleanups

Шаг 10: Установите FreePBX

Если вам нужна административная панель на основе пользовательского интерфейса для Asterisk, проверьте  Как установить FreePBX на RHEL / CentOS 8

На этом заканчивается наша статья об установке Asterisk 18 LTS на CentOS 8 | Сервер Linux RHEL 8. В наших следующих статьях мы рассмотрим, как интегрировать Asterisk с другими платформами для создания творческих и потрясающих решений на основе VoIP.