Как установить Asterisk 16 LTS в Ubuntu 20.04 / 18.04 / 16.04 и Debian 10/9

Как установить Asterisk 16 LTS в Ubuntu 20.04 / 18.04 / 16.04 и Debian 10/9

 

Привет добрые люди !. В этой статье мы расскажем, как установить Asterisk 16 LTS в Ubuntu 20.04 / 18.04 / 16.04 и Debian 10 / Debian 9. Asterisk — это полная система PBX с открытым исходным кодом с функциями большинства коммерчески доступных систем PBX. Он поддерживает конференц-связь, прямой доступ к системе, парковку вызовов, очереди вызовов и многие другие функции.

Установите Asterisk 16 в Ubuntu 18.04 / 16.04 и Debian 10/9

Ниже приведены шаги по установке Asterisk 16 на Ubuntu 20.04 / 18.04 / 16.04 и Debian 10/9.

Шаг 1. Обновите систему

Начните установку Asterisk 16 в Ubuntu 20.04 / 18.04 / 16.04 и Debian 10/9, обновив систему, чтобы избежать проблем с зависимостями:

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

Шаг 2. Установите зависимости Asterisk 16 LTS

После того, как система будет запущена и обновлена, установите все необходимые пакеты зависимостей 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  в Ubuntu, как показано ниже:

E: Package 'subversion' has no installation candidate

Затем добавьте репозиторий юниверса и установите из него Subversion:

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

Шаг 3. Загрузите тарбол Asterisk 16 LTS

Поскольку Asterisk 16 недоступен в исходных репозиториях Debian и Ubuntu, установка будет выполнена из исходников. Сборка из исходного кода позволяет легко создавать все необходимые функции УАТС и настраивать систему VoIP.

$ sudo apt policy asterisk
asterisk:
  Installed: (none)
  Candidate: 1:13.14.1~dfsg-2+deb9u3
  Version table:
     1:13.14.1~dfsg-2+deb9u3 500
...

$ sudo apt policy asterisk
asterisk:
  Installed: (none)
  Candidate: 1:13.18.3~dfsg-1ubuntu4

Загрузите последнюю версию 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. Соберите и установите Asterisk 16 в Ubuntu 20.04 / 18.04 / 16.04 и Debian 10/9

После того как вы скачали архив Asterisk 16 и установили необходимые зависимости, вы должны быть готовы к сборке Asterisk.

Запустите сценарий настройки, чтобы удовлетворить зависимости сборки.

sudo ./configure

Успех должен иметь результат, как показано ниже:

..................
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 :

Параметры меню настройки, выполнив следующую команду:

sudo make menuselect

Используйте клавиши со стрелками для навигации и  клавишу Enter  для выбора.

Add-ons выберите chan_ooh323и, format_mp3  как показано ниже

В Core Sound Packages выберите форматы аудио пакетов, как показано ниже.

Для Music On Hold выберите следующие минимальные модули

В дополнительных звуковых пакетах выберите, как показано ниже:

Включите app_macro в  меню « Приложения»  .

Вы можете изменить другие конфигурации по своему усмотрению. Когда закончите, сохраните и выйдите, затем установите Asterisk с выбранными модулями.

Затем соберите 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               +

Когда закончите, установите 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

Наконец, установите конфиги и образцы.

sudo make samples
sudo make config
sudo ldconfig

Будет создан файл служебной единицы systemd для звездочки.

Создать пользователя 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 по умолчанию  asterisk:

$ sudo vim /etc/default/asterisk
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.

После внесения изменений перезапустите службу asterisk:

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 Sun 2020-05-03 12:18:29 UTC; 1min 19s ago
       Docs: man:systemd-sysv-generator(8)
      Tasks: 69 (limit: 2344)
     Memory: 112.0M
     CGroup: /system.slice/asterisk.service
             └─88786 /usr/sbin/asterisk -U asterisk -G asterisk

May 03 12:18:29 ubuntu20 systemd[1]: Starting LSB: Asterisk PBX...
May 03 12:18:29 ubuntu20 asterisk[88756]:  * Starting Asterisk PBX: asterisk
May 03 12:18:29 ubuntu20 asterisk[88756]:    ...done.
May 03 12:18:29 ubuntu20 systemd[1]: Started LSB: Asterisk PBX.

Проверьте, можете ли вы подключиться к Asterisk CLI:

$ sudo asterisk -rvv
Asterisk 16.10.0, Copyright (C) 1999 - 2018, Digium, Inc. and others.
Created by Mark Spencer <[email protected]>
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 proto tcp from any to any port 5060,5061

Теперь у вас установлен Asterisk 16 LTS на вашем сервере Ubuntu 20.04 / 18.04 / 16.04 и Debian 10/9.