[AsteriskBrasil] queue_log Mysql

Sylvio Jollenbeck sylvio.jollenbeck em gmail.com
Segunda Abril 1 02:26:20 BRT 2013


Sergio,

   Se o seu Asterisk está na versão 1.6, você deve apenas fazer a aplicação
do patch no logger.c. Mas não é esse patch que esta no historico da lista,
segue o patch correto:

Index: main/logger.c
===================================================================
--- main/logger.c	(revision 94615)
+++ main/logger.c	(working copy)
@@ -418,18 +418,34 @@
 	va_list ap;
 	char qlog_msg[8192];
 	int qlog_len;
-	if (qlog) {
+	char time_str[16];
+
+	if (ast_check_realtime("queue_log")) {
 		va_start(ap, fmt);
-		qlog_len = snprintf(qlog_msg, sizeof(qlog_msg), "%ld|%s|%s|%s|%s|",
(long)time(NULL), callid, queuename, agent, event);
-		vsnprintf(qlog_msg + qlog_len, sizeof(qlog_msg) - qlog_len, fmt, ap);
+		vsnprintf(qlog_msg, sizeof(qlog_msg), fmt, ap);
 		va_end(ap);
+		snprintf(time_str, sizeof(time_str), "%ld", (long)time(NULL));
+		ast_store_realtime("queue_log", "time", time_str,
+						"callid", callid,
+						"queuename", queuename,
+						"agent", agent,
+						"event", event,
+						"data", qlog_msg,
+						NULL);
+	} else {
+		if (qlog) {
+			va_start(ap, fmt);
+			qlog_len = snprintf(qlog_msg, sizeof(qlog_msg),
"%ld|%s|%s|%s|%s|", (long)time(NULL), callid, queuename, agent,
event);
+			vsnprintf(qlog_msg + qlog_len, sizeof(qlog_msg) - qlog_len, fmt, ap);
+			va_end(ap);
+		}
+		AST_RWLIST_RDLOCK(&logchannels);
+		if (qlog) {
+			fprintf(qlog, "%s\n", qlog_msg);
+			fflush(qlog);
+		}
+		AST_RWLIST_UNLOCK(&logchannels);
 	}
-	AST_RWLIST_RDLOCK(&logchannels);
-	if (qlog) {
-		fprintf(qlog, "%s\n", qlog_msg);
-		fflush(qlog);
-	}
-	AST_RWLIST_UNLOCK(&logchannels);
 }

Obs: Pode ser que as linhas de aplicação desse patch não bata com o
seu Asterisk devido as diversas releases do sistema, mas pode ser
fácilmente aplicado na mão, apenas observe a linha e faça as
alterações do código.

Após aplicar o patch é necessário recompilar o Asterisk, não execute o
comando make examples.

Abs,

Sylvio Jollenbeck
www.hosannatecnologia.com.br


Em 31 de março de 2013 16:52, sergio <sergio em inbox.com> escreveu:

