SCROLL
Среднее время на прочтение: 4 мин.

Установка 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 завершена.

 

Понравилась или оказалась полезной статья, поблагодари автора

 

Обсуждение

2 комментариев
  • cd dahdi-linux-complete-3.0.0+3.0.0 это ошибочный путь, должно быть cd dahdi-linux-complete-3.1.0+3.1.0

    • Это ответ на комментарий Alex

      По всей видимости просто новая версия dahdi в репозитории выложили, поэтому и ругается на путь. На момент написания статьи версия была dahdi-linux-complete-3.0.0+3.0.0.
      Актуализировал в статье. Спасибо!