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

от автора

Asterisk должен быть собран с поддержкой mysql (модули cdr_mysql,res_config_mysql). 

Сначала обновите вашу систему

sudo apt update && sudo apt full-upgrade -y

установите все необходимые пакеты зависимостей Asterisk:

sudo apt -y install build-essential git curl wget libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev libjansson-dev libxml2-dev uuid-dev default-libmysqlclient-dev

Убедитесь, что GCC и CMAKE установлены и работают в нашей локальной системе

make --version
gcc --version
cd /usr/src/ && sudo wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz &&  sudo tar xvf asterisk-18-current.tar.gz && cd asterisk-18*/ && sudo contrib/scripts/get_mp3_source.sh

Устанавливаем необходимые зависимости

sudo contrib/scripts/install_prereq install

в процессе предложить выбрать код страны ставим 7

Скрипт установит все необходимые пакеты и после успешного завершения выведет следующее сообщение:

####################################### install completed successfully #######################################

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

make distclean

Теперь нам нужно проверить, присутствуют ли все зависимости в вашей системе, чтобы скомпилировать исходный код. Затем выполните следующую команду:

sudo ./configure

В конце вас встретит красивый логотип ASCII Asterisk.

Затем выберите модули, которые вы хотите скомпилировать и установить. Чтобы получить доступ к меню, введите следующее:

sudo make menuselect

выбираем следующие

Add-ons (See README-addons.txt) [] chan_ooh323 [] format_mp3 [] res_config_mysql [] cdr_mysql Applications - добавить [] app_macro Call Detail Recording  [ ] cdr_radius убрать Channel Event Logging    [ ] cel_radius убрать Core Sound Packages [] CORE-SOUNDS-RU-WAV [] CORE-SOUNDS-RU-ULAW [] CORE-SOUNDS-RU-ALAW [] CORE-SOUNDS-RU-GSM [] CORE-SOUNDS-RU-G729 [] CORE-SOUNDS-RU-G722 [] CORE-SOUNDS-RU-SLN16 [] CORE-SOUNDS-RU-SIREN7 [] CORE-SOUNDS-RU-SIREN14 Music On Hold File Packages [] MOH-OPSOUND-WAV [] MOH-OPSOUND-ULAW [] MOH-OPSOUND-ALAW [] MOH-OPSOUND-GSM Extras Sound Packages [] EXTRA-SOUNDS-EN-WAV [] EXTRA-SOUNDS-EN-ULAW [] EXTRA-SOUNDS-EN-ALAW [] EXTRA-SOUNDS-EN-GSM Save & Exit

По завершении должны получить:

menuselect changes saved! make[1]: Leaving directory '/home/infoit/asterisk-18'

Чтобы начать компиляцию исходного кода, выполните команду

sudo make

Если все прошло успешно, вы должны получить:

+--------- Asterisk Build Complete ---------+  Asterisk has successfully been built, and + can be installed by running:              +                                        +   make install                              + +-------------------------------------------+ 

После завершения компиляции установите Asterisk и его модули, набрав:

Затем установите Asterisk

sudo make install

Пример вывода:

 +---- Asterisk Installation Complete -------+                                               +   YOU MUST READ THE SECURITY DOCUMENT    +                                        +   Asterisk has successfully been installed. + If you would like to install the sample   + configuration files (overwriting any      + existing config files), run:              +                                        +   For generic reference documentation:      + make samples                           +                                        +   For a sample basic PBX:                   + make basic-pbx                         +                                        +                                          +    +-----------------  or ---------------------+                                         +   You can go ahead and install the asterisk + program documentation now or later run:   +                                        +              make progdocs               +                                          +   Note This requires that you have      + doxygen installed on your local system    + +-------------------------------------------+ 

Установите документацию, как показано, если вы хотите

sudo make progdocs

Создание документации C-API. Это займет некоторое время.

Затем, наконец, используйте приведенные ниже команды для установки конфигураций и примеров

sudo make samples &&  sudo make config &&  sudo ldconfig

включить ротацию логов можно так

make install-logrotate

Создаем пользователя Asterisk и запускаем

sudo groupadd asterisk &&  sudo useradd -r -d /var/lib/asterisk -g asterisk asterisk &&  sudo usermod -aG audio,dialout asterisk &&  sudo chown -R asterisk.asterisk /etc/asterisk &&  sudo chown -R asterisk.asterisk /var/{lib,log,run,spool}/asterisk &&  sudo chown -R asterisk.asterisk /usr/lib/asterisk 

Давайте подтвердим идентификатор пользователя Asterisk:

id asterisk

Чтобы настроить Asterisk для запуска от имени вновь созданного пользователя, откройте файл и раскомментируйте следующие две строки в начале (удалите # перед строками):

sudo sed -i 's/#AST_USER="asterisk"/AST_USER="asterisk"/' /etc/default/asterisk &&  sudo sed -i 's/#AST_GROUP="asterisk"/AST_GROUP="asterisk"/' /etc/default/asterisk &&  sudo sed -i 's/;runuser = asterisk/runuser = asterisk/' /etc/asterisk/asterisk.conf &&  sudo sed -i 's/;rungroup = asterisk/rungroup = asterisk/' /etc/asterisk/asterisk.conf 

переместим и архивируем в домашнюю категорию

mv /etc/init.d/asterisk ~/asterisk.init.d.bak

Создайте свой новый сервис файл в/etc/systemd/system/asterisk.service

sudo tee /etc/systemd/system/asterisk.service<<EOF [Unit] Description=Asterisk PBX and telephony daemon. Documentation=man:asterisk(8) Wants=network.target After=network.target [Service] Type=simple User=asterisk Group=asterisk ExecStart=/usr/sbin/asterisk -f -C /etc/asterisk/asterisk.conf ExecStop=/usr/sbin/asterisk -rx 'core stop now' ExecReload=/usr/sbin/asterisk -rx 'core reload' safe_asterisk emulation Restart=always RestartSec=10 [Install] WantedBy=multi-user.target EOF

проверить свой сервис файл

nano /etc/systemd/system/asterisk.service 

После изменения

systemctl daemon-reload

После внесения изменений перезапустите службу asterisk

sudo systemctl restart asterisk && sudo systemctl enable asterisk && sudo systemctl status asterisk

Проверьте подключение к Asterisk CLI

sudo asterisk -rvvvv

Вы должны увидеть результат, подобный этому:

Connected to Asterisk GIT-18-804b1987fb currently running on infoit (pid = 31426) infoit*CLI> 

выйти

Попробуем ввести парочку команд для проверки работы.

core show channels
core show  uptime
core show  sysinfo

Настройка межсетевого экрана

sudo apt update sudo apt install ufw -y

Разрешите доступ к портам на брандмауэре, выполнив следующую команду:

sudo ufw allow 80
sudo ufw allow 22
sudo ufw allow 10000:20000/udp
sudo ufw allow  5060:5061/udp

проверить статус

sudo ufw status verbose

Status: inactive

включить

sudo ufw enable

прописать порты в конфиге

sudo tee /etc/asterisk/rtp.conf<<EOF [general] rtpstart=10000 rtpend=20000 EOF 

проверить

nano /etc/asterisk/rtp.conf

просмотреть статус можно

sudo ufw status verbose


ссылка на оригинал статьи https://habr.com/ru/post/692216/


Комментарии

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

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