[AsteriskBrasil] spool de queue log para asterisk-1.4

tfernandesp tfernandesp em gmail.com
Sexta Maio 14 20:03:44 BRT 2010


O objetivo desse patch é armazenar as informações de queue log em arquivo
caso o banco fique indisponível e realizar unspool das informações quando o
banco ficar disponível

Todas as alterações foram realizadas pela equipe de desenvolvimento da
Locaweb Telecom. E esse patch roda em todos os nossos servidores Asterisk
que enviam uma grande quantidade de eventos para o nosso banco de dados

Apenas lembrando que o asterisk 1.4 não realiza a inserção do queue log em
banco de dados. Então, implementamos esse patch:
http://forums.digium.com/viewtopic.php?t=4073&start=0&postdays=0&postorder=asc&highlight=&sid=b4bc1e7b9dce3244175a579fd285460c

Depois disso, nós realizamos um merge entre o patch citado acima e outro que
faz spool de CDR caso o banco fique indisponível. Mas o link que falava
sobre esse patch está fora :-(
http://www.uglyboxindustries.com/cdr_addon_mysql.html
https://issues.asterisk.org/view.php?id=4953.

O patch está rodando legal para versão asterisk-1.4.26.1, talvez em outra
versão do 1.4 as referencias do patch não batam. Ai é só refazer o diff

Segue passos:
 - baixar os patches:
http://thiago.sitepessoal.com/queue_log_patches.tar.bz2

Tem dois arquivos dentro do bz2 que precisão ser copiados para o projeto do
asterisk:
logger-mysql.c - precisa ficar dentro do diretório main do asterisk, ex:
asterisk-1.4/main/logger-mysql.c
patch.Makefile - precisa ficar dentro do diretório do asterisk, ex:
asterisk-1.4/patch.Makefile

Após os arquivos estarem copiados, realize o seguinte comando de dentro do
projeto asterisk, ex: asterisk-1.4/
- patch -p0 < patch.Makefile

saida esperada:
patching file Makefile
patching file ./main/logger.c
Hunk #1 succeeded at 86 with fuzz 1.
Hunk #2 succeeded at 334 (offset -6 lines).
Hunk #3 succeeded at 359 (offset -6 lines).

Ai é só compilar novamente o Asterisk.
- make && make install

Aqui na Locaweb Telecom nós mudamos o nome da tabela QueueLog para inserir
os dados em uma tabela que já existia em nossa base. Se quiser mudar os
campos, é só alterar a chamada do insert no arquivo logger-mysql.c.

Tabela no MySQL:
CREATE TABLE `AsteriskQueueLog` (
  `datetime` datetime NOT NULL default '0000-00-00 00:00:00',
  `callid` varchar(20) NOT NULL default '',
  `queue` varchar(20) NOT NULL default '',
  `agent` varchar(20) NOT NULL default '',
  `action` varchar(20) NOT NULL default '',
  `info1` varchar(100) NOT NULL default '',
  `info2` varchar(100) NOT NULL default '',
  `info3` varchar(100) NOT NULL default '',
  `info4` varchar(100) NOT NULL default '',
)

Agora é só configurar as informações de acesso ao banco de dados no arquivo
logger.conf:

[mysql]
hostname= IP do MySQL
dbname= Nome do schema/database
table=Nome da Tabela
password= Senha de acesso
user= Usuário
port=3306
spool=/var/spool/asterisk/logger-mysql.spool - arquivo de spool

Espero que tenha ajudado a comunidade com essa contribuição da Locaweb
Telecom

Valeu
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20100514/4ccb0158/attachment.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil