sexta-feira, 19 de junho de 2020

Como instalar o Asterisk® SCF™ 16 no RHEL8/CentOS 8



O Asterisk® SCF™ é uma implementação de software baseada em CLI de um PBX (Private Branch Exchange). Em conjunto com interfaces de hardware de telefonia e aplicativos de rede adequados, o Asterisk® SCF™ é usado para estabelecer e controlar chamadas telefônicas entre terminais de telecomunicações, como aparelhos telefônicos habituais, destinos na rede telefônica pública comutada (PSTN) e dispositivos ou serviços de voz sobre Internet Protocol, dentro das Redes de Computadores, seja, LAN, WAN ou a Mundial (W3C- WWW/VoIP/ToIP/GoIP/TDMoIP). Seu nome deriva do símbolo asterisco (*) de um sinal usado na discagem por tom múltiplo (DTMF). Neste guia detalhado, você aprenderá como instalar o Asterisk® SCF™ 16 no RHEL 8/CentOS 8.

Clique aqui para ver os recursos disponíveis no Asterisk® SCF™.

Etapa 1: Instalar o Repositório EPEL 8

Antes de continuar neste artigo, atualize seu sistema:
# dnf update -y

Execute o comando abaixo para instalar o EPEL Release 8
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y

Etapa 2: Desativar o SELinux

Abra o arquivo /etc/SELinux/config usando o comando abaixo e modifique uma linha de SELINUX=enforcing para SELINUX=disabled
# vim /etc/selinux/config
Em seguida, salve as alterações e saia (Tecla ESC + : + x = Esc :x).


Agora reinicie sua máquina
# reboot

Etapa 3: Instalar Dependências

Instale as ferramentas de desenvolvimento de software e outras dependências necessárias para executar o Asterisk® SCF™ usando os seguintes comandos.
# dnf groupinstall "Development Tools" -y
# dnf install git wget net-tools sqlite-devel psmisc ncurses-devel libtermcap-devel newt-devel libxml2-devel libtiff-devel gtk2-devel libtool libuuid-devel subversion kernel-devel kernel-devel-$(uname -r) crontabs cronie-anacron -y

Etapa 4: Compilar e Instalar JANSSON

Jansson é uma biblioteca C, é usada para codificar/decodificar e manipular dados JSON. execute os comandos abaixo para instalá-lo.
# cd /usr/src/
# git clone https://github.com/akheron/jansson.git
# cd jansson
# autoreconf -i
# ./configure --prefix=/usr/
# make && make install

Etapa 5: Compilar e Instalar PJSIP

O PJSIP é uma biblioteca de comunicação multimídia gratuita e de código aberto, escrita na linguagem C, implementando protocolos baseados em padrão, como SIP, SDP, RTP, STUN, TURN e ICE. Ele combina o protocolo de sinalização (SIP) com a rica estrutura multimídia e a funcionalidade de passagem NAT na API de alto nível que é portátil e adequada para praticamente qualquer tipo de sistema, desde desktops, sistemas embarcados a aparelhos móveis.

Execute o seguinte comando para instalar o PJSIP
# cd /usr/src/
# git clone https://github.com/pjsip/pjproject.git
# cd pjproject
# ./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr
# make dep
# make
# make install
# ldconfig

Etapa 6: Instalar e Configurar o Asterisk®  SCF™

Todas as dependências estão instaladas e o 
Asterisk® SCF™ está pronto para instalação.
# cd /usr/src/
# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
# tar xfz asterisk-16-current.tar.gz
# rm -f asterisk-16-current.tar.gz
# cd asterisk-16*/

Instale os pacotes libedit usando os comandos abaixo:
# dnf install https://rpmfind.net/linux/fedora/linux/releases/29/Everything/x86_64/os/Packages/l/libedit-3.1-24.20170329cvs.fc29.x86_64.rpm -y
# dnf install https://rpmfind.net/linux/fedora/linux/releases/29/Everything/x86_64/os/Packages/l/libedit-devel-3.1-24.20170329cvs.fc29.x86_64.rpm -y

Configuração do Asterisk® SCF™
# contrib/scripts/Install_prereq Install
# contrib/scripts/Install_prereq Install-unpackaged
# ./configure --libdir=/usr/lib64

Etapa 7: Configurar as opções do Asterisk®  SCF™ Module e Build Option Selection

Defina as opções de menu do Asterisk® SCF™ usando o seguinte comando, você também pode selecionar as opções desejadas.

Aqui você usará as teclas de seta (Cima, Baixo, Direita e Esquerda) para navegar e a tecla Enter para selecionar a opção desejada. A opção selecionada será marcada com o símbolo *.

# make menuselect

1 => Selecione “app_macro” na seção Aplicativos (Applications).


2 => Em Complementos (Add-ons), selecione "chan_ooh323" e "format_mp3"


3 => Em Pacotes principais de som (Core Sound Packages), selecione os seguintes formatos de áudio.
  • CORE-SOUNDS-EN-ULAW
  • CORE-SOUNDS-EN-ALAW
  • CORE-SOUNDS-EN-GSM
  • CORE-SOUNDS-EN-G729
  • CORE-SOUNDS-EN-G722
  • CORE-SOUNDS-EN-SLN16
  • CORE-SOUNDS-EN-SIREN7
  • CORE -SOUNDS-EN-SIREN14

4 => Para Música em espera (Music On Hold), selecione os seguintes módulos mínimos:
  • MOH-OPSOUND-WAV
  • MOH-OPSOUND-ULAW
  • MOH-OPSOUND-ALAW
  • MOH-OPSOUND-GSM

5 = > Em Pacotes de Som Extra (Extra Sound Packages), selecione como mostrado abaixo
  • EXTRA-SOUNDS-EN-WAV
  • EXTRA-SOUNDS-EN-ULAW
  • EXTRA-SOUNDS-EN-ALAW
  • EXTRA-SOUNDS-EN-GSM

Em seguida, salve e saia.

Etapa 8: Criar (Build) e Instalar (Install) o Asterisk®  SCF™

Baixe a biblioteca de decodificadores de mp3 na árvore de origem e construa (Build) o Asterisk® SCF™.
# contrib/scripts/get_mp3_source.sh
# make
# make install
# make samples
# make config
# ldconfig

Etapa 9: Criar usuário "asterisk" e iniciar o Asterisk®  SCF™

Crie um grupo e usuário para os serviços do Asterisk® SCF™ e atribua permissões apropriadas usando os seguintes comandos:
# groupadd asterisk
# useradd -r -d /var/lib/asterisk -g asterisk asterisk
# usermod -aG audio,dialout asterisk
# chown -R asterisk.asterisk /etc/asterisk /var/{lib,log,spool}/asterisk /usr/lib64/asterisk

Defina o usuário padrão do 
Asterisk® SCF™:
edite o arquivo /etc/sysconfig/asterisk usando o comando abaixo:
# vim /etc/sysconfig/asterisk
e adicione as linhas abaixo neste arquivo.
AST_USER="asterisk"
AST_GROUP="asterisk"
Em seguida, edite o arquivo /etc/asterisk/asterisk.conf usando o comando abaixo.
# vim /etc/asterisk/asterisk.conf
e adicione as linhas abaixo neste arquivo.
runuser = asterisk ; The user to run as.
rungroup = asterisk ; The group to run as.

Etapa 10: Configurar os serviços do Asterisk®  SCF™

Agora reinicie o serviço 
Asterisk® SCF™ e ative-o na inicialização
# systemctl restart asterisk
# systemctl enable asterisk
# systemctl status asterisk

Verifique se você pode se conectar ao Asterisk® SCF™ *CLI> executando o comando abaixo:
# rasterisk -vvvvgci

Se você entrou na tela acima, parabéns! você tem acesso ao Asterisk® SCF™ no RHEL 8/CentOS 8.

Deste ponto em diante, você está pronto para avançar em seus estudos com o livro Asterisk Guia Definitivo - Telefonia de código aberto para empresas. Um livro excelente para você que está entrando neste mundo de Telefonia IP ou que já está nele! 

OBS: Este artigo cobre as paginas de 53 a 63 do capitulo 3 - Instalando o Asterisk, logo não execute nada destas paginas caso tenha seguido este artigo. Qualquer dúvida venha fazer parte da comunidade Asterisk Brasil Community no Telegram. Aguardamos você!