Як встановити Asterisk 18 LTS на Ubuntu 24.04|22.04|20.04
Asterisk – це безкоштовний фреймворк з відкритим вихідним кодом, створений Sangoma для створення комунікаційних додатків як для невеликих компаній, так і для великомасштабних сценаріїв використання. Asterisk – це програмне рішення, яке перетворює ваш старий комп’ютер в комунікаційний сервер, який забезпечує роботу систем IP АТС, VoIP-шлюзів, конференц-серверів та інших індивідуальних рішень. Рішення, створені Asterisk, забезпечують роботу колл-центрів, операторів зв’язку та державних установ по всьому світу.
У цій публікації блогу ми розглянемо встановлення Asterisk 18 LTS на сервері Ubuntu 24.04|22.04|20.04. На момент написання цієї статті останньому релізу Asterisk виповнилося 18 років. Також зауважте, що цей випуск не є довгостроковим і не повинен використовуватися для виробничих розгортань, які потребують підтримки Digium протягом довгих років.
Деякі ключові моменти про Asterisk:
- Вона написана на мові програмування C
- Він написаний для роботи на Linux та інших типах Unix
- Він забезпечує роботу телефонних систем бізнесу
- Він підключає безліч різних протоколів телефонії
- Це набір інструментів для побудови IP АТС з безліччю потужних функцій і додатків, VoIP шлюзів і систем конференцій
- Має підтримку VoIP телефонів, а також ТМЗК і POTS
- Він використовує SIP, найпоширеніший протокол VoIP, серед інших
Встановіть Asterisk 18 LTS на Ubuntu 24.04|22.04|20.04
Ви виконаєте кроки в наступних розділах, щоб встановити Asterisk 18 на систему Ubuntu Linux. Оскільки Asterisk створена для модульності, додавання додаткових функцій після встановлення не є складним процесом. Це можна легко зробити.
Крок 1. Оновіть систему Ubuntu
Ми почнемо нашу інсталяцію з оновлення нашого індексу пакетів APT та оновлення всіх пакетів, встановлених у системі. Я рекомендую вам виконати цю установку в новій системі, щоб уникнути будь-яких проблем з роботою служб.
sudo apt update
sudo apt -y upgrade
Якщо процес оновлення пройшов успішно, ви перезавантажуєтеся, якщо це вимога:
[ -f /var/run/reboot-required ] && sudo reboot -f
Крок 2. Встановіть залежності збірки
Після перезавантаження системи увійдіть в систему і встановіть всі залежності, необхідні для збірки Asterisk на машині Ubuntu Linux.
sudo apt update
sudo add-apt-repository universe
sudo apt -y install git curl wget libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev uuid-dev
Встановлення займе лише кілька хвилин, якщо у вас є пристойне підключення до Інтернету.
Крок 3. Завантажте архів Asterisk 18
В офіційних системних репозиторіях ви не знайдете свіжий реліз Asterisk. Нам доведеться вручну завантажити архів tar і зібрати програму з вихідного коду.
$ sudo apt policy asterisk
asterisk:
Installed: (none)
Candidate: 1:16.2.1~dfsg-2ubuntu1
Version table:
1:16.2.1~dfsg-2ubuntu1 500
500 http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages
500 http://mirror.hetzner.de/ubuntu/packages focal/universe amd64 Packages
Використовуйте команду wget для завантаження архівного файлу.
cd ~
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz
Розпакуйте файл за допомогою tar.
tar xvf asterisk-18-current.tar.gz
Виконайте наступну команду, щоб завантажити бібліотеку декодера mp3 у дерево джерел.
cd asterisk-18*/
contrib/scripts/get_mp3_source.sh
Очікуваний результат виконання команди:
A addons/mp3
A addons/mp3/MPGLIB_README
A addons/mp3/common.c
A addons/mp3/huffman.h
A addons/mp3/tabinit.c
A addons/mp3/Makefile
A addons/mp3/README
A addons/mp3/decode_i386.c
A addons/mp3/dct64_i386.c
A addons/mp3/MPGLIB_TODO
A addons/mp3/mpg123.h
A addons/mp3/layer3.c
A addons/mp3/mpglib.h
A addons/mp3/decode_ntom.c
A addons/mp3/interface.c
Exported revision 202.
Переконайтеся, що всі залежності вирішені:
sudo contrib/scripts/install_prereq install
В кінці ви повинні отримати повідомлення про успіх:
#############################################
## install completed successfully
#############################################
Крок 4. Збірка і установка Asterisk 18
Після установки залежностей ви повинні бути готові зібрати Asterisk 18 з джерела, яке ми завантажили.
Запустіть скрипт налаштування, щоб задовольнити залежності збірки.
./configure
Успіх повинен мати вихідні дані, як показано нижче:
.....
configure: creating ./config.status
config.status: creating makeopts
config.status: creating autoconfig.h
configure: Menuselect build configuration successfully completed
.$$$$$$$$$$$$$$$=..
.$7$7.. .7$$7:.
.$$:. ,$7.7
.$7. 7$$$$ .$$77
..$$. $$$$$ .$$$7
..7$ .?. $$$$$ .?. 7$$$.
$.$. .$$$7. $$$$7 .7$$$. .$$$.
.777. .$$$$$$77$$$77$$$$$7. $$$,
$$$~ .7$$$$$$$$$$$$$7. .$$$.
.$$7 .7$$$$$$$7: ?$$$.
$$$ ?7$$$$$$$$$$I .$$$7
$$$ .7$$$$$$$$$$$$$$$$ :$$$.
$$$ $$$$$$7$$$$$$$$$$$$ .$$$.
$$$ $$$ 7$$$7 .$$$ .$$$.
$$$$ $$$$7 .$$$.
7$$$7 7$$$$ 7$$$
$$$$$ $$$
$$$$7. $$ (TM)
$$$$$$$. .7$$$$$$ $$
$$$$$$$$$$$$7$$$$$$$$$.$$$$$$
$$$$$$$$$$$$$$$$.
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 :
Налаштуйте параметри меню, виконавши наступну команду:
make menuselect
Використовуйте клавіші зі стрілками для навігації та клавішу Enter для вибору.
Виберіть Додатки, щоб увімкнути.
Увімкніть звукові модулі Core, які ви хочете використовувати.
Ви також можете додати додаткові пакети МОЗ, які ви хочете використовувати.
Зробіть те ж саме для додаткових звукових пакетів.
Ви також можете переглянути інші меню та вибрати параметри, які ви вважаєте за потрібне для вашого випадку використання.
Коли закінчите, виконайте наступну команду, щоб зібрати Asterisk 18 на Ubuntu 24.04|22.04|20.04.
make
Ось мій успішний результат збірки:
.....
TROLEnc.o ooh323cDriver.o -> chan_ooh323.so
[CC] format_mp3.c -> format_mp3.o
[CC] mp3/common.c -> mp3/common.o
[CC] mp3/dct64_i386.c -> mp3/dct64_i386.o
[CC] mp3/decode_ntom.c -> mp3/decode_ntom.o
[CC] mp3/layer3.c -> mp3/layer3.o
[CC] mp3/tabinit.c -> mp3/tabinit.o
[CC] mp3/interface.c -> mp3/interface.o
[LD] format_mp3.o mp3/common.o mp3/dct64_i386.o mp3/decode_ntom.o mp3/layer3.o mp3/tabinit.o mp3/interface.o -> format_mp3.so
[CC] res_config_mysql.c -> res_config_mysql.o
[LD] res_config_mysql.o -> res_config_mysql.so
Building Documentation For: third-party channels pbx apps codecs formats cdr cel bridges funcs tests main res addons
+--------- Asterisk Build Complete ---------+
+ Asterisk has successfully been built, and +
+ can be installed by running: +
+ +
+ make install +
+-------------------------------------------+
Ось команда, яку ви виконаєте, щоб встановити Asterisk 18 на Ubuntu:
sudo make install
Приклад виводу:
....
make[1]: Entering directory '/home/jkmutai/asterisk-18.1.1/sounds'
make[1]: Leaving directory '/home/jkmutai/asterisk-18.1.1/sounds'
find rest-api -name "*.json" | while read x; do \
/usr/bin/install -c -m 644 $x "/var/lib/asterisk/rest-api" ; \
done
+---- 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
Встановіть конфігурації та зразки.
sudo make samples
sudo make config
sudo ldconfig
Для прикладу базової PBX:
sudo make basic-pbx
Крок 5. Налаштуйте та запустіть сервіс 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,spool}/asterisk
sudo chown -R asterisk.asterisk /usr/lib/asterisk
sudo chmod -R 750 /var/{lib,log,run,spool}/asterisk /usr/lib/asterisk /etc/asterisk
Встановіть asterisk для користувача Astarrisk за замовчуванням:
$ sudo vim /etc/default/asterisk
#Uncomment AST_USER and AST_GROUP to look like below
AST_USER="asterisk"
AST_GROUP="asterisk"
$ sudo vim /etc/asterisk/asterisk.conf
runuser = asterisk ; The user to run as.
rungroup = asterisk ; The group to run as.
Перезапустіть сервіс зірочки після внесення змін:
sudo systemctl restart asterisk
Увімкніть запуск служби зірочки при завантаженні системи:
sudo systemctl enable asterisk
Перевірте статус служби, щоб перевірити, чи вона працює.
$ systemctl status asterisk
● asterisk.service - LSB: Asterisk PBX
Loaded: loaded (/etc/init.d/asterisk; generated)
Active: active (running) since Fri 2023-08-14 12:04:41 CEST; 9s ago
Docs: man:systemd-sysv-generator(8)
Tasks: 82 (limit: 4567)
Memory: 44.6M
CGroup: /system.slice/asterisk.service
└─54142 /usr/sbin/asterisk -U asterisk -G asterisk
Переконайтеся, що ви можете підключитися до інтерфейсу командного рядка Asterisk.
$ sudo asterisk -rvv
Asterisk 18.10.0, Copyright (C) 1999 - 2021, Sangoma Technologies Corporation and others.
Created by Mark Spencer example@infoit.com.ua
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
Running as user 'asterisk'
Running under group 'asterisk'
Connected to Asterisk 18.1.1 currently running on asterisk (pid = 107650)
asterisk*CLI> exit
Asterisk cleanly ending (0).
Executing last minute cleanups
Якщо у вас активний брандмауер ufw, відкрийте http порти та порти 5060,5061:
sudo ufw allow proto tcp from any to any port 5060,5061
Тепер у вас встановлена Asterisk 18 і працює на сервері Linux Ubuntu 24.04|22.04|20.04.