Установка Asterisk 16 на Debian 9 Stretch
Рассмотрим как выполнить установку из исходников Asterisk 16 на Debian 9 Stretch.
Подготовка системы
Перед началом установки обновляем систему до актуального состояния:
apt-get update && apt-get upgrade -y
Устанавливаем необходимые зависимости:
apt-get install linux-headers-amd64 gcc make autoconf libtool libical-dev pkg-config default-libmysqlclient-dev -y
Устанавливаем DAHDI, LibPRI, libSTRP
Скачиваем исходники (dahdi, libpri, libstrp, asterisk) и распаковываем их:
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz wget https://github.com/cisco/libsrtp/archive/v2.2.0.tar.gz wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz tar -zxvf dahdi-linux-complete-current.tar.gz tar -zxvf libpri-current.tar.gz tar -zxvf v2.2.0.tar.gz tar -zxvf asterisk-16-current.tar.gz
Собираем (dahdi, libpri, libstrp, jansson) из исходников и устанавливаем:
cd dahdi-linux-complete-3.* make all make install make config cd ..
cd libpri-1.6.0/ make make install cd ..
cd libsrtp-2.2.0/ ./configure make make runtest make install cd ..
Установка Asterisk
Выполняем скрипт, который проверит какие еще необходимо установить зависимости, для работы Asterisk:
cd asterisk-16.* ./contrib/scripts/install_prereq install -y
В процессе установки, необходимо будет задать телефонный код, оставляем по-умолчанию 7 (Россия).
Выполняем конфигурацию с поддержкой pjproject, mysqlclient, добавляем поддержку mp3 и запускаем меню выбора устанавливаемых компонентов:
./configure --with-pjproject-bundled --with-jansson-bundled --with-mysqlclient ./contrib/scripts/get_mp3_source.sh make menuselect
Выбираем:
- Add-ons — поддержка format_mp3, res_config_mysql, app_mysql, cdr_mysq.
- Core Sound Packeges — CORE-SOUNDS-EN-ULAW, CORE-SOUNDS-EN-ALAW, CORE-SOUNDS-EN-GSM, CORE-SOUNDS-EN-G729, CORE-SOUNDS-RU-ULAW, CORE-SOUNDS-RU-ALAW, CORE-SOUNDS-RU-GSM, CORE-SOUNDS-RU-G729
Остальное я оставляю по-умолчанию.
Выполняем компиляцию исходников asterisk, затем выполняем установку astersik, создание шаблонов файлов конфигурации asterisk и завершаем установку asterisk:
make make install make samples make config ldconfig update-rc.d -f asterisk remove cd ..
Добавляем asterisk в автозагрузку:
systemctl enable asterisk
Создаем пользователя (asterisk), от которого будет работать asterisk. Назначаем права на каталоги asterisk:
adduser asterisk --no-create-home --disabled-password --gecos "Asterisk User" chown asterisk. /var/run/asterisk chown -R asterisk. /etc/asterisk chown -R asterisk. /var/{lib,log,spool}/asterisk chown -R asterisk. /usr/lib/asterisk
В файле конфигурации asterisk (/etc/default/asterisk), укажет от какого пользователя будет выполнятся запуск asterisk:
AST_USER=«asterisk» AST_GROUP=«asterisk»
Выставляем права на файл asterisk.ctl в файле (/etc/asterisk/asterisk.conf) в разделе [files] выставляем следующую конфигурацию:
[files] astctlpermissions = 0660 astctlowner = asterisk astctlgroup = asterisk astctl = asterisk.ctl
Укажем корректный путь к файлу конфигурации RADIUS в файлах (/etc/asterisk/cdr.conf) и (/etc/asterisk/cel.conf):
[radius] radiuscfg => /etc/radcli/radiusclient.conf
Если не скорректрировать пусть к файлу конфигурации RADUIS, то при запуске Asterisk будут появляться следующие ошибки:
● asterisk.service - LSB: Asterisk PBX Loaded: loaded (/etc/init.d/asterisk; generated; vendor preset: enabled) Active: active (running) since Sun 2019-12-08 18:10:50 MSK; 6s ago Docs: man:systemd-sysv-generator(8) Process: 30643 ExecStop=/etc/init.d/asterisk stop (code=exited, status=0/SUCCESS) Process: 30651 ExecStart=/etc/init.d/asterisk start (code=exited, status=0/SUCCESS) Tasks: 81 (limit: 4915) CGroup: /system.slice/asterisk.service └─30666 /usr/sbin/asterisk -U asterisk -G asterisk дек 08 18:10:50 sysos systemd[1]: Stopped LSB: Asterisk PBX. дек 08 18:10:50 sysos systemd[1]: Starting LSB: Asterisk PBX... дек 08 18:10:50 sysos asterisk[30651]: Starting Asterisk PBX: asterisk. дек 08 18:10:50 sysos systemd[1]: Started LSB: Asterisk PBX. дек 08 18:10:51 sysos asterisk[30666]: radcli: rc_read_config: rc_read_config: can't open /usr/local/etc/radiusclient-ng/radiusclient.conf: No such file or directory дек 08 18:10:51 sysos asterisk[30666]: radcli: rc_read_config: rc_read_config: can't open /etc/radiusclient-ng/radiusclient.conf: No such file or directory
Перезапускаем asterisk и входим в его консоль управления:
systemctl stop asterisk systemctl start asterisk asterisk -rv
Если все сделали правильно, то увидите следующее:
Asterisk 16.6.2, 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. ========================================================================= Connected to Asterisk 16.6.2 currently running on sysos (pid = 30796) Asterisk Ready
На этом установка Asterisk 16 на Debian 9 Stretch завершена.
Понравилась или оказалась полезной статья, поблагодари автора
cd dahdi-linux-complete-3.0.0+3.0.0 это ошибочный путь, должно быть cd dahdi-linux-complete-3.1.0+3.1.0
По всей видимости просто новая версия dahdi в репозитории выложили, поэтому и ругается на путь. На момент написания статьи версия была dahdi-linux-complete-3.0.0+3.0.0.
Актуализировал в статье. Спасибо!