Як встановити Asterisk 16 LTS на Ubuntu?

Asterisk — вільне рішення для IP-телефонії з відкритим кодом. Він дозволяє налаштувати голосову пошту, утримання з музикою, чергу викликів та багато іншого. Розповідаємо, як встановити LTS-версію Asterisk 16 на Ubuntu 22.04 | 20.04 | 18.04.

Крок 1: Оновлення системи

Установку рекомендуємо розпочати з оновлення системи. Це допоможе уникнути проблем із залежностями: 

sudo apt update && sudo apt -y upgrade
sudo reboot

Крок 2: Встановіть залежності Asterisk

Після оновлення системи встановлюємо всі потрібні пакети сервісу:

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

Вам можете видати помилку для пакета subversion. Виглядає це так:

E: Package 'subversion' has no installation candidate

Це не страшно. В такому випадку потрібно додати репозиторій universe та встановити subversion звідти:

sudo add-apt-repository universe
sudo apt update && sudo apt -y install subversion

Крок 3: Завантажте тарбол Asterisk 16 LTS

Asterisk 16 недоступний в основних репозиторіях Ubuntu, тому встановлювати його будемо із вихідного коду. Це дозволяє додати всі необхідні функції PBX і налаштувати VoIP-систему під себе.

Завантажуємо останню версію Asterisk 16 LTS у свою систему:

cd /usr/src/
sudo curl -O http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz

Тепер вилучаємо файл:

sudo tar xvf asterisk-16-current.tar.gz
cd asterisk-16*/

І виконуємо наступну команду, щоб завантажити бібліотеку декодера mp3:

$ sudo contrib/scripts/get_mp3_source.sh
A addons/mp3/decode_ntom.c
A addons/mp3/ interface.c
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
Exported revision 202.

Перевіряємо чи усі залежності вирішені:

sudo contrib/scripts/install_prereq install

Якщо все добре, отримаємо таке повідомлення:

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

Крок 4: Зберіть і встановіть Аsterisk 

Після того як ви завантажили тарбол та встановили потрібні залежності, переходимо до збирання.

Запускаємо скрипт configure:

sudo ./configure

Налаштовуємо параметри меню за допомогою команди:

sudo make menuselect

У надбудовах вибираємо chan_ooh323 і format_mp3:

chan_ooh323 і format_mp3

Потім обираємо формат аудіопакетів в Core Sound Packages:

формат аудіопакетів в Core Sound Packages

Для Music On Hold вибираємо такі мінімальні модулі:

Music On Hold

Вибираємо Extra Sound Packages:

Extra Sound Packages

Тепер вмикаємо app_macro в меню “Applications”:

вмикаємо app_macro в меню Applications

Ви можете змінити всі конфігурації, які вважаєте за потрібні. Як тільки ви це зробите, натисніть “Save & Exit”. Тепер можна встановити Asterisk із вибраними модулями.

Збираємо сервіс за допомогою команди sudo make. Ось що ми отримаємо:

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               +

Нам залишилось встановити сервіс sudo make install

Далі за бажанням можна встановити документацію:

sudo make progdocs

І останнє — встановлюємо конфігурації та шаблони:

sudo make samples
sudo make config
sudo ldconfig

Крок 5: Створити користувача Asterisk

Щоб запустити сервіси 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

Встановлюємо користувача за замовчуванням. У нашому випадку це asterisk:

$ sudo vim /etc/default/asterisk
AST_USER="asterisk"
AST_GROUP="asterisk"

$ sudo vim /etc/asterisk/asterisk.conf
runuser = asterisk ; User to run as.
rungroup = asterisk; The group to run as.

Перезавантажуємо Asterisk:

sudo systemctl restart asterisk

Наступна команда запускатиме сервіс при завантаженні системи:

sudo systemctl enable asterisk

Тепер все має працювати без помилок. Перевіримо, чи можете ви під’єднатися до командного рядка сервісу:

$ sudo asterisk -rvv
Asterisk 16.10.0, Copyright (C) 1999 - 2018, Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
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 16.10.0 currently running on ubuntu20 (pid = 88786)
ubuntu-01*CLI> core  show channels
Channel              Location             State   Application(Data)             
0 active channels
0 active calls
0 calls processed
ubuntu-01*CLI> exit
Asterisk cleanly ending (0).
Executing last minute cleanups

Якщо у вас є активний UFW фаєрвол, відкрийте http-порти та порти 5060, 5061:

sudo ufw allow tcp from any to any port 5060,5061

Готово! Ви встановили Asterisk 16 LTS на сервер Ubuntu. 

Тепер ви можете перейти до налаштування функцій сервісу під себе. А щоб знати, як всі ці функції працюють і навчитися ними користуватися, ми підготували курс Адміністрування IP-телефонії Asterisk. Групи стартують часто, тому не гайте часу!

Залишити відповідь

Дякуємо, що поділились