Поиск по сайту:

Как установить Asterisk на CentOS/RHEL 8/7


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

В этом руководстве мы покажем вам, как установить Asterisk на CentOS 8/7 (инструкции также работают на RHEL 8/7) , но прежде чем мы начнем, нам нужно будет провести некоторые приготовления, чтобы Asterisk мог нормально работать после установки.

Шаг 1. Отключите SELinux в CentOS

Для этого подключитесь к вашей системе по SSH и с помощью вашего любимого текстового редактора командной строки откройте /etc/selinux/config и отключите SELINUX.

vim /etc/selinux/config

Строка SELinux должна выглядеть так:

SELINUX=disabled

Теперь перезагрузите систему. Как только SSH снова вернется в эту систему.

Шаг 2. Установите необходимые пакеты

Asterisk предъявляет довольно много требований, которые необходимо установить. Вы можете использовать следующую команду yum для установки необходимых пакетов, как показано.

yum install -y epel-release dmidecode gcc-c++ ncurses-devel libxml2-devel make wget openssl-devel newt-devel kernel-devel sqlite-devel libuuid-devel gtk2-devel jansson-devel binutils-devel libedit libedit-devel

Прежде чем продолжить, создайте нового пользователя с привилегиями sudo под названием «asterisk». Мы будем использовать этого пользователя для настройки asterisk в системе.

adduser asterisk -c "Asterisk User"
passwd asterisk 
usermod -aG wheel asterisk
su asterisk

Затем установите PJSIP — бесплатную библиотеку мультимедийных коммуникаций с открытым исходным кодом, реализующую стандартные протоколы, такие как SIP, SDP, RTP, STUN, TURN и ICE. Именно драйвер канала Asterisk SIP должен улучшить четкость звонков.

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

mkdir ~/build && cd ~/build

Теперь перейдите на страницу загрузки PJSIP и возьмите пакет или используйте следующую команду wget, чтобы загрузить пакет непосредственно в терминал.

Обратите внимание, что на момент написания этой статьи последней версией была 2.8. В будущем она может измениться, поэтому обязательно используйте последнюю версию:

wget https://www.pjsip.org/release/2.9/pjproject-2.9.tar.bz2

После завершения загрузки извлеките файл и перейдите в этот каталог.

tar xvjf pjproject-2.9.tar.bz2
cd pjproject-2.9

Следующим шагом является подготовка пакета для компиляции. Вы можете использовать следующую команду:

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

Наконец, убедитесь, что все библиотеки установлены и присутствуют:

ldconfig -p | grep pj

Вы должны получить следующий вывод:

libpjsua2.so.2 (libc6,x86-64) => /lib64/libpjsua2.so.2
	libpjsua2.so (libc6,x86-64) => /lib64/libpjsua2.so
	libpjsua.so.2 (libc6,x86-64) => /lib64/libpjsua.so.2
	libpjsua.so (libc6,x86-64) => /lib64/libpjsua.so
	libpjsip.so.2 (libc6,x86-64) => /lib64/libpjsip.so.2
	libpjsip.so (libc6,x86-64) => /lib64/libpjsip.so
	libpjsip-ua.so.2 (libc6,x86-64) => /lib64/libpjsip-ua.so.2
	libpjsip-ua.so (libc6,x86-64) => /lib64/libpjsip-ua.so
	libpjsip-simple.so.2 (libc6,x86-64) => /lib64/libpjsip-simple.so.2
	libpjsip-simple.so (libc6,x86-64) => /lib64/libpjsip-simple.so
	libpjnath.so.2 (libc6,x86-64) => /lib64/libpjnath.so.2
	libpjnath.so (libc6,x86-64) => /lib64/libpjnath.so
	libpjmedia.so.2 (libc6,x86-64) => /lib64/libpjmedia.so.2
	libpjmedia.so (libc6,x86-64) => /lib64/libpjmedia.so
	libpjmedia-videodev.so.2 (libc6,x86-64) => /lib64/libpjmedia-videodev.so.2
	libpjmedia-videodev.so (libc6,x86-64) => /lib64/libpjmedia-videodev.so
	libpjmedia-codec.so.2 (libc6,x86-64) => /lib64/libpjmedia-codec.so.2
	libpjmedia-codec.so (libc6,x86-64) => /lib64/libpjmedia-codec.so
	libpjmedia-audiodev.so.2 (libc6,x86-64) => /lib64/libpjmedia-audiodev.so.2
	libpjmedia-audiodev.so (libc6,x86-64) => /lib64/libpjmedia-audiodev.so
	libpjlib-util.so.2 (libc6,x86-64) => /lib64/libpjlib-util.so.2
	libpjlib-util.so (libc6,x86-64) => /lib64/libpjlib-util.so
	libpj.so.2 (libc6,x86-64) => /lib64/libpj.so.2
	libpj.so (libc6,x86-64) => /lib64/libpj.so

