Как установить 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. Если у вас есть какие-либо вопросы или комментарии, сообщите нам об этом в разделе комментариев ниже.