[AsteriskBrasil] Problema com CDR e PIN Sets

André Gonçalves andre em outcenter.com.br
Terça Maio 15 07:47:31 BRT 2007


Não necessáriamente.
O próprio Playback tem a opção de enviar tb um noanswer como parametro, mas 
ainda há a possibilidade de fazer um stream que é como está no script.
Ele ja tá funcionando aqui, mas tem uma coisinha boba que o cara fez pra 
procurar os PINs no arquivo que eu ainda quero arrumar, mas ta me 
complicando o tempo e também q eu não sei programar em Perl =/
Se alguém quiser ajudar ai é aquele seek no final do script, pelo q entendi 
ele vai sair varrendo caracter por caracter até encontrar a sequencia, mas 
não corre o risco dele começar a ler em uma linha e terminar na outra ? 
(detalhe que não programo em Perl e deduzi isto pelo q conheço de 
programação, portanto caso eu esteja errado procurem relevar :)

#!/usr/bin/perl

use Asterisk::AGI;
open (PIN1,'/etc/asterisk/pinset_1');
open (PIN2,'/etc/asterisk/pinset_2');
open (PIN3,'/etc/asterisk/pinset_3');
$|=1;
$AGI = new Asterisk::AGI;

exit if $#ARGV <0;
chomp($dbid=$ARGV[0]);
#$AGI->exec("NoOp","$dbid")  ;
%input = $AGI->ReadParse();
$try = '0';
$filename = 'agent-pass';
while($try < 3) {
      $pin = $AGI->get_data($filename,"2000");
      if (!defined $pin) {$try++;$filename = 'auth-incorrect';next;}
      if (length($pin)!=4) {$try++;$filename = 'auth-incorrect';next;}
      $status=check_pin($pin);

           if ($status =='1'){
           $AGI->exec("NoOp","$pin");
           $AGI->stream_file('auth-thankyou');
           #$AGI->exec('Playback','auth-thankyou','noanswer');
           $AGI->exec('SetAccount',"$pin");
           exit (0);
           }
           else {
      $try++;
      $filename = 'auth-incorrect';
      #$AGI->exec('Playback','')
      next;
      }
}
$AGI->exec('Playback','vm-goodbye');
$AGI->exec('Wait','1');
$AGI->hangup();
exit (0);

sub check_pin{
    my $pin=$_[0];
    my $file='PIN'."$dbid";
    seek ("$file",0,0);
    while (<$file>){
            if (/$pin/) {return '1';}
    }
    return '0';
}

E a partir de agora é como fica no extensions_additional.conf do trixbox

[macro-pinsets]
include => macro-pinsets-custom
exten => s,1,GotoIf(${ARG2} = 1?cdr,1)
exten => cdr,1,AGI(auth.agi|${ARG1})

; end of [macro-pinsets]


É isso ai, caso alguem precise do código ou queira corrigir o erro q eu 
falei (se é que existe) fique a vontade (mas me envie depois corrigido :)

Att.
André
----- Original Message ----- 
From: "Gmail - Whinston Rodrigues" <whinstonsaurarodrigues em gmail.com>
To: <asteriskbrasil em listas.asteriskbrasil.org>
Sent: Monday, May 14, 2007 1:32 PM
Subject: Re: [AsteriskBrasil] Problema com CDR e PIN Sets


   Qualquer áudio que vc jogue no canal, dando answer ou não, o Asterisk
interpreta como atentido.
   O que esse AGI deve fazer é dar um reset no contador do CDR.

Em 14/05/07, André Gonçalves <andre em outcenter.com.br> escreveu:
>
> Achei a solução do problema galera.
>
> A questão aqui é uma função chamada Authenticate que faz a autenticação do
> usuário e ela sempre envia um answer.
> A solução é um agi (que encontrei na net de um cara que tinha o mesmo
> problema que o meu) que ainda estou testando e corrigindo um bug que
> tinha,
> ai assim q ele estiver rodando 100% eu coloco na lista para ajudar alguém
> que possa passar por este problema também.
>
> Att.
> André
> ----- Original Message -----
> From: "Rodrigo R Passos" <rodrigopassos em iaxcomm.com.br>
> To: <asteriskbrasil em listas.asteriskbrasil.org>
> Sent: Thursday, May 10, 2007 3:20 PM
> Subject: Re: [AsteriskBrasil] Problema com CDR e PIN Sets
>
>
> André,
>
> Em algum momento, na extensão que faz a autenticação, o trixbox faz um
> Answer e o CDR é gravado com este informe.
> Para resolver esse problema, tente remover o answer do plano de
> discagem, onde está a autenticação,  e fazer um amaflags billing no
> momento em que a ligação comutar com o canal Zap.
>
> André Gonçalves wrote:
> > Boa tarde lista !
> >
> > Tenho o seguinte cenário em um determinado cliente, 1 servidor rodando o
> > Trixbox e para cada um dos funcionários há uma senha (PIN), há também
> uma
> > telefonista e ela tem uma senha (PIN) diferente para cada um dos
> > funcionários para quando eles pedem para que ela faça alguma ligação.
> > Pois bem, isto funciona perfeitamente e sem enrosco algum, quando a
> pessoa
> > quer ligar ela disca o numero, ai pede a senha ela digita a senha e sai
> > falando.
> > Com isto o dono da empresa imprime um relatório todo mês de cada um dos
> > funcionários (cada uma das senhas) e ve pra onde andaram ligando e ve se
> > não
> > houveram abusos.
> >
> > Ai entra o problema.
> > Quando a ligação é feita internamente entre ramais o CDR grava
> > perfeitamente, o campo duration grava a duração da chamada desde o
> começo
> > e
> > o billsec o tempo depois de atendida a ligação, mas quando é uma ligação
> > externa, independente de ter sido atendida ou mesmo se estava ocupada a
> > outra ponta ela é gravada como respondida e sempre é gravada desde o
> > inicio
> > da ligação, ou seja o duration e o billsec ficam iguais.
> > Fiz alguns testes e descobri que quando é feita uma ligação sem pedir a
> > senha (PIN) ela grava normalmente, mas quando entra a voz da mulher
> > pedindo
> > a senha a gravação do billsec fica igual do duration.
> >
> > Alguem ai já passou por isto e pode me dar uma mão de como resolver este
> > problema?
> > Ja dei uma olhada no histórico da lista e não achei nenhum problema
> > parecido
> > com este.
> >
> > Obrigado
> > André
> >
> > ----------------------------------------
> > Estação VoIP 2006
> > 5 e 6 Dezembro
> > Curitiba PR
> > http://www.estacaovoip.com.br
> >
> > _______________________________________________
> > LIsta de discussões AsteriskBrasil.org
> > AsteriskBrasil em listas.asteriskbrasil.org
> > http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
> >
> > _______________________________________________
> > Acesse o  wiki AsteriskBrasil.org:
> > http://www.asteriskbrasil.org
> >
> >
>
> ----------------------------------------
> Estação VoIP 2006
> 5 e 6 Dezembro
> Curitiba PR
> http://www.estacaovoip.com.br
>
> _______________________________________________
> LIsta de discussões AsteriskBrasil.org
> AsteriskBrasil em listas.asteriskbrasil.org
> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>
> _______________________________________________
> Acesse o  wiki AsteriskBrasil.org:
> http://www.asteriskbrasil.org
>
> ----------------------------------------
> Estação VoIP 2006
> 5 e 6 Dezembro
> Curitiba PR
> http://www.estacaovoip.com.br
>
> _______________________________________________
> LIsta de discussões AsteriskBrasil.org
> AsteriskBrasil em listas.asteriskbrasil.org
> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>
> _______________________________________________
> Acesse o  wiki AsteriskBrasil.org:
> http://www.asteriskbrasil.org
>



-- 
Whinston Saura Rodrigues
         BoxBrasil



--------------------------------------------------------------------------------


----------------------------------------
Estação VoIP 2006
5 e 6 Dezembro
Curitiba PR
http://www.estacaovoip.com.br

_______________________________________________
LIsta de discussões AsteriskBrasil.org
AsteriskBrasil em listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil

_______________________________________________
Acesse o  wiki AsteriskBrasil.org:
http://www.asteriskbrasil.org 



Mais detalhes sobre a lista de discussão AsteriskBrasil