Шаг 3. Установите Asterisk на CentOS 8/7.

Теперь мы готовы начать установку Asterisk. Вернитесь в наш каталог ~/build:

cd ~/build

Перейдите на страницу загрузки Asterisk и скачайте последнюю версию или вы можете использовать следующую команду wget для загрузки файла в терминал.

wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz

На момент написания этого руководства последняя версия Asterisk — 16. Следуя инструкциям, убедитесь, что вы загружаете последнюю версию Asterisk.

Теперь распакуйте архив и перейдите во вновь созданный каталог:

tar -zxvf asterisk-16-current.tar.gz
cd asterisk-16.5.1

Настало время упомянуть, что если вы хотите включить поддержку mp3 для воспроизведения музыки, пока клиент находится в режиме ожидания, вам необходимо установить еще несколько зависимостей. Эти шаги не являются обязательными:

sudo yum install svn
sudo ./contrib/scripts/get_mp3_source.sh

После второго шага вы должны получить примерно такой результат:

A    addons/mp3
A    addons/mp3/Makefile
A    addons/mp3/README
A    addons/mp3/decode_i386.c
A    addons/mp3/dct64_i386.c
A    addons/mp3/MPGLIB_TODO
A    addons/mp3/mpg123.h
A    addons/mp3/layer3.c
A    addons/mp3/mpglib.h
A    addons/mp3/decode_ntom.c
A    addons/mp3/interface.c
A    addons/mp3/MPGLIB_README
A    addons/mp3/common.c
A    addons/mp3/huffman.h
A    addons/mp3/tabinit.c
Exported revision 202.

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

sudo contrib/scripts/install_prereq install
./configure --libdir=/usr/lib64 --with-jansson-bundled

Если у вас есть недостающие зависимости, установите их. В моем случае я получил следующую ошибку:

configure: error: patch is required to configure bundled pjproject

Чтобы обойти это, просто запустите:

yum install patch 

И повторно запустите скрипт настройки. Если все прошло отлично и без ошибок, вы увидите следующий скриншот.

Теперь приступим к процессу сборки:

make menuselect

Через несколько секунд вы должны получить список функций, которые нужно включить:

Если вы попытаетесь использовать функцию «Музыка в режиме ожидания», вам необходимо включить функцию «format_mp3» в разделе «Дополнения». Сохраните список и выполните следующую команду:

make && sudo make install

Чтобы установить примеры файлов конфигурации, используйте команду ниже:

sudo make samples

Чтобы запустить Asterisk при загрузке, используйте:

sudo make config

Обновите права собственности на следующие каталоги и файлы:

sudo chown asterisk. /var/run/asterisk
sudo chown asterisk. -R /etc/asterisk
sudo chown asterisk. -R /var/{lib,log,spool}/asterisk

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

sudo service asterisk start
sudo asterisk -rvv

Вы должны увидеть вывод, похожий на этот:

Asterisk 16.5.1, Copyright (C) 1999 - 2018, Digium, Inc. and others.
Created by Mark Spencer <[email >
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.
=========================================================================
Connected to Asterisk 16.5.1 currently running on centos8-tecmint (pid = 9020)
centos8-tecmint*CLI>

Если вы хотите увидеть список доступных команд, введите:

asterisk*CLI> core show help

Чтобы выйти из командной строки Asterisk, просто введите:

asterisk*CLI> exit

Asterisk по-прежнему будет работать в фоновом режиме.

Заключение

Теперь у вас есть работающий сервер Asterisk, и вы можете начать подключать телефоны и расширения, а также настраивать конфигурацию в соответствии со своими потребностями. Для получения более подробной информации о том, как этого добиться, рекомендуется использовать страницу Asterisk Wiki. Если у вас есть какие-либо вопросы или комментарии, сообщите нам об этом в разделе комментариев ниже.