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
