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.