Перейти до змісту

Примітка

Остання версія Rocky Linux, на якій тестувалась ця процедура, була версія 8.5. Оскільки основна частина цієї процедури покладається на збірки вихідних кодів безпосередньо з Asterisk і простий набір інструментів розробки з Rocky Linux, вона має працювати на всіх версіях. Якщо у вас виникнуть проблеми, повідомте нас!

Встановлення Asterisk на Rocky Linux

Що таке Asterisk?

Asterisk — це платформа з відкритим кодом для створення комунікаційних програм. Крім того, Asterisk перетворює звичайний комп’ютер на комунікаційний сервер, а також живить IP-АТС, VoIP-шлюзи, конференц-сервери та інші спеціальні рішення. Він використовується малими та великими підприємствами, кол-центрами, операторами та державними установами по всьому світу.

Asterisk є безкоштовним і відкритим вихідним кодом, і його спонсорує Sangoma. Sangoma також пропонує комерційні продукти, які використовують Asterisk під капотом, і залежно від вашого досвіду та бюджету використання цих продуктів може бути більш вигідним, ніж використання власних. Тільки ви та ваша організація знаєте цю відповідь.

Слід зазначити, що цей посібник вимагає від адміністратора провести достатню кількість досліджень самостійно. Встановлення комунікаційного сервера не є складним процесом, але запустити його може бути досить складно. Хоча цей посібник допоможе запустити ваш сервер, він не буде повністю готовий для використання у виробництві.

Передумови

Для виконання цього посібника вам знадобляться як мінімум наступні навички та інструменти:

  • Машина під керуванням Rocky Linux.
  • Рівень комфорту зі зміною файлів конфігурації та видачею команд із командного рядка
  • Знання того, як користуватися редактором командного рядка (тут ми використовуємо vi, але можете замінити його на свій улюблений редактор.)
  • Вам потрібен доступ root і, в ідеалі, увійдіть як користувач root у вашому терміналі
  • Репозиторії EPEL від Fedora
  • Можливість входити як root або виконувати команди root за допомогою sudo. Усі команди тут припускають користувача з правами sudo. Однак процеси конфігурації та збирання виконуються за допомогою sudo -s.
  • Щоб отримати останню збірку Asterisk, вам потрібно буде використовувати curl або wget. У цьому посібнику використовується wget, але не соромтеся замінити відповідний рядок curl, якщо ви хочете його використовувати.

Оновлення Rocky Linux і встановлення wget

sudo dnf -y update

Це дозволить оновити ваш сервер усіма пакетами, які були випущені або оновлені після останнього оновлення або встановлення. А потім запустіть:

sudo dnf install wget

Встановіть ім'я хоста

Встановіть ім’я хоста на домен, який ви використовуватимете для Asterisk.

sudo hostnamectl set-hostname asterisk.example.com

Додайте необхідні репозиторії

Спочатку встановіть EPEL (додаткові пакети для Enterprise Linux):

sudo dnf -y install epel-release

Далі увімкніть Rocky Linux PowerTools:

sudo dnf config-manager --set-enabled powertools

Встановіть засоби розробки

sudo dnf group -y install "Development Tools"
sudo dnf -y install git wget  

Встановлення Asterisk

Завантаження та налаштування збірки Asterisk

Перш ніж завантажити цей сценарій, переконайтеся, що у вас остання версія. Для цього перейдіть за посиланням для завантаження Asterisk тут і знайдіть останню збірку Asterisk. Потім скопіюйте розташування посилання. На момент написання цього документа останньою була така збірка:

wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz 
tar xvfz asterisk-20-current.tar.gz
cd asterisk-20.0.0/

Перш ніж запускати install_prereq нижче (і інші команди), вам потрібно бути суперкористувачем або root. На цьому етапі набагато простіше перейти до sudo назавжди на деякий час. Пізніше ви вийдете з sudo:

sudo -s
contrib/scripts/install_prereq install

Після завершення сценарію ви повинні побачити наступне:

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

Тепер, коли всі необхідні пакунки встановлено, нашим наступним кроком є налаштування та збірка Asterisk:

./configure --libdir=/usr/lib64 --with-jansson-bundled=yes

Якщо припустити, що конфігурація працює без проблем, ви повинні отримати велику емблему ASCII Asterisk, а потім наступне на Rocky Linux:

configure: Package configured for:
configure: OS type  : linux-gnu
configure: Host CPU : x86_64
configure: build-cpu:vendor:os: x86_64 : pc : linux-gnu :
configure: host-cpu:vendor:os: x86_64 : pc : linux-gnu :

Налаштування параметрів меню Asterisk [Для додаткових параметрів]

Це один із кроків, на якому адміністратору потрібно буде виконати домашнє завдання. Існує багато параметрів меню, які вам можуть не знадобитися. Запуск наступної команди:

make menuselect

переведе вас на екран вибору меню:

menuselect screen

Уважно перегляньте ці варіанти та зробіть вибір відповідно до своїх вимог. Як зазначалося раніше, для цього може знадобитися додаткове домашнє завдання.

Збірка та встановлення Asterisk

Для збірки потрібно послідовно виконати наступні команди:

make
make install

Встановлювати документацію не потрібно, але якщо ви не експерт із комунікаційних серверів, ви захочете її встановити:

make progdocs

Далі встановіть базову АТС і налаштуйте її. Базова АТС - це просто, дуже просто! Ймовірно, вам знадобиться внести зміни, щоб ваша PBX працювала так, як ви хочете.

make basic-pbx
make config

Конфігурація Asterisk

Створити користувача & групу

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

groupadd asterisk
useradd -r -d /var/lib/asterisk -g asterisk asterisk
chown -R asterisk.asterisk /etc/asterisk /var/{lib,log,spool}/asterisk /usr/lib64/asterisk
restorecon -vr {/etc/asterisk,/var/lib/asterisk,/var/log/asterisk,/var/spool/asterisk}

Тепер, коли основна частина нашої роботи завершена, вийдіть із команди sudo -s. Для цього необхідно, щоб більшість інших команд знову використовували sudo:

exit

Встановити користувача за умовчанням & групу

sudo vi /etc/sysconfig/asterisk

Видаліть коментарі у двох рядках нижче та збережіть:

AST_USER="asterisk"
AST_GROUP="asterisk"
sudo vi /etc/asterisk/asterisk.conf

Видаліть коментарі у двох рядках нижче та збережіть:

runuser = asterisk; Користувач для запуску.
rungroup = asterisk; Група для запуску.

Налаштування служби Asterisk

sudo systemctl enable asterisk

Налаштування брандмауера

У цьому прикладі для брандмауера використовується firewalld, який є типовим у Rocky Linux. Метою тут є відкрити порти SIP для світу та відкрити RTP (транспортний протокол реального часу) для світу на портах 10000-20000, як рекомендовано в документації Asterisk.

Вам майже напевно знадобляться інші правила брандмауера для інших прямих служб (HTTP/HTTPS), які ви, ймовірно, захочете обмежити своїми IP-адресами. Це виходить за рамки цього документа:

sudo firewall-cmd --zone=public --add-service sip --permanent
sudo firewall-cmd --zone=public --add-port=10000-20000/udp --permanent

Оскільки ви зробили команди firewalld постійними, вам потрібно перезавантажити сервер. Ви можете зробити це за допомогою:

sudo shutdown -r now

Тестування

Консоль Asterisk

Для перевірки підключимося до консолі Asterisk:

sudo asterisk -r

Це приведе вас до клієнта командного рядка Asterisk. Ви побачите цю підказку після того, як відобразиться основна інформація Asterisk:

asterisk*CLI>

Щоб змінити багатослівність консолі, використовуйте наступне:

core set verbose 4

Що повинно показати вам наступне в консолі Asterisk:

Console verbose was OFF and is now 4.

Показати зразок автентифікації кінцевої точки

У командному рядку клієнта Asterisk введіть:

pjsip show auth 1101

Це поверне інформацію про ім’я користувача та пароль, які потім можна використовувати для підключення до будь-якого клієнта SIP.

Висновок

Вищезазначене допоможе вам почати роботу з сервером, але завершити налаштування, підключити пристрої та подальше усунення несправностей залежить від вас.

Запуск комунікаційного сервера Asterisk потребує часу та зусиль і вимагає дослідження з боку адміністратора. Щоб отримати додаткові відомості про налаштування та використання Asterisk, перегляньте Asterisk Wiki тут.

Contributors: Steven Spencer, Ganna Zhyrnova