Тематические термины: Asterisk , Rocky Linux .
В описанной инструкции рассмотрим пример установки с нуля Asterisk 22 LTS (с длительной поддержкой) на Rocky Linux.
Подготовка сервера
Установка ПО
Настройка времени
Безопасность
Установка Asterisk
Базовая настройка и запуск
Заведение пользователя
Подключение телефона и проверка
Исправление ошибок при запуске Астериска
Перед установкой телефонии выполним предварительные действия.
Обновляем пакеты:
dnf update
Устанавливаем пакеты:
dnf install gcc wget automake libtool
* gcc нужен для сборки исходников, wget — для загрузки файлов из командной строки; automake — участвует в создании Makefile при запуске configure; libtool — обеспечивает процесс сборки и использования динамических библиотек.
Устанавливаем временную зону:
timedatectl set-timezone Europe/Moscow
* в данном примере московское время.
Устанавливаем утилиту для синхронизации времени и запускаем ее:
dnf install chrony
systemctl enable chronyd —now
Создаем новый сервис в брандмауэре:
firewall-cmd —permanent —new-service=asterisk
Добавим в сервис нужные порты:
firewall-cmd —permanent —service=asterisk —add-port=5060/{tcp,udp}
firewall-cmd —permanent —service=asterisk —add-port=5061/{tcp,udp}
firewall-cmd —permanent —service=asterisk —add-port=4569/udp
firewall-cmd —permanent —service=asterisk —add-port=5038/tcp
firewall-cmd —permanent —service=asterisk —add-port=10000-20000/udp
* где 5060 — SIP, 5061 — SIP over TLS, 4569 — IAX , 5038 — AMI (Asterisk Manager Interface), 10000-20000 — диапазон для голосового трафика.
Теперь добавляем созданный сервис как разрешенный:
firewall-cmd —permanent —add-service=asterisk
и перезапускаем фаервол:
firewall-cmd —reload
Установка астериска выполняется путем сборки исходников.
Для начала, загружаем исходник на сервер. Так как мы планируем установить LTS версию, заходим на страницу https://www.asterisk.org/downloads/asterisk/all-asterisk-versions , раздел «Long Term Support (LTS) Releases» и копируем ссылку на загрузку пакета:
* Certified Asterisk — бизнес версия с поддержкой для коммерческих клиентов.
Используя ссылку, скачиваем на сервер программу:
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-22-current.tar.gz
Распаковываем архив и переходим в него:
tar -xf asterisk-*.tar.gz
cd asterisk-*/
Используем встроенный скрипт, чтобы установить зависимости для астериска:
./contrib/scripts/install_prereq install
./contrib/scripts/install_prereq install-unpackaged
Чистим образовавшиеся временные файлы:
make distclean
Добавляем библиотеку для работы с mp3:
./contrib/scripts/get_mp3_source.sh
Конфигурируем исходник:
./configure —prefix=/usr —sysconfdir=/etc —localstatedir=/var —libdir=/usr/lib64 —with-iconv —with-libcurl —with-jansson-bundled —with-pjproject-bundled
* полный перечень опция и что они означают можно посмотреть командой ./configure -h .
Запускаем сборку и установку:
make
make install
Устанавливаем скрипты для автозапуска АТС и готовые конфигурационные файлы:
make samples
make basic-pbx
Установка завершена!
Открываем конфигурационный файл:
vi /etc/asterisk/asterisk.conf
Добавляем следующие пункты:
runuser = asterisk
rungroup = asterisk
defaultlanguage = ru
documentation_language = ru_RU
Создаем учетную запись:
useradd asterisk -m
Задаем права на следующие каталоги:
chown -R asterisk:asterisk /var/run/asterisk /etc/asterisk /var/{lib,log,spool}/asterisk /usr/lib64/asterisk /var/log/asterisk
Проверяем настройки:
asterisk -c
Если программа запустится, мы увидим Asterisk Ready :
* все ошибки и предупреждения можно проигнорировать, но правильнее их исправить , отключив неиспользуемые модули.
Выходим из оболочки asterisk, введя комбинацию клавиш CTRL + C .
Создаем systemd-юнит:
vi /etc/systemd/system/asterisk.service
[Unit]
Description=Asterisk PBX and telephony daemon.
After=network.target
#include these if asterisk need to bind to a specific IP (other than 0.0.0.0)
#Wants=network-online.target
#After=network-online.target network.target
[Service]
Type=simple
Environment=HOME=/var/lib/asterisk
#if systemd do not provide hostname and you need to use ${ENV(HOSTNAME)}
#Environment=HOSTNAME=%H
WorkingDirectory=/var/lib/asterisk
User=asterisk
Group=asterisk
ExecStart=/usr/sbin/asterisk -mqf -C /etc/asterisk/asterisk.conf
ExecReload=/usr/sbin/asterisk -rx ‘core reload’
#if /var/run is a tmpfs, this will create /var/run/asterisk on start
#RuntimeDirectory=asterisk
#Nice=0
#UMask=0002
LimitCORE=infinity
#LimitNOFILE=
Restart=always
RestartSec=4
# Prevent duplication of logs with color codes to /var/log/messages
StandardOutput=null
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Разрешаем автостарт службы астериск и перезапускаем ее:
systemctl enable asterisk
systemctl restart asterisk
Статус можно проверить командой:
systemctl status asterisk
Создадим наш первый диалплан (правило обработки звонков):
vi /etc/asterisk/extensions.conf
Допишем в него следующее:
[outcaling]
exten => _XXX,1,Dial(SIP/${EXTEN},,m)
* в данном примере мы создаем контекст с именем outcaling для трехзначных номеров ( XXX ) с вызовом по SIP по внутреннему номеру.
Теперь создадим два внутренних номера:
vi /etc/asterisk/sip.conf
[public](!)
type=friend
context=outcaling
host=dynamic
disallow=all
allow=alaw
allow=ulaw
language=ru
qualify=yes
canreinvite=yes
call-limit=4
nat=no
[101](public)
regexten=101
secret=1234
callerid=»101″ <101>
callgroup=1
pickupgroup=1
[102](public)
regexten=102
secret=5678
callerid=»102″ <102>
callgroup=1
pickupgroup=1
* сначала мы создали шаблон public , в который занесли общие параметры. Шаблон мы применили к создаваемым коротким номерам.
* где:
Перезапускаем наш сервис:
systemctl restart asterisk
Для проверки сервера устанавливаем софт-телефон на компьютер. Например, а качестве SIP-клиента под Windows можно установить бесплатную программу 3CX Phone, для Android — Zoiper.
Пример настройки клиента 3CX Phone:
Настраиваем подключение с логином и паролем 101 / 1234, второй — 102 / 5678. Пробуем позвонить.
Рассмотрим процесс устранения предупреждений и ошибок во время запуска Asterisk.
Для устранения данных проблем необходимо просто отключить данные модули.
Открываем файл:
vi /etc/asterisk/modules.conf
И в зависимости от ошибок, добавляем нижеперечисленные исправления…
Отключаем res_phoneprov:
noload => res_phoneprov.so
Отключаем res_config_ldap:
noload => res_config_ldap.so
Отключаем res_config_pgsql:
noload => res_config_pgsql.so
Отключаем cel_pgsql:
noload => cel_pgsql.so
Отключаем cel_tds:
noload => cel_tds.so
ARI предоставляет API для Asterisk REST Interface. В данном примере, отключаем поддержку:
vi /etc/asterisk/ari.conf
Находим параметр enabled и меняем его значение на no :
enabled = no
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…