[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