Pesquisa de site

Como instalar o Asterisk no CentOS/RHEL 8/7


Asterisk é uma estrutura de código aberto usada para construir aplicativos de comunicação. Você pode usá-lo para transformar um computador ou servidor local em um servidor de comunicação. Ele é usado para alimentar sistemas IP PBX, gateways VoIP, servidores de conferência e outras soluções. É usado por todos os tipos de organizações em todo o mundo e, finalmente, mas não por último, é gratuito e de código aberto.

Neste tutorial, mostraremos como instalar o Asterisk no CentOS 8/7 (as instruções também funcionam no RHEL 8/7) , mas antes de começarmos, precisaremos fazer alguns preparativos para que o Asterisk possa funcionar sem problemas após a instalação.

Etapa 1: desative o SELinux no CentOS

Para fazer isso, faça SSH em seu sistema e usando seu editor de texto de linha de comando favorito, abra /etc/selinux/config e desative SELINUX.

vim /etc/selinux/config

A linha SELinux deve ficar assim:

SELINUX=disabled

Agora reinicie o seu sistema. Assim que voltar, o SSH novamente para esse sistema.

Etapa 2: instalar os pacotes necessários

O Asterisk possui alguns requisitos que precisam ser instalados. Você pode usar o seguinte comando yum para instalar os pacotes necessários conforme mostrado.

yum install -y epel-release dmidecode gcc-c++ ncurses-devel libxml2-devel make wget openssl-devel newt-devel kernel-devel sqlite-devel libuuid-devel gtk2-devel jansson-devel binutils-devel libedit libedit-devel

Antes de continuarmos, crie um novo usuário com privilégios sudo chamado “asterisk“, usaremos esse usuário para configurar o asterisk no sistema.

adduser asterisk -c "Asterisk User"
passwd asterisk 
usermod -aG wheel asterisk
su asterisk

Em seguida, instale PJSIP, é uma biblioteca de comunicação multimídia de código aberto gratuita que implementa protocolos baseados em padrões como SIP, SDP, RTP, STUN, TURN e ICE. É o driver de canal Asterisk SIP que deve melhorar a clareza das chamadas.

Para obter a versão mais recente, primeiro vamos criar um diretório temporário onde construiremos o pacote a partir do código-fonte.

mkdir ~/build && cd ~/build

Agora vá para a página de download do PJSIP e pegue o pacote ou use o seguinte comando wget para baixar o pacote diretamente no terminal.

Observe que no momento da redação deste artigo a versão mais recente é 2.8, isso pode mudar no futuro, portanto, certifique-se de usar a versão mais recente:

wget https://www.pjsip.org/release/2.9/pjproject-2.9.tar.bz2

Assim que o download for concluído, extraia o arquivo e mude para esse diretório.

tar xvjf pjproject-2.9.tar.bz2
cd pjproject-2.9

O próximo passo é preparar o pacote a ser compilado. Você pode usar o seguinte comando:

./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr

Você não deverá ver nenhum erro ou aviso. Certifique-se de que todas as dependências sejam atendidas:

make dep

E agora podemos concluir a instalação e vincular bibliotecas com:

make && sudo make install && sudo ldconfig

Por fim, certifique-se de que todas as bibliotecas estejam instaladas e presentes:

ldconfig -p | grep pj

Você deve obter a seguinte saída:

libpjsua2.so.2 (libc6,x86-64) => /lib64/libpjsua2.so.2
	libpjsua2.so (libc6,x86-64) => /lib64/libpjsua2.so
	libpjsua.so.2 (libc6,x86-64) => /lib64/libpjsua.so.2
	libpjsua.so (libc6,x86-64) => /lib64/libpjsua.so
	libpjsip.so.2 (libc6,x86-64) => /lib64/libpjsip.so.2
	libpjsip.so (libc6,x86-64) => /lib64/libpjsip.so
	libpjsip-ua.so.2 (libc6,x86-64) => /lib64/libpjsip-ua.so.2
	libpjsip-ua.so (libc6,x86-64) => /lib64/libpjsip-ua.so
	libpjsip-simple.so.2 (libc6,x86-64) => /lib64/libpjsip-simple.so.2
	libpjsip-simple.so (libc6,x86-64) => /lib64/libpjsip-simple.so
	libpjnath.so.2 (libc6,x86-64) => /lib64/libpjnath.so.2
	libpjnath.so (libc6,x86-64) => /lib64/libpjnath.so
	libpjmedia.so.2 (libc6,x86-64) => /lib64/libpjmedia.so.2
	libpjmedia.so (libc6,x86-64) => /lib64/libpjmedia.so
	libpjmedia-videodev.so.2 (libc6,x86-64) => /lib64/libpjmedia-videodev.so.2
	libpjmedia-videodev.so (libc6,x86-64) => /lib64/libpjmedia-videodev.so
	libpjmedia-codec.so.2 (libc6,x86-64) => /lib64/libpjmedia-codec.so.2
	libpjmedia-codec.so (libc6,x86-64) => /lib64/libpjmedia-codec.so
	libpjmedia-audiodev.so.2 (libc6,x86-64) => /lib64/libpjmedia-audiodev.so.2
	libpjmedia-audiodev.so (libc6,x86-64) => /lib64/libpjmedia-audiodev.so
	libpjlib-util.so.2 (libc6,x86-64) => /lib64/libpjlib-util.so.2
	libpjlib-util.so (libc6,x86-64) => /lib64/libpjlib-util.so
	libpj.so.2 (libc6,x86-64) => /lib64/libpj.so.2
	libpj.so (libc6,x86-64) => /lib64/libpj.so

Etapa 3: Instale o Asterisk no CentOS 8/7

Agora estamos prontos para iniciar a instalação do Asterisk. Navegue de volta para nosso diretório ~/build:

cd ~/build

Vá para a página de download do Asterisk e pegue a versão mais recente ou você pode usar o seguinte comando wget para baixar o arquivo no terminal.

wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz

No momento em que este tutorial foi escrito, a versão mais recente do Asterisk era 16. Certifique-se de baixar a versão mais recente do Asterisk ao seguir as etapas.

Agora extraia o arquivo e navegue até o diretório recém-criado:

tar -zxvf asterisk-16-current.tar.gz
cd asterisk-16.5.1

Este é o momento de mencionar que se você deseja habilitar o suporte mp3 para reproduzir música enquanto o cliente está em espera, você precisará instalar mais algumas dependências. Estas etapas são opcionais:

sudo yum install svn
sudo ./contrib/scripts/get_mp3_source.sh

Após a segunda etapa, você deverá obter resultados semelhantes a estes:

A    addons/mp3
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
A    addons/mp3/MPGLIB_README
A    addons/mp3/common.c
A    addons/mp3/huffman.h
A    addons/mp3/tabinit.c
Exported revision 202.

Comece executando o script configure para preparar o pacote para compilação:

sudo contrib/scripts/install_prereq install
./configure --libdir=/usr/lib64 --with-jansson-bundled

Se você tiver alguma dependência faltando para instalá-la. No meu caso, recebi o seguinte erro:

configure: error: patch is required to configure bundled pjproject

Para contornar isso, basta executar:

yum install patch 

E execute novamente o script de configuração. Se tudo correu perfeitamente sem erros, você verá a imagem a seguir.

Agora, vamos iniciar o processo de construção:

make menuselect

Após alguns segundos, você deverá obter uma lista de recursos para ativar:

Se você tentar usar o recurso de música em espera, precisará ativar o recurso “format_mp3” na seção “Complementos”. Salve sua lista e execute o seguinte comando:

make && sudo make install

Para instalar os arquivos de configuração de amostra, use o comando abaixo:

sudo make samples

Para iniciar o Asterisk na inicialização, use:

sudo make config

Atualize a propriedade dos seguintes diretórios e arquivos:

sudo chown asterisk. /var/run/asterisk
sudo chown asterisk. -R /etc/asterisk
sudo chown asterisk. -R /var/{lib,log,spool}/asterisk

Finalmente, vamos testar nossa instalação com:

sudo service asterisk start
sudo asterisk -rvv

Você deverá ver uma saída semelhante a esta:

Asterisk 16.5.1, Copyright (C) 1999 - 2018, Digium, Inc. 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.
=========================================================================
Connected to Asterisk 16.5.1 currently running on centos8-tecmint (pid = 9020)
centos8-tecmint*CLI>

Se você quiser ver uma lista de comandos disponíveis, digite:

asterisk*CLI> core show help

Para sair do prompt do Asterisk, basta digitar:

asterisk*CLI> exit

O Asterisk ainda estará rodando em segundo plano.

Conclusão

Agora você tem um servidor Asterisk em execução e pode começar a conectar telefones e ramais e ajustar sua configuração de acordo com suas necessidades. Para mais detalhes sobre como conseguir isso, é recomendado usar a página Wiki do Asterisk. Se você tiver alguma dúvida ou comentário, informe-nos na seção de comentários abaixo.