Примітка
Остання версія 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
переведе вас на екран вибору меню:
Уважно перегляньте ці варіанти та зробіть вибір відповідно до своїх вимог. Як зазначалося раніше, для цього може знадобитися додаткове домашнє завдання.
Збірка та встановлення 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