Instalando Asterisk 13

O Asterisk é um poderoso software de PBX (central telefônica), free, que possibilita realizar interconexões entre o mundo analógico, digital e possibilita aplicações e recursos que quando vistos em outras centrais telefônicas, são de grande porte.

Instalação de dependências

O primeiro passo, em qualquer instalação de servidor ao meu ver, é garantir que todos os pacotes básicos estejam devidamente atualizados.

apt-get update;
apt-get upgrade;

Na sequência vamos instalar os pacotes básicos para possibilitar a compilação e a gerência do dispositivo. Enquanto o comando abaixo estiver sendo executado aproveite para buscar um café ou ler outros artigos aqui do blog pois o comando abaixo irá gastar alguns minutos.

apt-get install vim openssh-server openssh-client linux-headers-`uname -r` gcc g++ libgtk2.0-dev libnewt-dev libxml2-dev libncurses5-dev subversion bison libssl-dev openssl libusb-dev libc6-dev zlib-bin zlib1g-dev snmp libsnmp-dev snmpd build-essential mysql-common libmysqlclient18 libmysqlclient-dev libcurl4-openssl-dev uuid-dev libjansson-dev sqlite3 libsqlite3-dev logrotate

Na sequencia vamos instalar o MySQL, que será utilizado para o armazenamento do log de gravações telefônicas (CDR -Call Detail Records). Neste passo será solicitada a senha de root do MySQL, escolha sua senha e anote para utilizações futuras.

apt-get -y install mysql-server mysql-client

Download e instalação dos pacotes utilizados no Asterisk

wget http://downloads.asterisk.org/pub/telephony/dahdi-linux/releases/dahdi-linux-2.11.1.tar.gz
wget http://downloads.asterisk.org/pub/telephony/dahdi-tools/dahdi-tools-2.11.1.tar.gz
wget http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri-1.6.0.tar.gz
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13.15.0.tar.gz
tar -xzvf dahdi-linux-2.11.1.tar.gz -C /usr/src/
tar -xzvf dahdi-tools-2.11.1.tar.gz -C /usr/src/
tar -xzvf libpri-1.6.0.tar.gz -C /usr/src/
tar -xzvf asterisk-13.15.0.tar.gz -C /usr/src

A compilação do Asterisk deve ser feita em uma ordem específica, pois os módulos são interdependentes, ou seja, a compilação de um módulo interfere diretamente na compilação do outro. Por exemplo, caso seja compilado o módulo Asterisk antes do Libpri, a compilação do asterisk não reconhecerá as funções habilitadas pelo pacote libpri.

Desta forma para a correta compilação dos módulos do Asterisk, siga os passos abaixo:

DAHDI

cd /usr/src/dahdi-linux-2.11.1/
make clean
make
make install

cd /usr/src/dahdi-tools-2.11.1/
./configure
make
make install
#Não executar o make config
#Caso execute o make config, remova com os comandos update-rc.d -f dahdi remove e rm -rf /etc/init.d/dahdi

LibPRI

cd /usr/src/libpri-1.6.0/
make clean
make
make install

Asterisk

cd /usr/src/asterisk-13.15.0/
make clean
./configure
make menuselect
# Verifique se os módulos cdr_mysql esta selecionado em Add-Ons
# Verifique se o módulo res_snmp esta selecionado em Resource Modules
# Verifique se o módulo func_curl esta selecionado em Dialplan Functions
make
make install
make config
make install-logrotate

Caso essa seja a primeira instalação neste servidor pode ser executado o comando abaixo para gerar os arquivos exemplos de configuração. Caso ja tenha os arquivos neste servidor ou em um backup, não é recomendado realizar este passo, pois ao executa-lo todos os arquivos de configuração serão substituídos pelo padrão do sistema.

make samples

Configurando CDR no MySQL

Crie um arquivo /tmp/cdr.sql com o seguinte conteúdo

create database asteriskcdrdb;

/* Define a senha do usuário como 123456 */
CREATE USER 'asteriskcdr'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO 'asteriskcdr'@'%';

use asteriskcdrdb;
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--

-- Table structure for table `cdr`

--

DROP TABLE IF EXISTS `cdr`;
CREATE TABLE `cdr` (
`calldatestart` datetime NOT NULL default '0000-00-00 00:00:00',
`calldateend` datetime NOT NULL default '0000-00-00 00:00:00',
`calldateanswer` datetime NOT NULL default '0000-00-00 00:00:00',
`clid` varchar(80) NOT NULL default '',
`src` varchar(80) NOT NULL default '',
`dst` varchar(80) NOT NULL default '',
`dcontext` varchar(80) NOT NULL default '',
`channel` varchar(80) NOT NULL default '',
`dstchannel` varchar(80) NOT NULL default '',
`lastapp` varchar(80) NOT NULL default '',
`lastdata` varchar(80) NOT NULL default '',
`duration` int(11) NOT NULL default '0',
`billsec` int(11) NOT NULL default '0',
`disposition` varchar(45) NOT NULL default '',
`amaflags` int(11) NOT NULL default '0',
`accountcode` varchar(20) NOT NULL default '',
`uniqueid` varchar(32) NOT NULL default '',
`userfield` varchar(255) NOT NULL default '',
KEY `calldate` (`calldatestart`),
KEY `dst` (`dst`),
KEY `accountcode` (`accountcode`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

Execute este script no MySQL para criar a base, usuário e tabela necessária com o comando abaixo. Este comando solicitará a senha de root do MySQL, a mesma criada no momento da instalação.

mysql -u root -p < /tmp/cdr.sql

Edite o arquivo /etc/asterisk/cdr.conf e o mantenha com o seguinte conteúdo

[general]
enable=yes
unanswered=no

Edite o arquivo /etc/asterisk/cdr_mysql.conf e o mantenha com o seguinte conteúdo

[global]
hostname = localhost
dbname = asteriskcdrdb
table=cdr
user = asteriskcdr
password = 123456
port = 3306

[columns]
alias start => calldatestart
alias end => calldateend
alias answer => calldateanswer
alias callerid => clid
alias src => src
alias dst => dst
alias dcontext => dcontext
alias channel => channel
alias dstchannel => dstchannel
alias lastapp => lastapp
alias lastdata => lastdata
alias duration => duration
alias billsec => billsec
alias disposition => disposition
alias amaflags => amaflags
alias accountcode => accountcode
alias userfield => userfield
alias uniqueid => uniqueid

Edite o arquivo /etc/asterisk/modules.conf e adicione a seguinte linha

load => cdr_mysql.so

Reinicie o asterisk

Para verificar o status da gravação do CDR utilize os comando cdr mysql status

Alterando a linguagem do Asterisk para pt_BR

Realize o download dos prompts de audio e descompacte em /var/lib/asterisk/sounds/

wget http://www.helviojunior.com.br/wp-content/uploads/2015/03/sounds-pt_BR.tgz
tar -xzvf sounds-pt_BR.tgz -C /var/lib/asterisk/sounds/

Altere o seu arquivo sip.conf, iax.conf entre outros alterando a language para pt_BR conforme demonstrado abaixo

language=pt_BR
Helvio Junior

Helvio Junior

Gerente de Infraestrutura de TI e Telecomunicações em Fael, uma empresa do grupo Apollo Global
Especialista em redes e segurança de sistemas pela PUC-PR, consultor de redes e segurança da informação. CEO e CTO da SafeTrend, com um produto de single sign-on e gestão de identidades e acessos. Especialista em Segurança da Informação, Controle de Acesso, ambientes e ferramentas de segurança, telefonia VoIP com Asterisk, administração de redes em ambientes híbridos e realização de penetration test (pentest).
Helvio Junior

Últimos posts por Helvio Junior (exibir todos)

0 respostas

Deixe uma resposta

Want to join the discussion?
Feel free to contribute!

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios são marcados com *