Você está na página 1de 84

1

ASTERISK ADMINISTRATOR
Red Hat and Forks S.O.
Profª Esp. Angelo B. Delphini

2
FALSA FOLHA DE ROSTO

3
© Angelo B. Delphini
ASTERISK ADMINISTRATOR: Red Hat and Forks S.O.
- Revisão 01 em 04 de julho de 2019
- Revisão 02 em 05 de julho de 2019

ISBN papel:
ISBN pdf:

Impresso em Espanha

Editado por Bubok Publishing S.L.

“Reservados todos os direitos. Salvo exceção prevista pela lei, não é permitida a
reprodução total ou parcial desta obra, nem a sua incorporação a um sistema
informático, nem a sua transmissão em qualquer forma ou por qualquer meio
(eletrónico, mecânico, fotocopia, gravação ou outros) sem autorização prévia e por
escrito dos titulares do copyright. A infração de ditos direitos implica sanções legais e
pode constituir um delito contra a propriedade intelectual.

Dirija-se a CEDRO (Centro Espanhol de Direitos Reprográficos) se precisa de


fotocopiar o digitalizar algum fragmento desta obra (www.conlicencia.com; 91 702
19 70 / 93 272 04 47).”

4
Toda vez que um homem supera os reveses,
Torna-se mentalmente e espiritualmente mais forte.

5
Índice

6
Capítulo 1
Montando o laboratório de estudos

Vamos Fazer a instalação dos seguintes programas:


• Notepad++ (https://notepad-plus-plus.org), procure pela ver-
são mais atualizada;
• MobaXterm (http://mobaxterm.mobatek.net), procure pela ver-
são mais atualizada;
• VirtualBox (https://www.virtualbox.org), procure pela versão
mais atualizada.
Lembrando que no caso do Oracle Virtualbox devemos instalar dois
pacotes que são:
• VirtualBox 6.0.8 platform packages;

• VirtualBox 6.0.8 Oracle VM VirtualBox Extension Pack.

No ebook da capacitação Asterisk Administrador Debian and Forks


S.O., ensinamos a instalar o Debian no VirtualBox. Dessa vez, guiare-
mos vocês na instalação do CentOS em uma VM. O que você aprende-
rá nesse ebook:
• Criar uma VM no VirtualBox;
• Instalar a distro CentOS na VM criada;
• Particionar o disco rígido, montando cada diretório na devida
partição;
• Configurar a instalação do CentOS na VM;

Preparando as ferramentas

Baixe a versão mais atualizada do Oracle VirtualBox em:


• URL: “https://www.virtualbox.org/wiki/Downloads”

7
Baixe a versão mais atualizada da distro CentOS em:
• URL: “http://www.centos.org/download/”

Dúvida: No site tem o DVD ISO e o Everything ISO. Qual deles devo
baixar e instalar? A diferença entre esses dois downloads é o tamanho e
os pacotes instalados. No DVD ISO, o tamanho é menor, logo há me-
nos pacotes inclusos nele. Já o Everything ISO, o tamanho é maior e,
portanto, há mais pacotes inclusos nele. Fica a seu critério qual esco-
lher, uma vez que é possivél operar o sistema nas duas versões.

Criando a appliance (VM) no Virtualbox

Uma vez baixado e instalado o VirtualBox, agora é o momento de criar


uma VM na qual posteriormente instalaremos o CentOS. Execute o
VirtualBox na sua máquina física. Clique em ‘Novo’.

Capítulo 01 – Imagem 0101

8
Clique em ‘Modo Expert’. Dessa vez faremos alguns passos diferente,
mas o resultado é o mesmo que o do Debian.

Capítulo 01 – Imagem 0102

Em “Nome:” da Appliance. No caso, escolhi “OpenPBX-BR”. Em


“Tipo:” escolhi “Linux”. Em “Versão:” escolhi, “Red Hat (64-bit).
Em “Tamanho da memória” escolhi “2048 MB”de RAM. Em “Dis-
co rígido” “Criar um novo disco rígido virtual agora”. Então final-
mente clique sobre o botão “Criar”.

Dica do Bruxo: Por que 64-bit e não 32-bit? Segundo o site da


Red Hat (https://access.redhat.com/solutions/509373), apenas
será distribuído versões 64-bit do RHEL 7 (e seus forks). Eu
mesmo tentei instalar a ISO do CentOS 7 (CentOS-7.0-1406-

9
x86_64-Everything) na Appliance em 32-bit, mas a tela de instalação
não iniciou. Quando mudei a Appliance para 64-bit, a instalação ocor-
reu normalmente. Outro ponto importante para o laboratório é reco-
mendado 2048 MB (2 GB) de memória RAM, caso seu notebook não
disponibilize de memória o suficiente para a Appliance deixa a mesma
com 1024 MB (1 GB). Mas tenha em mente que sua Appliance ficará
lenta e isto vai fazer com que a mesma demora para executar as tarefas
durante a capacitação.

Capítulo 01 – Imagem 0103


Em “Localização do arquivo”, escolha o local onde o disco virtual da
sua Appliance estará localizado na máquina física. Para este laboratório
deixei o “padrão” (default). Em “Tamanho do arquivo(s)”, escolha o

10
tamanho do disco rígido, aqui deixei como 160 GB que é um tamanho
razoável. Em “Tipo de arquivo de disco rígido”, os principais
são VDI e VMDK. A diferença entre eles é que o VDI você só poderá
utilizar em outra máquina física se ela possuir o VirtualBox instalado,
enquanto o VMDK serve tanto para o VirtualBox como outros softwa-
res de virtualização como o VMWare. No nosso caso, escolhi VMDK.
Em “Armazenamento em disco rígido físico”, selecione “Dinami-
camente alocado”. Isto vai fazer que ocupe espaço físico do seu HD
físico conforme o HD virtual for sendo consumido pelo Sistema Ope-
racional da Appliance.

Capítulo 01 – Imagem 0104

11
Pronto! Agora é necessário realizar mais alguns ajustes na Appliance,
para isso, selecione a Appliance “OpenPBX-BR” e clique em ‘Configu-
rações’. Pode ser feito também clicando com o lado direito do mouse
sobre a Appliance seleciona (banner fica azul). O primeiro item do Po-
pUp é Configurações.

Capítulo 01 – Imagem 0105

12
Navegue até “Sistema”. Na aba “Placa-Mãe”, devemos configurar a
“Ordem de Boot”, desmarque a opção “Disquete” e deixe no topo a
opção ‘Óptico’ e logo em seguida ‘Disco Rígido’, pois utilizaremos
uma ISO para instalar o CentOS e proceder com a instalação do Siste-
ma Operacional na Appliance. Marque a opção de ‘Recursos Estendi-
dos’ para ‘Habilitar o I/O APIC’, pois configuraremos o processador
no passo seguinte. E tenha certeza que “Relógio da máquina retorna
hora UTC esteja habilitado”. Então clique no botão “OK”.

Capítulo 01 – Imagem 0106

13
Clique novamente no botão “Configurações” e volte a aba “Sistema”,
navegue até a aba ‘Processador’. Dependendo da sua máquina física,
estarão disponíveis mais quantidades de “CPU”. No meu caso, tenho
somente uma CPU disponíveis, apensar de meu notebook ter quatro
CPUs. Se você configurar mais de 1 núcleo, o VirtualBox exigirá que
você marque a opção ‘Habilitar o I/O APIC’ na aba ‘Placa-Mãe’.
Como não realizamos alterações clique no menu lateral no item “Re-
de”. Caso tenha feito alguma alteração, clique no botão “OK” e volte
para configurações da Appliance, e vá para o item Rede no menu late-
ral.

Capítulo 01 – Imagem 0107

14
Aqui em “Rede” navegue para a aba “Adaptador 1”, e caso queira mais
que um adaptador Ethernet, faça este procedimento para todos. Você
pode ter até quatro adaptadores Ethernet. Em ‘Conectado a:’, selecio-
ne “Placa em modo Bridge”. Isso fará com que a Appliance fique na
mesma rede que a sua máquina física. Estando na mesma rede, pode-
mos nos comunicar e facilitar seus testes e estudos. Clique em “Avan-
çado” em “Modo Promíscuo” selecione “Permitir Tudo”. Clique em
‘OK’.

Capítulo 01 – Imagem 0108

Pronto! Agora podemos iniciar a instalação do CentOS na Appliance


(VM)!

15
Instalando o S.O. CentOS na Appliance (VM) criada
Uma vez que a máquina foi criada, agora procederemos para a instala-
ção da distro CentOS nela. Para isso, selecione a Apliance na lista da
esquerda e clique em ‘Configurações’. Vá para a se-
ção ‘Armazenamento’ > ‘Controladora IDE’ > ‘Vazio’ e clique no
botão com o ícone de disco. No menu, escolha ‘Selecione um arquivo
de CD/DVD virtual…’ e navegue nas pastas até encontrar a ISO da
distro CentOS que você baixou. No caso, baixei o CentOS-7.0-1406-
x86_64-Everything. Depois clique no botão “OK”.

Capítulo 01 – Imagem 0109

16
Agora selecione a Appliance do OpenPBX-BR e clique em ‘Iniciar’.
Na tela de instalação, há um menu, escolha ‘Install CentOS 7’.

Capítulo 01 – Imagem 0110

17
A primeira tela da instalação pede o idioma do instalador, ou seja, du-
rante todo o processo de instalação, o idioma escolhido será exibido.
No meu caso, escolhi o English, English (United States). Clique na
sequencia em Continue.

Capítulo 01 – Imagem 0111

A próxima tela, diferente das versões anteriores, leva o usuário a um


Dashboard no qual pode-se configurar diversas opções.

18
Vamos configurar a Data e Hora (Date & Time). Clique em ‘Date &
Time’.

Capítulo 01 – Imagem 0112

19
Escolha, clicando na região próxima à sua cidade. No meu caso, é São
Paulo. Clique em ‘Done’.

Capítulo 01 – Imagem 0113

20
Agora configuraremos o teclado, clique em ‘Keyboard’ no dashboard.
Clique no ícone de ‘+’ e um pop-up abrirá. Ao começar a digitar a pala-
vra “portuguese”, o filtro será ativo. No meu caso, escolhi “Portu-
guese (Brazil)”. Clique em ‘Add’.

Capítulo 01 – Imagem 0114

21
Selecione o idioma “Portuguese (Brazil)” na lista e depois clique na
seta para cima, de forma que o modo de entrada padrão seja o idioma
escolhido (ficará como primeiro da lista).

Capítulo 01 – Imagem 0115

22
Caso queira conferir se o layout está correto, clique no ícone de tecla-
do.

Capítulo 01 – Imagem 0116

23
Uma vez configurado o teclado, clique em ‘Done’ e você retornará para
o Dashboard. Quanto ao ‘Language Support’, deixei co-
mo English (United States) mesmo, mas você pode alterar se desejar.

Capítulo 01 – Imagem 0117

24
Quanto ao ‘Software Selection’ o default é ‘Mininum Install’, mas
dependendo do objetivo de cada usuário, o template pode mudar. No
meu caso, estou instalando o Linux para estudos focado em Open
Source Telephony Systems, e a maior parte do tempo utilizarei o mo-
do console. Logo, escolhi ‘minimum install’ marcando a opções,
“Debugging Tools”, “Compatibility Libraries”, “Development
Tools”, “Security Tools”, “Smart Card Support” e “System Admi-
nistration Tools”, que adiciona compatibilidade para as bibliotecas
desenvolvidas em versões anteriores ao CentOS 7. Clique em “Done”
após configurar.

Capítulo 01 – Imagem 0118

25
Se você possui rede ativa em sua máquina, a opção de ‘Network &
Hostname’ lhe permite ativar/desativar e configurar características
básicas da rede clicando em ‘Configure’. Você também pode alterar o
“hostname” de sua máquina. No meu caso ativei a Ethernet
(enp0s3), mudei o Host neme: para openpbx-br. Após realizadas as
configurações, clique em ‘Done’.

Capítulo 01 – Imagem 0119

26
Agora particionaremos o disco. Para isso, no Dashboard, escolha a op-
ção ‘Installation Destination’. Na tela, escolha a opção ‘I will confi-
gure partitioning’ e clique em ‘Done’ para ser redirecionado a outra
tela na qual efetivamente serão criadas as partições.

Capítulo 01 – Imagem 0120

27
Na tela de criação de partições, clique no botão ‘+’ e um pop-up abrirá.
Nele há um combo-list com as partições, mas você também pode es-
crever manualmente. Após escolhida a partição e definido o seu tama-
nho, clique em ‘Add Mount Point’.

Capítulo 01 – Imagem 0121

Dica do Bruxo: Lembrando que para que fique com a partição


em GB é necessário digitar em Desired Capacity: 10 GiB. E
logo em seguida clique no botão com o nome Add mount
point.

28
Lembrando que tal como foi tabela de partição do eBook Debian and
Forks S.O., faremos aqui no CentOS também. Logo criaremos con-
forme a seguinte tabela:

Tamanho da Partição Ponto de Montagem Tip de Partição Localização

40 GiB /home Primária Início

10 GiB /var/log Lógica Início

10 GiB /tmp Lógica Início

10 GiB /var Lógica Início

10 GiB /usr Lógica Início

10 GiB /boot Primária Início

60 GiB / Primária Início

10 GiB swap Lógica Início

Tabela de Particionamento – 1

Dica do Bruxo: Eu posso deixar que o Sistema Operacional


faça a repartição automática usando o HD inteiro? Sim sem dú-
vida! Para isto escolha um HD de 160 GB para sua Appliance
(máquina virtual). Que é o total do HD recomendado na Tabe-
la de Particionamento – 1. Caso esteja usando um HD de maior capa-
cidade, deixa a ‘/’ por último e coloque o que sobrou da partição para a
raiz (‘/’) do Sistema Operacional.

29
Capítulo 01 – Imagem Tabela de Particionamento – 1

30
Ao criar uma partição, no caso, “/boot”, o instalador configura o ‘Fi-
lesystem’ como ‘xfs’, mude para ‘ext4’. Outro ponto importante é alte-
rar o ‘Device Type’ de /boot para ‘Standard Partition’ que é o mes-
mo que configurar o Tipo de Partição como Primária.

Capítulo 01 – Imagem 0122

31
Para as partições lógicas como o “/home”, “/var/log”, “/var”,
“/tmp”, “/usr”, “/” e “swap”, configure o “Device Type” como
“LVM”. Apenas lembrando que no caso do “swap”,
o Filesystem deverá ser configurado como ‘swap’, enquanto para as
demais partições, deverá ser ‘ext4’.

Capítulo 01 – Imagem 0123

32
Repita o processo para as demais partições e após configuradas todas,
clique em ‘Done’. Um pop-up de confirmação aparecerá, confira as
informações e se estiver certo de que tudo está corretamente configura-
do, clique em ‘Accept Changes’.

Capítulo 01 – Imagem 0124

33
Após configurado a instalação, clique em ‘Begin Installation’.

Capítulo 01 – Imagem 0125

34
Agora é necessário criar a senha para o root e um usuário guest. Va-
mos definir uma senha para o root. Clique em ‘Root Password’.

Capítulo 01 – Imagem 0126

35
Entre com a senha de root nos dois campos e clique em ‘Done’;

Dica do Bruxo: Iremos utilizar “toor”, caso informe que a se-


nha é pequena ou insegura, aceite para usar esta senha. Na maio-
ria das vezes vai ter que clicar duas vezes em “Done” para acei-
tar a senha fraca.

Capítulo 01 – Imagem 0127

36
Você pode optar por criar um usuário ou não. Ao clicar em ‘User Cre-
ation’, você será levado a uma tela de criação de usuário. Pode-se torná-
lo administrador e ao clicar em ‘Advanced’, você também pode confi-
gurar aspectos adicionais como, por exemplo, o UID do usuário, adici-
oná-lo a grupos etc. Após configurado, clique em ‘Done’ e aguarde o
final da instalação.

Capítulo 01 – Imagem 0128A

37
Iremos criar o usuário “suporte” e usaremos a senha “toor”. Aqui
também para aceitar a senha fraca teremos que clicar em “Done” duas
vezes.

Capítulo 01 – Imagem 0128B

38
Instalação em progresso

Capítulo 01 – Imagem 0129

39
Processo de instalação finalizado! Clique em ‘Reboot’.

Capítulo 01 – Imagem 0130

40
Pronto! O CentOS está operacional! Como realizamos a instalação bá-
sica, não há o GUI (GNOME ou KDE Desktop), apenas o CLI (Con-
sole). Ainda assim, é possível estudar, uma vez que ele está configurado
com as bibliotecas necessárias. Enjoy!

Dica do Bruxo: Deixei a versão do CentOS e do Kernel mos-


trando na figura para vocês verem que deu certo, mas como
questão de segurança, é sempre bom remover/substituir esse
banner. Se você seguiu nossa sugestão a fins acadêmico, é de
que seu login seja “suporte” e nossa password “toor”.

Capítulo 01 – Imagem 0131

41
Capítulo 2
Instalando o Notepad++

Na URL: https://notepad-plus-plus.org/, baixe a última versão, de


acordo com o seu Sistema Operacional, 32 bits ou 64 bits.

Ao executar o instalador esta é a primeira janela de interação; escolha o


idioma que quer utilizar no ambiente de trabalho do NotePad++ e click
no botão “OK”.

Capítulo 02 – Imagem 0201

42
Agora a janela de boas-vindas, click no botão “Próximo”.

Capítulo 02 – Imagem 0202

43
Agora a janela da licença, para dar sequência na instalação click no bo-
tão “Eu Concordo”.

Capítulo 02 – Imagem 0203

44
Nesta janela está sendo apresentado o local de instalação, iremos deixar
o padrão, click no botão “Próximo”.

Capítulo 02 – Imagem 0204

45
Esta janela serve para escolhermos os componentes da instalação, va-
mos aceitar o padrão, click em “Próximo”.

Capítulo 02 – Imagem 0205

46
Vamos deixar esta janela com o padrão, clique no botão “Instalar”.

Capítulo 02 – Imagem 0206

47
Tela de progresso da instalação, sem ação para o usuário.

Capítulo 02 – Imagem 0207

48
Aqui está a tela de conclusão da instalação do Notepad++.

Capítulo 02 – Imagem 0208

Pronto estamos com o Notepad++ instalado. Em momento oportuno


iremos configurar ele como editor padrão do MobaXterm, e assim, po-
der usar ele para editar arquivos de nosso servidor de softswitch pbx ip.

49
Capítulo 3
Instalando o MobaXterm
Na URL: http://mobaxterm.mobatek.net/, baixe a última versão
compatível com o seu Sistema Operacional, 32 bits ou 64 bits.

Ao baixar o aplicativo de instalação do MobaXterm proceda com a


instalação:

Capítulo 03 – Imagem 0301

50
Na tela a seguir proceda com a instalação. Para isto clique em NEXT;

Capítulo 03 – Imagem 0302

51
Nesta tela aceite a licença e clique em NEXT;

Capítulo 03 – Imagem 0303

52
Nesta tela estamos sendo questionados onde será instalado o MobaX-
term. Vamos deixar a instalação padrão. Clique em NEXT;

Capítulo 03 – Imagem 0304

53
Finalmente a tela de confirmação da instalação. Clique em INSTALL;

Capítulo 03 – Imagem 0305

54
Tela de finalização da instalação do MobaXterm. Clique em FINISH;

Capítulo 03 – Imagem 0306

Para executar o MobaXterm, procure no seu desktop o ícone igual da


imagem 0307 e de dois cliques.

Capítulo 03 – Imagem 0307

55
Quando abrir pela primeira vez o MobaXterm, o seu Sistema Operaci-
onal (Windows) vai solicitar a liberação do firewall. É importantíssimo
que você realize a liberação selecionando as duas caixas igual a imagem
0308.

Capítulo 03 – Imagem 0308

56
Finalmente seu MobaXterm está pronto para você usá-lo. Em um mo-
mento oportuno da capacitação vamos ensinar como criar uma conexão
do tipo SSH com o seu servidor softswitch pbx ip (Asterisk).

Capítulo 03 – Imagem 0309

57
Capítulo 4
Instalando as dependências para nosso softswitch pbx ip
Neste capítulo, vamos instalar em nosso Sistema Operacional (Cen-
tOS), as dependências para atender de forma eficiente o Asterisk fra-
mework da Sangoma Digium. Realize os procedimentos com calma e
cautela.

Uma lista de versões do Asterisk e suas datas de final de vida pode ser
encontrada nesta URL:

“https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions

Atenção! executar este laboratório como Administrador:

## RHEL/CentOS 7 64-Bit ##
# su -

- Instalando as facilidades do Sistema Operacional:

## RHEL/CentOS 7 64-Bit ##
# yum clean all
# yum update
# yum gropuinstall core base “Development Tools”
# yum install -y wget make vim net-tools setuptool
# yum install -y system-config-firewall*
# yum install -y system-config-keyboard
# yum install -y mlocate tcpdump

58
- Instalando os repositórios do Sistema Operacional:

## RHEL/CentOS 7 64-Bit ##
# yum -y install epel-release

- Verificando os repositórios

## RHEL/CentOS 7 64-Bit ##
# yum repolist

- É de extrema importância que o Sistema Operacional esteja comple-


tamente atualizado:
# updatedb
# yum -y update
# reboot
# yum -y install yum-priorities
# yum clean all
# updatedb
# yum -y update glibc\*
# yum -y update yum\* rpm\* python\*
# yum -y update ecryptfs-utils\*
# yum clean all
# yum update kernel\*
# yum install –y ntsysv
# updatedb
# yum -y update
# reboot

59
- Instalando Irontec Sngrep
Para instalar o SNGREP teremos que instalar o REPO da Irontec. Para
isto, vamos criar e editar o arquivo irontec.repo.
# > /etc/yum.repos.d/irontec.repo
# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-
Media.repo
CentOS-Vault.repo epel-testing.repo CentOS-
CR.repo
CentOS-fasttrack.repo CentOS-Sources.repo
epel.repo irontec.repo
# vim /etc/yum.repos.d/irontec.repo

[irontec]
name=Irontec RPMs repository
baseurl=http://packages.irontec.com/centos/$releasever
/$basearch/

# rpm --import http://packages.irontec.com/public.key


# yum install -y sngrep
# sngrep

- Desabilitando o firewall do CentOS


# systemctl disable firewalld
# systemctl stop firewalld
# systemctl status firewalld
CentOSOS-Debuginfo.repo CentOS-Media.repo
- Instando MariaDB
# yum -y install mariadb-server mariadb
# systemctl start mariadb
# mysql_secure_installation
# systemctl start mysqld
# systemctl status mysqld
# mysql_secure_installation
(substituir a senha para “MyPass@2019” no root e
“enter” para todas as opções)

60
# mysqladmin -u root -p version (para testar a nova
senha)

- Instando HTTPD e PHP


# yum install -y httpd
# yum install -y php php-pdo php-mysql php-gd php-cli
php-xml php-mbstring
# yum install -y php-mcrypt php-mhash php-ncurses
# systemctl restart httpd
# systemctl status httpd

- Instando dependências para Digium


# yum install -y dmidecode gcc-c++ ncurses-devel
libxml2-devel make openssl-devel
# yum install -y newt-devel kernel-devel libuuid-devel
gtk2-devel jansson-devel
# yum install -y binutils-devel
# updatedb
# yum update

- Instando phpMyAdmin

# yum install -y phpmyadmin


# systemctl start httpd
# systemctl status httpd

Por padrão o phpMyAdmin do CentOS (distro muito usada por ser a


versão fork, gratuita, livre e comunitária do Red Hat Enterprise Linux)
só permite acesso local, ou seja, não permite que ele seja acessado a par-
tir de outro IP. Digo o phpmyadmin instalado pelo yum (yum install
phpmyadmin). Você não pode abrir no PC da sua casa seuservi-
dor.com/phpmyadmin e sair navegando no banco de dados. Para isso

61
você deve liberar o acesso de todos, ou do seu IP pelo menos. Abra o
arquivo:
# vim /etc/httpd/conf.d/phpMyAdmin.conf

E edite ou altere, de forma a adicionar isso:


Require ip 127.0.0.1
Require ip 192.168.0.0/24

Allow from 127.0.0.1


Allow from 192.168.0.0/24

Require ip 127.0.0.1
Require ip 192.168.0.0/24

Allow from 127.0.0.1


Allow from 192.168.0.0/24

62
Reinicie o apache (systemctl restart httpd.service) e pronto!
Abra um browse e digite o IP do seu servidor adicionando o caminho
“/phpmyadmin” deverá abrir uma tela como a figura abaixo. Entre
com o usuário “root” e a senha “MyPass@2019”.

Capítulo 04 – Imagem 0401

63
– Deixar o IP fixo no servidor
Logado como root edite o arquivo:
# vim /etc/sysconfig/network-scripts/ifcfg-enp0s3

Troque o BOOTPROTO PARA static e coloque o ip e a máscara


BOOTPROTO=static
IPADDR=192.168.0.99
NETMASK=255.255.255.0

Agora edite o arquivo abaixo para adicionar o gateway:


# vim /etc/sysconfig/network

GATEWAY=192.168.0.1

E para finalizar é necessário configurar o DNS:


# vim /etc/resolv.conf

Recomendo utilizar os dns´s abaixo que são do google dns public:


nameserver 8.8.8.8
nameserver 8.8.4.4

Para finalizar de um restart


# /etc/init.d/network restart

64
Vamos agora desabilitar o SELinux, execute os seguintes comandos:
# sestatus
# setenforce 0
# vim /etc/sysconfig/selinux

Capítulo 04 – Imagem 0402

Mude SELINUX=enforcing para SELINUX=disabled, salve e saia do


arquivo com “:x”.

Caso queira, use estes comandos também:


# sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/sysconfig/selinux
# sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/selinux/config

Logo em seguida reinicie o servidor com o comando:


# reboot

Ao voltar ao Sistema Operacional, execute o comando a seguir para ter


certeza que o SELinux foi desabilitado.:
# sestatus

65
O retorno deve ser este:
# SELinux status: disabled

Instalando o NodeJS
# cd /opt/
# curl -sL https://rpm.nodesource.com/setup_8.x | bash -
# yum install -y nodejs

Instalando o IkSemel
# cd /opt/dcaa/
# wget
http://download.opensuse.org/repositories/home:/aevseev/CentOS7/x86
_64/iksemel-1.4-20.141.el7.x86_64.rpm
# wget
http://download.opensuse.org/repositories/home:/aevseev/CentOS7/x86
_64/iksemel-devel-1.4-20.141.el7.x86_64.rpm
# wget
http://download.opensuse.org/repositories/home:/aevseev/CentOS7/x86
_64/iksemel-debuginfo-1.4-20.141.el7.x86_64.rpm
# rpm -Uvh iksemel-1.4-20.141.el7.x86_64.rpm
# rpm -Uvh iksemel-devel-1.4-20.141.el7.x86_64.rpm
# rpm -Uvh iksemel-debuginfo-1.4-20.141.el7.x86_64.rpm

Instalando o SpeexDSP (Opcional, o Asterisk usa o Speex)


# cd /opt/dcaa/
# wget https://copr-
be.cloud.fedoraproject.org/results/fedpop/speexdsp/epel-7-
x86_64/00146970-speexdsp/speexdsp-1.2-0.7.rc3.el7.centos.x86_64.rpm
# wget https://copr-
be.cloud.fedoraproject.org/results/fedpop/speexdsp/epel-7-
x86_64/00146970-speexdsp/speexdsp-debuginfo-1.2-
0.7.rc3.el7.centos.x86_64.rpm
# wget https://copr-
be.cloud.fedoraproject.org/results/fedpop/speexdsp/epel-7-
x86_64/00146970-speexdsp/speexdsp-devel-1.2-
0.7.rc3.el7.centos.x86_64.rpm
# rpm -Uvh speexdsp-1.2-0.7.rc3.el7.centos.x86_64.rpm
# rpm -Uvh speexdsp-devel-1.2-0.7.rc3.el7.centos.x86_64.rpm
# rpm -Uvh speexdsp-debuginfo-1.2-0.7.rc3.el7.centos.x86_64.rpm

66
Instalando o Google Voice
# cd /opt/
# wget
https://github.com/meduketto/iksemel/archive/master.zi
p -O iksemel-master.zip
# unzip iksemel-master.zip
# rm -f iksemel-master.zip
# cd iksemel-master
# ./autogen.sh
# ./configure
# make all && make install

Pronto siga para o capítulo cinco.

67
Capítulo 5
Instalando Asterisk 13.21 LTS
Para muitas pessoas, as duas próximas seções serão opcionais, você
provavelmente poderá pular até a seção "Asterisk" abaixo.

DAHDI, no sistema que eu estou trabalhando, eu tenho um cartão da


Digium T1/E1 PRI, então eu vou pegar os módulos DAHDI e suas
ferramentas. Você pode querer instalar o DAHDI independentemente
do seu hardware para utilizar o "bridge conections" "dahdi_dummy"
o "DAHDI TIMING" para alguns aplicativos do Asterisk e principal-
mente para o IAX2. Em um ponto na vida do Asterisk o "DAHDI
Timing Interface" era o principal condutor Zaptel para conferências
com o "MeetMe( )" quando o sincronizador de hardware da Digium
estava ausente, para falar a verdade eu não tenho certeza se isto conti-
nua a ser o caso para as novas placas da Sangoma Digium.

Vamos utilizar como base de trabalho o seguinte caminho:


# cd /opt
# mkdir dcaa
# cd dcaa

Baixe e descompacte o DAHDI


# wget
https://downloads.asterisk.org/pub/telephony/dahdi-
linux-complete/dahdi-linux-complete-
2.10.0+2.10.0.tar.gz

# tar -zxvf dahdi-linux-complete-2.10.0+2.10.0.tar.gz


-C /usr/local/src/

68
Vai para a pasta recém-criada, para compilar e instalar o DAHDI.
# cd /usr/local/src/ dahdi-linux-complete-
2.10.0+2.10.0/
# make all
# make install
# make config

Se você tiver uma placa de comutação DAHDI no final do procedi-


mento vai receber uma saída como a imagem 0501:

Capítulo 05 – Imagem 0501

Volte para a pasta principal de trabalho:


# cd /opt/dcaa/

69
Libpri
Como eu mencionei acima eu tenho um cartão PRI, então eu também
tenho que instalar o modulo PRI, mas você caso não tenha pode pular
esta etapa.
# wget
http://downloads.asterisk.org/pub/telephony/libpri/lib
pri-1.6.0.tar.gz
# tar -zxvf libpri-1.6.0.tar.gz -C /usr/local/src/
# cd /usr/local/src/libpri-1.6.0/
# make all
# make install
# cd /opt/dcaa/

Asterisk
Finalmente, podemos começar a instalar o Framework Certified Aste-
risk. Vamos encontrar a última versão certificada nesta página:
“http://www.asterisk.org/downloads/asterisk/all-asterisk-versions”

No momento que estou escrevendo este capítulo a versão é "13.21-


cert4". Logo vamos usar este pacote (Lembre-se você pode ter que ajus-
tar estas instruções de forma adequada para pacotes mais atuais que
estamos usando). Faça o download do tarbal do Asterisk comprimido:
# cd /usr/local/src
# wget
http://downloads.asterisk.org/pub/telephony/certified-
asterisk/asterisk-certified-13.21-cert3.tar.gz

Descompacte ou extraia o pacote:


# tar -zxvf asterisk-certified-13.21-cert3.tar.gz -C
/usr/local/src/

70
Caso queira adicionar suporte a MP3 faça os seguintes procedimentos:

Instalar o LAME;
# cd /opt/dcaa
# wget
https://downloads.sourceforge.net/lame/lame/3.100/lame
-3.100.tar.gz
# tar -zxvf lame-3.100.tar.gz -C /usr/local/src/
# cd /usr/local/src/lame-3.100/
# ./configure
# make all
# make install
# cd cd ../asterisk/
# ./contrib/scripts/get_mp3_source.sh

A partir da versão 12 do Asterisk você pode optar por usar o módulo


SIP “chan_sip”, ou o novo projeto de SIP Open Source PJPROJECT,
para que você tenha esta opção instalaremos este módulo.

Instalar dependências para PJPROJECT e JANSOON:


# yum install -y lynx bison php-mbstring php-pear
# yum install -y php-gd php-xml libsepol-devel
# yum install -y libtiff-devel openssl-devel
# yum install -y subversion e2fsprogs-devel
# yum install -y keyutils-libs-devel krb5-devel
# yum install -y libogg libogg-devel libtool
# yum install -y libtool-ltdl-devel kernel-headers
# yum install -y kernel-devel tftp-server
# yum install -y ncurses-devel uuid-devel
# yum install -y libuuid-devel libxml2-devel
# yum install -y sendmail sendmail-cf sox
# yum install -y newt-devel libtiff-devel
# yum install -y dmidecode gmime gcc-c++
# yum install -y subversion doxygen texinfo
# yum install -y mysql-connector-odbc unixODBC-devel
# yum install -y sox-devel gnutls-devel ncurses-devel

71
# yum install -y net-snmp-devel neon-devel
# yum install -y audiofile-devel gtk2-devel
# yum install -y speex-devel gsm-devel sqlite-devel
# yum install -y perl-DateManip spandsp-devel
# yum install -y freetds-devel mpg123 mpg123-libs
# yum install -y corosynclib-devel lua-devel
# yum install -y radiusclient-ng-devel libxslt-devel
# yum install -y portaudio-devel libical-devel
# yum install -y gmime-devel bluez-libs-devel
# yum install -y jack-audio-connection-kit-devel
# yum install -y libedit-devel libsrtp-devel
# yum install -y jansson jansson-devel
# yum install -y git-core readline-devel libvorbis
# yum install -y libtool perl-core zlib-devel
# yum install -y speex speex-devel

Instalar o PJPROJECT (PJSIP)


# cd /opt/
# git clone git://github.com/asterisk/pjproject
pjproject
# cd pjproject/
# ./configure --libdir=/usr/lib64 --prefix=/usr --
enable-shared --disable-sound --disable-resample --
disable-video --disable-opencore-amr
# make dep
# make all
# make install
# ldconfig
# ldconfig
# ldconfig -p | grep pj
cd /opt/dcaa/

72
Instalar o SRTP (PJSIP)
# cd /opt/dcaa/
# wget
https://downloads.sourceforge.net/project/srtp/srtp/1.
4.4/srtp-1.4.4.tgz
# tar -zxvf srtp-1.4.4.tgz -C /usr/local/src/
# cd /usr/local/src/srtp/
# autoconf
# ./configure CFLAGS=-fPIC --prefix=/usr
# make all
# make runtest
# make install
# ldconfig
# cd /opt/dcaa/

Instalar o JANSSON (PJSIP)


# cd /opt/dcaa/
# wget http://www.digip.org/jansson/releases/jansson-
2.7.tar.gz
# tar -zvxf jansson-2.7.tar.gz -C /usr/local/src/
# cd /usr/local/src/jansson-2.7
# autoreconf -i
# ./configure --prefix=/usr/ --libdir=/usr/lib64
# make all
# make install
# ldconfig
# cd ../asterisk/

Adicionar um usuário para nosso softswitch


adduser asterisk -M -c "Asterisk User"

73
Na etapa de verificação do CORE do Asterisk, verifique se o PJPRO-
JECT foi reconhecido pelo Asterisk, caso não tenha sido reconhecido
tem que refazer todo este procedimento. Vamos neste momento certifi-
car nossa instalação, o procedimento que iremos executar vai buscar
todos os pré-requisitos disponíveis nos repositórios da Sangoma Di-
gium de acordo com seu pacote, hardware e sistema operacional.

# ./contrib/scripts/install_prereq install

Em nosso laboratório ocorreu um problema, onde o script "ins-


tall_prereq" foi abortado com mensagens de conflitos. Olhando para o
retorno do apt-get percebi esta resposta “:i386” era prefixada em al-
gumas das saídas enquanto procurava por pacotes instalados. Quando,
em seguida, os dados foram posteriormente alimentados no apt-get
ocorreu a falha. Então eu modifiquei o código para a seguinte expressão
regular:

# aptitude -F ‘%c %p’ search ^build-essential$ ^libz-


dev$ |awk ‘/^p/{print $2}’ |sed ‘s/:i386//g’

na linha 74 mudou (no meu caso foi a linha 74 no seu caso pode ser
outra linha, na incerteza procure pelo parâmetro abaixo) OBS: os pa-
rênteses foram colocado como delimitadores apenas. Não coloque eles
no script.

( | awk '/^p/{print $2}' )

74
para
( | awk '/^p/{print $2}' |sed 's/:i386//g' )

Eu acredito que o script também procure por "pjproject-devel", e no


Debian e seus Forks, pela "libpjproject-dev". Se você receber conflitos
e o script aborta, você pode preferir em não instalar tudo, mas lembre-
se uma pia de cozinha sem torneira pode lhe trazer problemas!

Recomendo que desista da instalação ou que resolva todos os conflitos


manualmente. Se optar por fazer manual segue a receita de bolo:

# yum groupinstall -y Development Tools ; para


compilar os programas.
# yum install -y libxml2-devel ;segurança
SIP/PJSIP/IAX2
# yum install –y ncurses-devel readline-devel ;
Termcap stuff
# yum install –y iksemel; Para suporte do Google Talk
# yum install –y libvorbis ; Para suporte do formato
Ogg Vorbis
# yum install –y libtool perl-core zlib-devel ; Needed
para SIP/PJSIP/IAX2
# yum install –y speex speex-devel ; para o speex
codec (DSP)
# yum install –y mpg123 mpg123-libs sox openssl wget
subversion ; para aplicativos

75
Se o "libvpb0" for instalada, você pode ser solicitado a digitar o seu
código de chamada do país. Lembrando que o nosso é "55". Neste site
tem todos os códigos telefônicos do mundo “http://www.codigos-
telefonicos.com.ar”.

Capítulo 05 – Imagem 0502

Após a instalação completa você deve receber uma mensagem indican-


do o sucesso da instalação.

76
Agora vamos instalar os códigos fontes adicionais do repositório do
Red Hat, Fedora ou CentOS. Este processo é automatizado pelo co-
mando a seguir. Isto potencialmente via instalar Broadcast Network
Sound, libresample, Jansson, libsrtp e pjproject.
# ./contrib/scripts/install_prereq install-unpackaged

Agora que os pré-requisitos foram corretamente instalados e estão co-


brindo nossa solução, vamos configurar o Asterisk. Execute o script a
seguir:
# ./configure --libdir=/usr/lib64 --with-pjproject-bundled --with-
jansson-bundled

Se tudo ocorrer bem, você deve obter em arte ASCII o logotipo do As-
terisk:

Capítulo 05 – Imagem 0503

77
Certifique-se que os módulos que você quer estão habilitados.
# make menselect

Aqui você pode fazer alterações desejáveis em seu Asterisk.

Capítulo 05 – Imagem 0504

78
Capítulo 05 – Imagem 0505

Quando você terminar todas as suas modificações vai em "Save &


Exit" para sair do menuselect/menuconfig. Quando você está insta-
lando o Asterisk você usa a make menuselect, quando você vai dar
manutenção em um servidor ativo você deve usar a make menuconfig.

Agora é hora de construir nosso SOFTSWITCH PBX IP com o Aste-


risk.
# make all

79
Você deverá receber uma mensagem de que a compilação foi completa-
da com sucesso.

Então, vamos copiar os arquivos recém compilados para os lugares cor-


retos do sistema operacional.
# make install

Se tudo ocorreu como o planejado, você vai receber uma mensagem


que a instalação foi concluída com êxito.

80
# make samples

Copie os scripts de inicialização "init" para fazer o Asterisk iniciar no


boot do Sistema Operacional.
# make config

Está feito!

Configurando o ambiente para o Asterisk

# chkconfig asterisk on
# chown asterisk. /var/run/asterisk
# chown -R asterisk. /etc/asterisk
# chown -R asterisk. /var/{lib,log,spool}/asterisk
# chown -R asterisk. /usr/lib64/asterisk
# chown -R asterisk. /var/www/

81
Configurando o Apache (HTTPD) para o Asterisk

# sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php.ini


# sed -i 's/^\(User\|Group\).*/\1 asterisk/'
/etc/httpd/conf/httpd.conf
# sed -i 's/AllowOverride None/AllowOverride All/'
/etc/httpd/conf/httpd.conf
# systemctl restart httpd.service

Verificar se tudo está correto

# ls -lua /var/run/asterisk/
total 0
drwxr-xr-x 2 asterisk asterisk 40 Jul 5 14:42 .
drwxr-xr-x 33 root root 1000 Jul 5 12:56 ..

Falta pouco!
Edite o arquivo asterisk.conf em /etc/asterisk/asterisk.conf
E faça as alterações abaixo relacionadas:
# vim /etc/asterisk/asterisk.conf

[files]
astctlpermissions => 775
astctlgroup => asterisk

Vamos habilitar File Rotation, siga os próximos passos:


# vim /etc/logrotate.d/asterisk

82
E adicione estas linhas:
/var/log/asterisk/queue_log
/var/spool/mail/asterisk
/var/log/asterisk/messages
/var/log/asterisk/event_log
/var/log/asterisk/full {
weekly
missingok
rotate 5
notifempty
sharedscripts
create 0640 asterisk asterisk
postrotate
/usr/sbin/asterisk -rx 'logger reload' > /dev/null 2> /dev/null ||
true
endscript
}

Inicialize o DAHDI
# /etc/init.d/dahdi start

Inicialize o Asterisk e conecte ao *CLI>


# rasterisk -vvvvgci

*CLI> dahdi show version


DAHDI Version: 2.6.1 Echo Canceller: HWEC

*CLI> pri show version


libpri version: 1.6.0

83
*CLI> module show like timing
Module Description Use Count
res_timing_timerfd.so Timerfd Timing Interface 1
res_timing_dahdi.so DAHDI Timing Interface 0
2 modules loaded

Editar o arquivo /etc/asterisk/modules.conf e configurar para nolo-


ad=res_timing_timerfd.so, feito isto salve o arquivo e reinicie o Aste-
risk.

# systemctl stop asterisk.service


# systemctl start asterisk.service

Execute o comando anterior novamente e somente o


res_timing_dahdi.so vai estar habilitado e funcional, mas não quer
dizer que o Use Count, necessariamente esteja 1.

Por este momento é tudo, este eBook é contínuo! Até a próxima revi-
são técnica! Sugestões envia um e-mail para:
E-mail: professor.delphini@outlook.com.

Material de uso exclusivo nas capacitações do Professor Delphini.

84