[AsteriskBrasil] Tirar Relatorio da base asteriskcdrdb.

Silvinho Barros silvinho.b4rros em gmail.com
Quarta Outubro 30 14:44:40 BRST 2013


Olá Rodrigo.

Aqui roda, o problema é que quando vou fazer um checkup as informações não
batem com a informações que tenho na base asteriskcdrdb.
Hoje entre 6 e 7 da manha no asteriskcdrdb diz que recebi 27 chamadas e no
queue-stats diz que so recebi 14.













Em 30 de outubro de 2013 12:38, Rodrigo Ferreira
<rsferreira08 em gmail.com>escreveu:

> 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.b4rros em 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 <mike em 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-unsubscribe em 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-unsubscribe em 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-unsubscribe em 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-unsubscribe em 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-unsubscribe em listas.asteriskbrasil.org
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20131030/7d821700/attachment.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil