Como instalar o Asterisk PBX 18 LTS no CentOS 7
Olá pessoal, faremos a instalação do Asterisk 18 LTS neste guia. Este será um tutorial completo e fácil de seguir. Para o lançamento recente do Asterisk, consulte Como instalar o Asterisk 16 PBX no CentOS 7. Então, vamos começar definindo o que é um PBX e um Asterisk?
O que é um PABX?
Asterisk, antes de mais nada, é uma bolsa de filiais privadas. Um PBX é um equipamento que lida com comutação telefônica de propriedade de uma empresa privada, e não de uma companhia telefônica. Um PBX pode ser considerado uma central telefônica privada, conectando-se a um ou mais telefones de um lado e geralmente conectando-se a uma ou mais linhas telefônicas do outro.
O que é Asterisco?
Asterisk é um PABX completo. Ele implementa todos os principais recursos da maioria dos PBXs disponíveis comercialmente. Ele também implementa, gratuitamente, recursos que muitas vezes custam muito em uma instalação comercial: chamadas em conferência, acesso direto ao sistema interno, estacionamento de chamadas e filas de chamadas, apenas para citar alguns.
Os recursos básicos fornecidos pelo Asterisk são:
- Identificador de chamadas
- Lista negra (bloquear chamadores por identificador de chamadas)
- Chamada em espera
- Transferência de chamadas
- Conferência por chamada
- Centro de Conferências/Ponte
- Não perturbe
- Encaminhamento de chamadas
- Estacionamento de chamadas
- Relatório de detalhes de chamadas
- Discar por diretório de nome
- Resposta de voz interativa (atendente automático)
- Roteamento de chamada com condição de tempo
- Enfileiramento de chamadas
- Ligar de volta
- Segure músicas/gravações (MP3)
- Integração de aplicativos
- Relatório de chamadas estendido
- DISA (acesso direto ao sistema interno)
- Ditado
- Me siga
- Paginação/Intercomunicação
- Grupos de toque
- Gerenciador de chamadas gráficas
- Controles diurnos/noturnos
Entre outros. Então vamos começar.
Passo 1 – Definir nome de host do servidor
Você pode definir o nome do host e o fuso horário antes de fazer qualquer instalação. Use os comandos abaixo.
sudo timedatectl list-timezones
sudo timedatectl set-timezone Africa/Nairobi
Para definir o tipo de nome de host:
sudo hostnamectl set-hostname pbx-01.example.com
Caso seu servidor CentOS tenha mapas de teclado incorretos. Você pode consertá-los.
$ localectl
System Locale: LANG=en_US.UTF-8
VC Keymap: us
X11 Layout: us
$ localectl list-keymaps
Para definir o mapa de teclado para nós:
sudo localectl set-keymap us
Você pode definir o idioma do sistema para inglês digitando os seguintes comandos em seu terminal como root.
sudo localectl set-locale LANG=en_US.UTF-8
Passo 2 – Atualizar o sistema e instalar dependências
sudo yum -y update
sudo yum -y install "@Development Tools"
Reinicialize após atualização do sistema
sudo reboot
Instale outras dependências necessárias para construir e executar o Asterisk 18 LTS no CentOS 7:
sudo yum -y install lynx mariadb-server mariadb php php-mysql \
php-mbstring tftp-server httpd ncurses-devel sendmail sendmail-cf \
sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel \
subversion kernel-devel git php-process crontabs cronie cronie-anacron \
wget vim php-xml uuid-devel sqlite-devel net-tools gnutls-devel php-pear \
autoconf bzip2 libedit-devel
Instale outras dependências ausentes, não na etapa anterior.
sudo yum -y install gcc gcc-c++ php-xml php php-mysql php-pear php-mbstring mariadb-devel mariadb-server mariadb sqlite-devel lynx bison psmisc tftp-server httpd make ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel uuid-devel libtool libuuid-devel subversion kernel-devel kernel-devel-$(uname -r) git subversion kernel-devel php-process crontabs cronie cronie-anacron wget vim
Configure e configure o banco de dados mariadb, definindo também a senha.
systemctl start mariadb
systemctl enable mariadb
Agora defina a senha executando o comando abaixo.
sudo mysql_secure_installation
Basta pressionar enter se você ainda não tiver uma senha definida para mysql. Concorde em remover o banco de dados de teste e proibir o login remoto.
Etapa 3 – Instale a biblioteca Jasson C
Instalando Jansson que é uma biblioteca C para codificação, decodificação e manipulação de dados JSON. Vamos baixar, descompactar e compilar usando o comando abaixo.
sudo su -
cd /usr/src
mkdir asterisk-18 && cd asterisk-18
git clone https://github.com/akheron/jansson.git
cd jansson
autoreconf -i
./configure --prefix=/usr/
make && make install
Instale os requisitos do Legacy Pear
pear install Console_Getopt
Passo 4 – Instale o Asterisk 18 LTS no CentOS 7
Navegue até o diretório /usr/src/asterisk-18
e instale o download do Asterisk 18 LTS no CentOS 7
cd /usr/src/asterisk-18
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz
git clone https://github.com/pjsip/pjproject.git
Compile e instale o DAHDI se estiver se conectando ao PSTN. Isso é OPCIONAL, instale se você se conectar ao PSTN.
cd /usr/src/asterisk-18
tar xvfz dahdi-linux-complete-current.tar.gz
tar xvfz libpri-current.tar.gz
rm -f dahdi-linux-complete-current.tar.gz libpri-current.tar.gz
cd dahdi-linux-complete-*/
make all
make install
make config
cd ..
cd libpri-*/
make
make install
Compilar e instalar o pjproject
cd /usr/src/asterisk-18
cd pjproject
CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr \
--enable-shared --disable-sound \
--disable-resample --disable-video \
--disable-opencore-amr --libdir=/usr/lib64
make dep
make all
make install
Compile e instale o Asterisk
cd /usr/src/asterisk-18
tar xvfz asterisk-18-current.tar.gz
cd asterisk-*
./configure --libdir=/usr/lib64
Opções do menu de configuração executando o seguinte comando
make menuselect
Em complementos, selecione chan_ooh323 e format_mp3 conforme mostrado abaixo
Em Core Sound Packages, selecione os formatos de pacotes de áudio como abaixo
Em Música em espera, selecione a opção dos seguintes módulos, conforme mostrado na imagem abaixo
Em Pacotes de Som Extra selecione conforme mostrado abaixo:
Agora execute o seguinte comando para baixar a biblioteca do decodificador mp3 na árvore de origem.
cd /usr/src/asterisk-18/asterisk-*
contrib/scripts/get_mp3_source.sh
Faça a instalação dos módulos selecionados
cd /usr/src/asterisk-18/asterisk-*/
make
make install
make samples
make config
Etapa 5 – Configurar Asterisk 18 LTS no CentOS 7
Crie usuário e grupo separados para executar serviços asterisk
useradd -m asterisk
chown asterisk.asterisk /var/run/asterisk
chown -R asterisk.asterisk /etc/asterisk
chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk
chown -R asterisk.asterisk /usr/lib64/asterisk
Faça o systemctl iniciar o asterisco copiando o script init para o diretório init.d.
cd /usr/src/asterisk-18/asterisk-*
cp contrib/init.d/rc.redhat.asterisk /etc/init.d/asterisk
chmod 755 /etc/init.d/asterisk
Localize o asterisco por
$ which asterisk
Em seguida, abra o arquivo /etc/init.d/asterisk por
sudo vim /etc/init.d/asterisk
Substitua AST_SBIN= pela localização do binário asterisco, no meu caso é /sbin/. Veja a imagem abaixo.
Desabilitar SELinux
sed -i 's/(^SELINUX=).*/SELINUX=disabled/' /etc/selinux/config
sestatus
Configurar banco de dados Asterisk
[root@asterisk-cloud ~]# mysql -u root -p
create user 'asterisk'@'localhost' identified by 'password';
create database cdrdb;
create database asterisk;
GRANT ALL PRIVILEGES ON asterisk.* TO asterisk@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON cdrdb.* TO asterisk@localhost IDENTIFIED BY 'password';
flush privileges;
exit
Torne todas as portas PBX do asterisco acessíveis adicionando as seguintes regras
firewall-cmd --zone=public --add-port=5060/udp --permanent
firewall-cmd --zone=public --add-port=5060/tcp --permanent
firewall-cmd --zone=public --add-port=5061/udp --permanent
firewall-cmd --zone=public --add-port=5061/tcp --permanent
firewall-cmd --zone=public --add-port=4569/udp --permanent
firewall-cmd --zone=public --add-port=5038/tcp --permanent
firewall-cmd --zone=public --add-port=10000-20000/udp --permanent
Confirmar alterações
firewall-cmd --reload
Confirme se as regras foram adicionadas.
[root@asterisk-cloud ~]# firewall-cmd --zone=public --list-all
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports: 5061/tcp 4569/udp 5060/tcp 10000-20000/udp 5061/udp 5060/udp 5038/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
Reinicie o servidor asterisk
systemctl restart asterisk
Verifique se está em execução
sudo systemctl status asterisk
Leitura adicional: Como proteger o Asterisk e o FreePBX contra fraudes de VoIP e ataques de força bruta