Установка Asterisk 18 на Centos 8

Для начала определимся что такое Asterisk – это бесплатное решение компьютерной телефонии, проще говоря IP АТС. Первая версия ПО была выпущена 23 сентября 2004. Asterisk активно развивается и по сей день. Большое сообщество поклонников не зря выбирают данную АТС. Благодаря не очень сложной настройке, стабильности и большому количеству расширений. Давайте рассмотрим
как проходит установка Asterisk 18 на Centos 8.

Настройка системы

Все действия по настройке и установке я произвожу с правами суперпользователя (root). Если у вас возникает ошибка с доступом используйте root или sudo.

Установка времени

Если при установки операционной системы вы выставили правильное время, можете смело пропускать данный пункт. Проверить текущий часовой пояс и время можно командой

timedatectl status

В моём случае стоит временная зона America/New_York необходимо заменить ее на Europe/Moscow.

timedatectl set-timezone Europe/Moscow
Перевод SELINUX в режим Permissive

Режим Permissive означает что SELINUX не будет ничего блокировать. Все действия попадающие под блокировку будут просто записываться в журнал.

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

Проверить текущий статус SELINUX можно командой

sestatus
Откроем необходимые порты

Откроем порты в firewalld для подключения клиентов

firewall-cmd --permanent --add-port=5060/{tcp,udp}
firewall-cmd --permanent --add-port=5061/{tcp,udp}
  • 5060 – порт для подключения SIP
  • 5061 – порт для подключения SIP с использованием шифрования TLS

Перечитаем измененный конфиг для применения новых параметров firewalld

firewall-cmd --reload
Подключение репозитория EPEL
rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

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

Установка связанного ПО

Перед установкой самого Asterisk необходимо скачать и установить дополнительные пакеты. Если вы планируете использовать в своем сервере платы T1/E1/J1/BRI и прочее оборудование, необходимо установить DAHDI и LibPRI. Я данное железо использовать не собираюсь, поэтому установку этих пакетов не описываю.

Установим набор пакетов Development Tools

dnf groupinstall "Development tools"

Установка пакета jansson

dnf install jansson-devel

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

dnf install https://rpmfind.net/linux/fedora/linux/releases/33/Everything/x86_64/os/Packages/l/libedit-3.1-33.20191231cvs.fc33.x86_64.rpm
dnf install https://rpmfind.net/linux/fedora/linux/releases/33/Everything/x86_64/os/Packages/l/libedit-devel-3.1-33.20191231cvs.fc33.x86_64.rpm

Загрузим и установим PJSIP

PJSIP – это новая мультимедийная библиотека для работы с протоколами SIP, RTP, STUN, SDP и т.д. Впоследствии Asterisk откажется от старой библиотеки SIP в пользу PJSIP.

cd /opt/
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
Установка Asterisk

Скачаем последнюю версию Asterisk с сайта разработчика и распакуем архив

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

Запустим установку зависимостей Asterisk

./contrib/scripts/install_prereq install

После успешной установки появится соответствующее сообщение.

Очистка временных файлов созданных в процессе установки

make distclean

Добавляем возможность работы с форматом mp3

./contrib/scripts/get_mp3_source.sh

Конфигурируем исходник Asterisk

./configure --libdir=/usr/lib64

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

Запустим меню выбора дополнительных параметров установки Asterisk

make menuselect

Передвигаемся по меню стрелочками, выбрать или отменить выбор компонента можно клавишей Enter. Разберем какие компоненты помимо стандартных должны быть отмечены.

  • Add-onschan_ooh323, format_mp3, res_config_mysql
  • Codec Translators – отмечаем все кодеки
  • Core Sound Packages – выделяем все звуковые пакеты с русским языком CORE-SOUNDS-RU
  • Music On Hold File Packages – выделяем все пункты в данном меню
Add-ons
Codec Translators
Core Sound Packages
Music On Hold File Packages

После завершения выбора компонентов нажимаем кнопку Save & Exit

Переходим к установке Asterisk

make

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

Далее выполним make install

make install

После успешной установки будет сообщение

На данном этапе установка Asterisk завершена, перейдём к настройке. Соберем конфигурационные файлы с комментариями и примерами. Данная процедура не обязательна, делаете по необходимости.

make samples

Добавим скрипты инициализации в автозагрузку

make config
ldconfig

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

make install-logrotate
Создание пользователя asterisk

Необходимо создать пользователя под которым Asterisk будет запускаться.

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/asterisk
chown -R asterisk.asterisk /var/log/asterisk
chown -R asterisk.asterisk /var/spool/asterisk
chown -R asterisk.asterisk /usr/lib64/asterisk
Укажем пользователя от которого будет запускаться Asterisk

Редактируем файл /etc/sysconfig/asterisk

nano /etc/sysconfig/asterisk

Проверяем указанные строки, если они есть раскомментируем, если нет, добавим в файл.

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

Откроем на редактирование файл /etc/asterisk/asterisk.conf

nano /etc/asterisk/asterisk.conf

Раскомментируем две строки

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

Перезагрузим Asterisk для применения внесенных нами изменений

systemctl restart asterisk

Добавим Asterisk в автозагрузку при старте системы

systemctl enable asterisk
Проверяем работу Asterisk

Давайте проверим статус процесса asterisk. Запущен он или нет и есть ли какие-то ошибки

systemctl status asterisk
systemctl status asterisk

По статусу видно что служба запущена (active). Внизу можно увидеть краткий лог работы программы.

Зайдем в консоль Asterisk и проверим что программа отвечает. Также выполним несколько команд. Зайти в консоль можно командой asterisk -r я обычно использую asterisk -rvvvvvv для полной детализации лога в консоли.

asterisk -rvvvvvv
asterisk -rvvvvvv

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

core show channels

Команда отработала успешно, проверим список всех SIP peers

sip show peers

Эта команда не сработает. В предыдущих версиях Asterisk данная команда сработала бы без вопросов. Дело в том что начиная с 17 версии Asterisk модуль chan_sip отвечающий за работу модуля SIP считается устаревшим и по умолчанию отключен. Попытаемся его загрузить из консоли.

module load chan_sip.so
module load chan_sip.so

Видим что модуль загрузился но с предупреждениями. WARNING как раз повествует о том, что модуль устарел и скоро его не станет, используйте PJSIP. Попробуем выполнить

sip show peers
sip show peers

Команда отработала успешно. Но, чтобы модуль загружался и после выхода из консоли при старте сервера, необходимо отредактировать файл /etc/asterisk/modules.conf

nano /etc/asterisk/modules.conf

Находим в файле запись noload => chan_sip.so и комментируем её поставив перед ней точку с запятой

;noload => chan_sip.so

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

Я сам постепенно перехожу и всем советую использовать новую библиотеку res_pjsip

В данной статье я рассмотрел как проходит установка Asterisk 18 на Centos 8. В следующей статье планирую рассмотреть процесс первоначальной настройки: подключение пользователей, транков и т.п. Список консольных команд Asterisk также есть на нашем сайте.

Весь процесс установки Asterisk 18 на Centos 8 я записал на видео.

Поделиться:

6 thoughts on “Установка Asterisk 18 на Centos 8

  • 26 февраля, 2021 в 10:39
    Permalink

    Было очень полезно, спасибо! Ждём следующую статью по настройке))
    Когда планируете выпустить ?

    Ответ
    • 26 февраля, 2021 в 10:44
      Permalink

      В ближайшее время как раз будет статья по начальной настройке

      Ответ
  • 10 марта, 2021 в 14:06
    Permalink

    Ждём следующую статью по настройке.

    Ответ
    • 10 марта, 2021 в 14:25
      Permalink

      Она в процессе, больше половины уже готово

      Ответ
  • 28 марта, 2021 в 18:10
    Permalink

    Великолепная, актуальная статья. Все, четко, понятно, красиво! Конечно, тоже, будем рады статье по первоначальной настройке всего этого добра ))

    Ответ
    • 28 марта, 2021 в 19:00
      Permalink

      Спасибо за комент. Статья уже есть посмотрите в разделе asterisk

      Ответ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *