Instalação Comentada – Asterisk com CDR via MySQL no Debian Squeeze

Post dedicado aos alunos da disciplina de “Sistemas de Telefonia”, do  curso de pós-graduação em “Segurança de Redes de Computadores” da Faculdade de Tecnologia de Ourinhos.

Na aula de hoje faremos a instalação do PABX baseado em software “Asterisk”. A base teórica dessa aula tem como fonte os seguintes materiais:

http://asterisk.org/get-started
http://www.voip-info.org/wiki/view/CDR

Abaixo, portanto, os detalhes e comentários de todos os procedimentos necessários para a conclusão de nosso objetivo: Asterisk com CDR via MySQL no Debian Squeeze.

Instalação do pacote build-essential (https://packages.debian.org/pt-br/squeeze/build-essential)

apt-get install build-essential

Instalação do pacote gcc-4.3 (https://packages.debian.org/pt-br/squeeze/gcc-4.3)

apt-get install gcc-4.3

Instalação do pacote libncurses5-dev (https://packages.debian.org/pt-br/squeeze/libncurses5-dev):

apt-get install libncurses5-dev

Instalação do pacote libxml2-dev (https://packages.debian.org/pt-br/squeeze/libxml2-dev):

apt-get install libxml2-dev

Instalação do pacote libsqlite3-dev (https://packages.debian.org/pt-br/squeeze/libsqlite3-dev):

apt-get install libsqlite3-dev

Instalação do pacote mysql-client (https://packages.debian.org/pt-br/squeeze/mysql-client):

apt-get install mysql-client

Instalação do pacote mysql-server (https://packages.debian.org/pt-br/squeeze/mysql-server):

apt-get install mysql-server

Instalação do pacote libmysqlclient-dev (https://packages.debian.org/pt-br/squeeze/libmysqlclient-dev):

apt-get install libmysqlclient-dev

Instalação do pacote mysql-common (https://packages.debian.org/pt-br/squeeze/mysql-common):

apt-get install mysql-common

Padronização de diretório para download de pacotes

mkdir /usr/src/asterisk/ && cd /usr/src/asterisk

Download do código-fonte do Asterisk:

wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz

Descompactar e acessar o diretório:

tar xzf asterisk-11-current.tar.gz
cd asterisk-11.12.0/

Executar o script “configure”, que fará a verificação do ambiente para posterior compilação:

./configure

Acessar o menu de seleção de detalhes da instalação:

make menuselect

No menu acessado acima, escolher a opção “Add-ons” e habilitar a opção “cdr_mysql”. Salvar as alterações com pressionando “S”.

Compilação e adequação de PATH:

make && make install

Instalação dos arquivos de configuração default:

make samples

Instalação do script de inicialização:

cp contrib/init.d/rc.debian.asterisk /etc/init.d/asterisk
chmod +x /etc/init.d/asterisk
sed 's/__ASTERISK_SBIN_DIR__\/asterisk/\/usr\/sbin\/asterisk/g' /etc/init.d/asterisk -i
sed 's/__ASTERISK_VARRUN_DIR__/\/var\/run\/asterisk/g' /etc/init.d/asterisk -i
sed 's/__ASTERISK_ETC_DIR__/\/etc\/asterisk/g' /etc/init.d/asterisk -i

Acessar o MySQL (como “root”). Criar base de dados:

CREATE DATABASE cdr

Dar permissão de acesso ao usuario “cdr_user”

GRANT ALL ON cdr.* to "cdr_user"@"localhost" IDENTIFIED BY "5ENH@";
FLUSH PRIVILEGES;

Criar a tabela com a seguinte estrutura:

CREATE TABLE cdr (
 calldate 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 '',
 peeraccount varchar(20) NOT NULL default '',
 linkedid varchar(32) NOT NULL default '',
 sequence int(11) NOT NULL default '0',
 userfield varchar(255) NOT NULL default ''
 );

Adicionar as seguintes entradas no final do arquivo /etc/asterisk/cdr.conf

[mysql]
usegmtime=yes 
loguniqueid=yes 
loguserfield=yes 
accountlogs=yes

Adequar os parâmetros de conexão com a base de dados no arquivo /etc/asterisk/cdr_mysql.conf

[global]
hostname=localhost
dbname=cdr
table=cdr
password=53NH4
user=cdr_user
port=3306
sock=/var/run/mysqld/mysqld.sock
timezone=UTC

Por fim, criaremos dois ramais de teste no arquivo /etc/asterisk/sip.conf

[10] ; Ramal de teste
 context=fatec
 type=friend
 secret=10
 host=dynamic
[20] ; Ramal de teste
 context=fatec
 type=friend
 secret=20
 host=dynamic

Criação do plano de discagem de teste em /etc/asterisk/extensions.conf

[fatec] ; Contexto de teste
exten => _XX,1,MixMonitor(FATEC-${UNIQUEID}.wav,a)
exten => _XX,n,Wait(1)
exten => _XX,n,Answer()
exten => _XX,n,Dial(SIP/${EXTEN})
exten => _XX,n,Hangup()


As demais explicações serão expostas em sala de aula. Dúvidas: thiago.lucas [at] fatecourinhos.edu.br

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s