> **
> Boa tarde,
>
> Olhando mensagens mais antigas na lista vi um post sobre o assunto porém
> com asterisk 1.4
>
> Porém não se se adiantaria eu usar o mesmo patch para este caso, pois pelo
> visto esse post seria para habilitar o suporte no Asterisk 1.4 que não
> grava o queue_log no banco de dados.
>
>
> http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/2011-September/053491.html
>
> Como eu uso Elastix existe alguma forma de atualizar o Asterisk para
> versão 1.8 sem correr risco da distro parar de rodar ?
>
>
>
>
> -----Original Message-----
> *From:* sergio em inbox.com
> *Sent:* Sat, 30 Mar 2013 15:13:56 -0800
> *To:* asteriskbrasil em listas.asteriskbrasil.org,
> asteriskbrasil em listas.asteriskbrasil.org
> *Subject:* Re: [AsteriskBrasil] queue_log Mysql
>
> Sylvio muito obrigado pela ajuda!
>
> Neste caso seria um patch ? você saberia me informar como aplicar ? teria
> que recompilar todo o Asterisk ?
>
> Abs.
>
>
> -----Original Message-----
> *From:* sylvio.jollenbeck em gmail.com
> *Sent:* Sat, 30 Mar 2013 12:58:04 -0300
> *To:* asteriskbrasil em listas.asteriskbrasil.org
> *Subject:* Re: [AsteriskBrasil] queue_log Mysql
>
> Olá, Sergio.
>
>     O queue_log passou a ser gravado no banco de dados a partir da versão
> 1.6 do Asterisk e a partir da versão 1.8 o campo data foi divididos em
> quatro campos de dados. Existe um backport da função de split do campo data
> para o logger.c da versão 1.6. Desta forma, você não precisará de nenhum
> script adicional. "o segredo esta no logger.c"
>
> Abs,
>
>
> Em 30 de março de 2013 11:45, sergio <sergio em inbox.com> escreveu:
>
> Olá lista, se algum dos amigos puder me ajudar eu agradeço
>
> Criei a tabela abaixo no mysql
>
> CREATE TABLE `queue_log` (
>   `id` int(11) unsigned NOT NULL auto_increment,
>   `time` char(100) NOT NULL,
>   `queuename` varchar(30) default NULL,
>   `agent` varchar(30) default NULL,
>   `callid` varchar(30) default NULL,
>   `event` varchar(30) default NULL,
>   `data` varchar(255) default NULL,
>   `data1` varchar(20) default NULL,
>   `data2` varchar(20) default NULL,
>   `data3` varchar(20) default NULL,
>   `data4` varchar(20) default NULL,
>   `data5` varchar(20) default NULL,
>   PRIMARY KEY  (`id`)
> ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
>
> SET FOREIGN_KEY_CHECKS = 1;
>
> Adicionei a linha abaixo ao Arquivo extconfig.conf
>
> queue_log => mysql,general
>
> Modifiquei o arquivo res_mysql.conf
>
> [general]
> dbhost = 127.0.0.1
> dbname = asterisk
> dbuser = asteriskuser
> dbpass = 11111111111
>
> Modifiquei o arquivo logger.conf
>
> [general]
>
> queue_log = yes
>
> queue_log_name = queue_log
>
> Em um Asterisk 1.8 está tudo OK, ele grava os dados nos campos data,
> data1, data2, data3, data4, data5
>
> Em um outro Asterisk 1.6 ele esta gravando tudo apenas no campo data no
> mesmo formato do queue_log txt com pipe.
>
> Já pensei em pegar o queue_log txt e usar um Aplicativo do queue metrics
> para popular o banco, porém fico com receio de rotacionar o queue_log
> corretamente e não perder dados.
>
> Alguém já passou por isso ?
>
> ____________________________________________________________
> FREE 3D MARINE AQUARIUM SCREENSAVER - Watch dolphins, sharks & orcas on
> your desktop!
> Check it out at http://www.inbox.com/marineaquarium
>
>
> _______________________________________________
> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1;
> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7;
> Intercomunicadores para acesso remoto via rede IP. Conheça em
> www.Khomp.com.
> _______________________________________________
> DIGIVOICE  Fabricante de Placas de Voz e Channel Bank
> 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
> Centro Treinamento - Curso de PABX IP -  Asterisk  - Site
> www.digivoice.com.br
> _______________________________________________
> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7.
> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express.
> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br.
> _______________________________________________
> Para remover seu email desta lista, basta enviar um email em branco para
> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>
>
>
>
> --
> Sylvio Jollenbeck
> www.hosannatecnologia.com.br
>
>  ------------------------------
>  [image: Smileys Preview] <http://www.inbox.com/smileys>
> ***Get Free Smileys for Your IM & Email* - Learn more at
> www.crawler.com/smileys**
> **Works with AIM®, MSN® Messenger, Yahoo!® Messenger, ICQ®, Google Talk™and most webmails
> **
>
> ------------------------------
>  Free Online Photosharing - Share your photos online with your friends
> and family!
> Visit http://www.inbox.com/photosharing to find out more!
>
> _______________________________________________
> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1;
> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7;
> Intercomunicadores para acesso remoto via rede IP. Conheça em
> www.Khomp.com.
> _______________________________________________
> DIGIVOICE  Fabricante de Placas de Voz e Channel Bank
> 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
> Centro Treinamento - Curso de PABX IP -  Asterisk  - Site
> www.digivoice.com.br
> _______________________________________________
> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7.
> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express.
> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br.
> _______________________________________________
> Para remover seu email desta lista, basta enviar um email em branco para
> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>



--
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20130401/8f45d5e8/attachment.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil