Pesquisa de site

Instale o Asterisk 18 LTS no Ubuntu 22.04|20.04|18.04


Asterisk é uma estrutura gratuita e de código aberto criada pela Sangoma para a construção de aplicações de comunicação tanto para pequenas empresas quanto para casos de uso em grande escala. Asterisk é uma solução baseada em software que transforma seu computador antigo em um servidor de comunicações que alimenta sistemas IP PBX, gateways VoIP, servidores de conferência e outras soluções personalizadas. As soluções desenvolvidas pela Asterisk capacitam call centers, operadoras e agências governamentais em todo o mundo.

Nesta postagem do blog, percorreremos a instalação do Asterisk 18 LTS no servidor Ubuntu 22.04|20.04|18.04. No momento em que este livro foi escrito, a versão mais recente do Asterisk era a 18. Observe também que esta não é uma versão de longo prazo e não deve ser usada para implantações de produção que precisam de suporte da Digium por longos anos.

Alguns pontos-chave sobre o Asterisk são:

  • Está escrito na linguagem de programação C
  • Ele foi escrito para rodar em Linux e outros tipos de Unix
  • Ele alimenta sistemas telefônicos comerciais
  • Ele conecta muitos protocolos de telefonia diferentes
  • É um kit de ferramentas para a construção de PBX IP com muitos recursos e aplicativos poderosos, gateways VoIP e sistemas de conferência
  • Tem suporte para telefones VoIP, bem como PSTN e POTS
  • Ele usa SIP , o protocolo VoIP mais comum, entre outros

Instale o Asterisk 18 LTS no Ubuntu 22.04|20.04|18.04

Você seguirá as etapas nas próximas seções para instalar o Asterisk 18 no sistema Ubuntu Linux. Como o Asterisk foi criado para ser modular, adicionar recursos extras após a instalação não é um processo difícil. Isso pode ser feito facilmente.

Etapa 1: atualize o sistema Ubuntu

Começaremos nossa instalação atualizando nosso índice de pacotes APT e atualizando todos os pacotes instalados no sistema. Recomendo que você execute esta instalação em um novo sistema para evitar problemas com a execução dos serviços.

sudo apt update
sudo apt -y upgrade

Se o processo de atualização tiver sido bem-sucedido, reinicie se isso for um requisito:

[ -f /var/run/reboot-required ] && sudo reboot -f

Etapa 2: instalar dependências de compilação

Após a reinicialização do sistema, faça login e instale todas as dependências necessárias para construir o Asterisk na máquina 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

A instalação deve levar apenas alguns minutos se você tiver uma conexão decente com a Internet.

Etapa 3: Baixe o tarball do Asterisk 18

Você não encontrará a versão mais recente do Asterisk nos repositórios oficiais do sistema. Teremos que baixar manualmente o tarball e construir o aplicativo a partir do código-fonte.

Por exemplo, no Ubuntu 20.04, a versão disponível nos repositórios APT é 16.

$ 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

Use o comando wget para baixar o arquivo compactado.

cd ~
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz

Extraia o arquivo com tar.

tar xvf asterisk-18-current.tar.gz

Execute o comando a seguir para fazer download da biblioteca do decodificador de mp3 na árvore de origem.

cd asterisk-18*/
contrib/scripts/get_mp3_source.sh

Saída esperada de execução de comando:

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.

Certifique-se de que todas as dependências sejam resolvidas:

sudo contrib/scripts/install_prereq install

Você deve receber uma mensagem de sucesso no final:

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

Etapa 4: Construa e instale o Asterisk 18 no Ubuntu 22.04|20.04|18.04

Após a instalação das dependências você deverá estar pronto para construir o Asterisk 18 a partir da fonte que baixamos.

Execute o script configure para satisfazer as dependências de compilação.

./configure

Um sucesso deve ter uma saída como abaixo:

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

Opções do menu de configuração executando o seguinte comando:

make menuselect

Use as teclas de seta para navegar e a tecla Enter para selecionar.

Selecione Complementos para ativar.

Habilite os módulos de som Core que você deseja usar.

Você também pode adicionar pacotes MOH adicionais que deseja usar.

Faça o mesmo para pacotes de som extras.

Você também pode percorrer os outros menus e selecionar as opções que achar adequadas ao seu caso de uso.

Quando terminar, execute o seguinte comando para construir o Asterisk 18 no Ubuntu 22.04|20.04|18.04.

make

Aqui está minha saída de compilação bem-sucedida:

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

Este é o comando que você executará para instalar o Asterisk 18 no Ubuntu:

sudo make install

Exemplo de saída:

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

Opcionalmente, você pode instalar a documentação:

sudo make progdocs

Instale configurações e amostras.

sudo make samples
sudo make config
sudo ldconfig

Para um exemplo de PBX básico:

sudo make basic-pbx

Etapa 5: iniciar o serviço Asterisk no Ubuntu 22.04|20.04|18.04

Crie um usuário e grupo separados para executar serviços asterisk e atribua as permissões corretas:

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

Defina o usuário padrão do Asterisk como asterisco:

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

Reinicie o serviço asterisk após fazer as alterações:

sudo systemctl restart asterisk

Ative o serviço Asterisk para iniciar na inicialização do sistema:

sudo systemctl enable asterisk

Verifique o status do serviço para ver se ele está em execução.

$ systemctl status asterisk
 asterisk.service - LSB: Asterisk PBX
     Loaded: loaded (/etc/init.d/asterisk; generated)
     Active: active (running) since Fri 2020-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

Verifique se você pode se conectar à interface de linha de comando do Asterisk.

$ sudo asterisk -rvv
 Asterisk 18.10.0, Copyright (C) 1999 - 2021, Sangoma Technologies Corporation and others.
 Created by Mark Spencer [email 
 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

Se você tiver um firewall ufw ativo, abra as portas http e as portas 5060,5061:

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

Agora você tem o Asterisk 18 instalado e funcionando no servidor Linux Ubuntu 22.04|20.04|18.04.

Mais guias sobre VoIP.

  • Proteja Asterisk e FreePBX contra fraudes de VoIP e ataques de força bruta
  • Como instalar o FreeSwitch PBX no Ubuntu

Artigos relacionados: