Найти в Дзене

Установка Asterisk на Debian

Расскажу без лишних комментариев и отступлений об установке чистого asterisk 16 на сервер Debian 10 Buster. Ранее я уже рассматривал этот вопрос на разных дистрибутивах и версиях. Сейчас просто освежу и актуализирую предыдущие заметки на тему установки астериска, чтобы можно было простым копипастом быстро все развернуть на голом сервере. У меня по старым инструкциям не получилось, были ошибки небольшие, поэтому решил заново описать, как быстро установить asterisk на debian. Введение Если у вас еще не настроен сервер с Debian, рекомендую мои материалы на эту тему: Я не буду касаться вопроса настройки фаервола, буду считать, что он выключен. Но на сервере с астериском, особенно если он смотрит в интернет напрямую, обязательно надо настроить firewall. По этому поводу рекомендую мою подробную статью по настройке iptables. Для отладки и тестирования работы voip я рекомендую сервис Zadarma. Плюс его в том, что после регистрации вы получите настройки пира для внутренней сети операт
Оглавление
Logo_Debian_Asterisk
Logo_Debian_Asterisk

Расскажу без лишних комментариев и отступлений об установке чистого asterisk 16 на сервер Debian 10 Buster. Ранее я уже рассматривал этот вопрос на разных дистрибутивах и версиях. Сейчас просто освежу и актуализирую предыдущие заметки на тему установки астериска, чтобы можно было простым копипастом быстро все развернуть на голом сервере. У меня по старым инструкциям не получилось, были ошибки небольшие, поэтому решил заново описать, как быстро установить asterisk на debian.

Введение

Если у вас еще не настроен сервер с Debian, рекомендую мои материалы на эту тему:

Я не буду касаться вопроса настройки фаервола, буду считать, что он выключен. Но на сервере с астериском, особенно если он смотрит в интернет напрямую, обязательно надо настроить firewall. По этому поводу рекомендую мою подробную статью по настройке iptables.

Для отладки и тестирования работы voip я рекомендую сервис Zadarma. Плюс его в том, что после регистрации вы получите настройки пира для внутренней сети оператора. И внутри этой сети вы можете бесплатно звонить. Например, я одного пира регистрирую на sip клиенте смартфона и с него звоню на второй аккаунт, пир от которого настроен в астериске. Таким образом эмулирую внешний звонок. Удобно отлаживать различные конфигурации звонков, не требуя платного подключения.

Приступаем к установке астериска. Я буду работать на следующей системе:

lsb_release -a
lsb_release -a

Загрузка asterisk на сервер

Я буду устанавливать LTS версию Asterisk 18. Советую для долгосрочного использования всегда использовать LTS версии. Они в целом стабильнее и дольше срок поддержки. Идем на страницу https://www.asterisk.org/downloads/asterisk/all-asterisk-versions и копируем ссылку на нужную версию. Загружаем ее на сервер.

# cd /usr/src
# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz

После загрузки, сразу распаковываем.

# tar xzvf asterisk-18-current.tar.gz

Переходим в директорию с исходниками asterisk 18.

# cd asterisk-18.*

Установка зависимостей для asterisk 18

Установим теперь все необходимые зависимости в debian. Перебирать вручную их нет необходимости. Все зависимости собраны в скрипте, который надо запустить, находясь в директории с исходниками.

# contrib/scripts/install_prereq install

В процессе установки вам могут задавать различные вопросы. Везде можно выбирать дефолтные значения. Дальше скачаем исходники mp3, которые нужны для сборки mp3 модуля.

# contrib/scripts/get_mp3_source.sh

Это все необходимые зависимости. Можно приступать к сборке и установке asterisk 18

Установка Asterisk 18 на Debian 10

Запускаем скрипт подготовки исходников asterisk к компиляции.

# ./configure

Успешное завершение подготовки будет ознаменовано следующим выводом в консоль.

*
*

На следующем этапе мы будем выбирать компоненты астериска для установки.

# make menuselect
menuselect
menuselect

К тому, что установлено по-умолчанию, я добавляю:

  • На первой вкладке format_mp3.
  • В Core Sound Packages указываю русские звуки RU-WAV.
  • В Extras Sound Packages выбираю английский EN-WAV, русского, к сожалению, нет.

Продолжаю, после принятия настроек, нажатием на Save & Exit. Компилируем, добавляя ключ j2. В данном случае у меня 2 ядра на сервере, сборка будет происходить с участием всех ядер.

# make -j2

Успешное окончание сборки будет обозначено сообщением в консоли.

make -j2
make -j2

Теперь устанавливаем asterisk 18 и все его модули.

# make install

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

make install
make install

Формируем образцы файлов конфигурации, чтобы не писать их с нуля самим.

# make samples

В завершении установки, создаем init скрипт.

# make config

Можно еще обновить кэш используемых динамических библиотек.

# ldconfig

На этом непосредственно установка asterisk 18 закончена.

Запуск asterisk

По-умолчанию, asterisk установлен от root и будет запускаться от него же. Я предлагаю для этого создать отдельного пользователя и запускать астериск от него. Для этого создаем пользователя и добавляем его в некоторые группы.

# adduser --system --group --home /var/lib/asterisk --no-create-home --gecos "Asterisk" asterisk
# usermod -a -G dialout,audio asterisk

Настраиваем Asterisk на запуск под этим пользователем. Для этого добавляем в конфиг /etc/default/asterisk параметры:

AST_USER="asterisk"
AST_GROUP="asterisk"

Назначаем новому пользователю права на директории астериска.

# chown -R asterisk: /var/{lib,log,run,spool}/asterisk /usr/lib/asterisk /etc/asterisk

Пробуем запустить asterisk:

# systemctl start asterisk

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

# systemctl status asterisk
systemctl status asterisk
systemctl status asterisk

Asterisk запустился, но у меня ошибка:

radcli: rc_read_config: rc_read_config: can't open /etc/radiusclient-ng/radiusclient.conf: No such file or directory

Не может найти необходимый конфиг. Я проверил глазами, директории /etc/radiusclient-ng действительно нет, но есть /etc/radcli, где находится указанный в ошибке конфиг radiusclient.conf. Подозреваю, что это он и есть. Посмотрел, где в конфигах астериска используется этот путь. Оказалось, что в /etc/asterisk/cdr.conf и /etc/asterisk/cel.conf. Я там раскомментировал параметры, где указан ошибочный путь и указал правильный.

В /etc/asterisk/cdr.conf раскомментировал и отредактировал строки:

[radius]
radiuscfg => /etc/radcli/radiusclient.conf

То же самое в /etc/asterisk/cel.conf:

[radius]
radiuscfg => /etc/radcli/radiusclient.conf

После этого перезапустил астериск и проверил, все было в порядке.

# systemctl restart asterisk
# systemctl status asterisk
systemctl status asterisk
systemctl status asterisk

Добавим астериск в автозагрузку:

# systemctl enable asterisk

Запускаем консоль астериск и убеждаемся, что он работает:

# rasterisk
rasterisk
rasterisk

Все в порядке, сервер телефонии asterisk установлен и готов к работе. Можно заниматься настройкой.

Заключение

Мы установили оригинальную версию asterisk 18 на сервер под управлением debian 10 без каких-либо дополнений и web панелей. Дальше можно приступать к настройке. Я рекомендую воспользоваться моей инструкцией по базовой настройке asterisk с нуля. Там подробно рассказано как сконфигурировать основной функционал, который удовлетворит потребности в телефонии для среднестатистического офиса. Настройка включает в себя так же запись разговоров и подробную статистику звонков.

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