Cara, uso o queues-stats e tá funcionando redondinho =)
Atenciosamente. Eng.° Rodrigo Ferreira ITIL v3 Certified <http://br.linkedin.com/pub/rodrigo-ferreira/31/757/901> Em 30 de outubro de 2013 13:10, Silvinho Barros <silvinho.b4r...@gmail.com>escreveu: > Blz Mike ! > > Sakei o arquivo, vou ver o que sai aqui. > > Obgd! > > > Em 30 de outubro de 2013 11:55, Mike Tesliuk <m...@tesliuk.com> escreveu: > > >> Apenas lembrando as versoes atuais do asterisk suportam o armazenamento >> direto dos logs no banco conforme o link que eu passei >> >> Em 30/10/13 10:54, Mike Tesliuk escreveu: >> >> >> você deveria gerar o relatorio baseado na fila e nao no cdr neste caso. >> >> existem alguns scripts que podemos jogar os dados da sua fila no banco de >> dados e uma vez no banco você pode fazer as consultas necessárias. >> >> http://www.voip-info.org/wiki/view/Asterisk+queue_log+on+MySQL >> >> >> Abaixo um script que fiz uma vez para esta finalidade (era versao 1.4 na >> epoca), precisa verificar se o formato do arquivo é o mesmo ainda, se >> quiser testar fique avontade, unico detalhe é , faça um backup do seu >> queues_log enquanto você está testando para você nao perder os dados que >> tem la, nao venha chorar depois se o arquivo for apagado :) >> ----- >> >> #!/usr/bin/perl >> # >> # Script para proccessamento do arquivo queue_log >> # >> # Descricao dos campos do arquivo: >> # epoch timestamp >> # uniqueid da chamada >> # nome da fila >> # Canal >> # evento >> # parametro 1 do evento >> # parametro 2 do evento >> # parametro 3 do evento >> >> # Verificando se o processo ja esta rodando >> $control = "/tmp/ProccessQueueLog.run"; >> >> if(! -e $control){ >> system("touch $control"); >> }else{ >> die("Processo ja em Execucao\n"); >> } >> >> >> # declarando funcoes >> use DBI; >> >> # declarando variaveis de conexao com banco >> >> $host = "localhost"; >> $user = "USUARIO DO BANCO"; >> $pass = "SENHA DO BANCO"; >> $database = "asterisk"; >> $table = "queuelog"; >> >> # Criando conexao >> >> $dsn = "DBI:mysql:database=$database;host=$host;port=3306"; >> $dbh = DBI->connect($dsn, $user, $pass); >> >> # Definindo os arquivos >> >> $file = "/var/log/asterisk/queue_log"; >> $file_tmp = "/var/log/asterisk/queue_log_tmp"; >> >> >> # Verificando se o processo esta rodando >> >> >> if(-e $file_tmp){ >> system("rm -rf $file_tmp"); >> } >> >> system("mv $file $file_tmp"); >> system("touch $file"); >> system("chown -R asterisk.asterisk $file"); >> system("/usr/sbin/asterisk -rx \"logger reload\""); >> >> # Abrindo o arquivo >> open FILE, "<", $file_tmp or die $!; >> >> # Lendo informacao do arquivo >> >> # contador para teste >> $contador = 0; >> >> while ($line = <FILE>){ >> $contador++; >> #if($contador > 5000){ die(); } >> ($epoch, $uniqueid, $queue, $channel, $event, $param1, $param2, >> $param3) = split(/\|/, $line); >> >> # limpando as variaveis >> chomp($epoch); >> chomp($uniqueid); >> chomp($queue); >> chomp($channel); >> chomp($event); >> chomp($param1); >> chomp($param2); >> chomp($param3); >> >> # Convertendo epoch para date >> $data = convert_epoc_to_date($epoch); >> >> # Imprimindo valores apenas para debug >> #print "Data: $data\n"; >> #print "Uniqueid: $uniqueid\n"; >> #print "Fila: $queue\n"; >> #print "Canal: $channel\n"; >> #print "Evento: $event\n"; >> #print "Parametro 1: $param1\n"; >> #print "Parametro 2: $param2\n"; >> #print "Parametro 3: $param3\n"; >> #print "Original: $line\n\n"; >> >> # Exibindo a linha completa (para debug) >> #print "LINE: $line\n"; >> >> $query = "INSERT INTO $database.$table VALUES ('$epoch', '$uniqueid', >> '$queue', '$channel' , '$event', '$param1', '$param2', '$param3', '$data')"; >> >> # Imprimindo insert para verificacao >> print "Query: $query\n"; >> >> # Executando Insert >> $sth = $dbh->prepare($query); >> $sth->execute(); >> } >> >> >> >> >> sub convert_epoc_to_date($epoch){ >> # Formato alterado pela falta da DateTime >> #use DateTime; >> #$dt = DateTime->from_epoch (epoch => $epoch); >> #$year = $dt->year; >> #$month = $dt->month; >> #$day = $dt->day; >> #$hour = $dt->hour; >> #$minute = $dt->minute; >> #$second = $dt->second; >> >> #return ($year + 1900) . "-$month" . "-$day". "-$hour" . ":$minute" . >> "$second"; >> >> my $time = $epoch; >> my @months = >> ("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); >> my ($sec, $min, $hour, $day,$month,$year) = >> (localtime($time))[0,1,2,3,4,5,6]; >> $month = $month + 1; >> if($month < 10){ $month = "0" . $month; } >> if($day < 10){ $day = "0" . $day; } >> if($hour < 10){ $hour = "0" . $hour; } >> if($min < 10){ $min = "0" . $min; } >> if($sec < 10){ $sec = "0" . $sec; } >> >> return ($year + 1900) . "-$month" . "-$day". " $hour" . ":$min" . >> ":$sec"; >> } >> >> / >> system("rm -rf $control"); >> >> >> ----- >> >> A estrutura do banco de dados para receber estes dados éra a seguinte. >> >> CREATE TABLE `queuelog` ( >> `timestamp` int(11) default NULL, >> `callid` text, >> `qname` text, >> `agent` text, >> `action` text, >> `info1` text, >> `info2` text, >> `info3` text, >> `date` datetime default NULL >> ) ENGINE=MyISAM DEFAULT CHARSET=latin1; >> >> >> >> --- >> >> >> >> Em 30/10/13 10:44, Silvinho Barros escreveu: >> >> Bom dia Pessoal, >> >> Alguem sabe a manha para tirar relatorio dessa base(Asteriskcdrdb) de >> quantas chamadas forma atendidas e quantas falharam de verdade? >> O problema é que trabalho com filas e quando ele começa a discar para os >> ramais é registrado varios não respondidos mas na verdade a chamada foi >> atendida por 1 ramal apenas. >> >> Asternic ta furado aqui! >> >> Obrigado. >> >> >> >> _______________________________________________ >> 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. >> _______________________________________________ >> 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-unsubscr...@listas.asteriskbrasil.org >> >> >> >> >> _______________________________________________ >> 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. >> _______________________________________________ >> 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-unsubscr...@listas.asteriskbrasil.org >> >> >> >> _______________________________________________ >> 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. >> _______________________________________________ >> 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-unsubscr...@listas.asteriskbrasil.org >> > > > _______________________________________________ > 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. > _______________________________________________ > 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-unsubscr...@listas.asteriskbrasil.org >
_______________________________________________ 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. _______________________________________________ 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-unsubscr...@listas.asteriskbrasil.org