segunda-feira, 24 de junho de 2013

Asterisk + Gravação CDR no Mysql

Fonte: http://paulogvaz.blogspot.com.br/2012/02/asterisk-gravacao-cdr-no-mysql.html

Este é mais um artigo sobre Asterisk mais agora mostrando como configurar para que ele salve as ligações direto no banco de dados Mysql.





Primeiramente presumo que você já tenha o asterisk instalado em sua máquina, se não tem leia o artigo de como instalar que segue abaixo:
http://paulogvaz.blogspot.com/2012/02/asterisk-debian-dahdi.html

Com o asterisk instalado vamos ao passo seguinte:

1 - Instalar os pacotes para o mysql

# apt-get install  mysql-common libmysqlclient15-dev mysql-client mysql-server

Ao instalar o mysql-server ele irá pedir uma senha para o administrador root, não perca a senha pois vamos necessitar.

2 - Criar uma base de dados

# mysqladmin create asteriskcdr -u root -psenha


3 - Conecte a base de dados com usuário root e a senha que vc definiu ao instalar o mysql

# mysql -u root -psenha

Agora vamos criar uma tabela utilizando a base de dados asteriskcdr

mysql> use asteriskcdr


mysql> 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 '',
userfield varchar(255) NOT NULL default ''
);



Atenção: cuidado ao copiar e colar essas linhas acima para criar a tabela cdr, pois o mesmo pode ao colar alterar o formato de algum símbolo feito o "''" (aspasimples), ocorre muito erro ao colar podendo trocar de aspas simples para craze ou outro símbolo.

3 - Agora que criamos vamos nossa tabela cdr vamos agorar criar um usuário e dar permissão par gerenciar a base de dados:

mysql>GRANT ALL PRIVILEGES ON asteriskcdr.* TO asterisk IDENTIFIED BY '12345';
mysql>flush privileges;
mysql>quit;

A primeira linha acima cria um usuário asterisk com senha 12345 e que total permissão para a base asteriskcdr, você pode utilizar um usuário e uma senha a seu critério.

4 - Agora precisamos alterar o arquivo cdr_mysql.conf para que o asterisk possa se conectar ao mysql.

# view /etc/asterisk/crd_mysql.conf


[global]
hostname=127.0.0.1
dbname=asteriskcdr
table=cdr
password=12345
user=asterisk
port=3306
sock=/tmp/mysql.sock
userfield=1
;charset = latin1

Para ver se está tudo funcionando entre no asterisk e execute o seguinte comando:

#asterisk -r

CLI> cdr mysql status

Irá aparecer uma mensagem assim:

Connected to asteriskcdr@localhost, port 3306 using table cdr for 45 seconds.
Wrote 0 records since last restart.
Se esta mensagem aparecer é porque o asterisk se conectou com sucesso a base de dados:
Pronto seu asterisk já está bilhetando as ligações.
O asterisk por padrão ele não bilheta ligações não atendidas, mais necessitar que grave tambem essas ligações, altere o seguinte arquivo
#view /etc/asterisk/cdr.conf
e altere a lina
;unanswered = no
para
unanswered = yes
Salve e restarte o asteisk
#asterisk -r
CLI>restart now

Proto asterisk bilhetando tudo...
Boa sorte.

Nenhum comentário:

Postar um comentário