Voip Asterisk Instalando Asterisk 13
Post
Cancel

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.

[sourcecode language="shell"]apt-get update;
apt-get upgrade;
[/sourcecode]

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.

[sourcecode language="shell"]apt-get install aptitude 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
[/sourcecode]

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.

[sourcecode language="shell"]apt-get -y install mysql-server mysql-client
[/sourcecode]

Download e instalação dos pacotes utilizados no Asterisk

[sourcecode language="shell"]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-current.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-current.tar.gz -C /usr/src
[/sourcecode]

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

[sourcecode language="shell"]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
[/sourcecode]

LibPRI

[sourcecode language="shell"]cd /usr/src/libpri-1.6.0/
make clean
make
make install
[/sourcecode]

Asterisk

[sourcecode language="shell"]cd /usr/src/asterisk-13-current/
./contrib/scripts/install_prereq install
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
[/sourcecode]

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.

[sourcecode language="shell"]make samples
[/sourcecode]

Configurando CDR no MySQL

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

[sourcecode language="shell"]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 */;
[/sourcecode]

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.

[sourcecode language="shell"]mysql -u root -p < /tmp/cdr.sql
[/sourcecode]

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

[sourcecode language="shell"][general]
enable=yes
unanswered=no
[/sourcecode]

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

[sourcecode language="shell"][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
[/sourcecode]

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

[sourcecode language="shell"]load => cdr_mysql.so
[/sourcecode]

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/

[sourcecode language="shell"]wget /assets/2015/03/sounds-pt_BR.tgz
tar -xzvf sounds-pt_BR.tgz -C /var/lib/asterisk/sounds/
[/sourcecode]

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

[sourcecode language="shell"]language=pt_BR
[/sourcecode]