[AsteriskBrasil] AGI de consistência de CPF/CNPJ

Márcio Luís Günther mgunther em marciogunther.com
Quinta Dezembro 19 11:03:00 BRST 2013


Bom dia pessoal,

Criei a URA, com a solicitação de digitação de CPF ou CNPJ, sem problemas.
O meu problema está na consistência do CPF ou CNPJ informado.
Criei um script AGI em PHP, que aparentemente é executado, retornando o
seguinte na console do Asterisk:

    -- Launched AGI Script /var/lib/asterisk/agi-bin/san_cpfcnpj.php
    -- <DAHDI/28-1>AGI Script san_cpfcnpj.php completed, returning 0

Porém, o teste não está sendo realizado dentro do script, pois deveria
apresentar mais alguns "prints" na console e atualizar um arquivo de log.
O script AGI é o seguinte:

========== INÍCIO DO SCRIPT ==========
#!/usr/bin/php -q
<?php
// Include das classes PHPAGI
// require('/var/lib/asterisk/agi-bin/phpagi.php');
require('phpagi.php');
// Include da classe de validacao de CPF e CNPJ
// include('/var/lib/asterisk/agi-bin/class.cpfcnpj.php');
require('class.cpfcnpj.php');

$_log = true;
$_logfile = "/tmp/mlg_agi.log";

if($_log) {
    $stdlog = fopen($_logfile, "a");
}

function wlog($line) {
    global $_log, $stdlog;
    if($_log) {
        fputs($stdlog, date("Y-m-d H:i:s").": ".$line."\n");
    }
}

// Inicio do script
$agi = new AGI();

$v = new validacao();

wlog("----------");
wlog("Inicio");
wlog("Parametro 1: ".$argv[1]);

// $agi->conlog("Antes do IF: ".$agi->get_variable("C_OK"));
$agi->verbose("Antes do IF: ".$agi->get_variable("C_OK"));

// if($v->validaCPF($argv[1]) || $v->validaCNPJ($argv[1])) {
if($v->validaCPF($argv[1])) {
        // CPF ou CNPJ OK
    wlog("CPF ou CNPJ '$argv[1]' OK.");
        $agi->set_variable("C_OK", "0");
} else {
        // CPF ou CNPJ NOK
    wlog("CPF ou CNPJ '$argv[1]' NOK.");
        $agi->set_variable("C_OK", "1");
}

$agi->say_number($argv[1]);
// $agi->conlog("Depois do IF: ".$agi->get_variable("C_OK"));
$agi->verbose("Depois do IF: ".$agi->get_variable("C_OK"));
wlog("Fim.");
wlog("----------");

if($_log) {
    fclose($stdlog);
}

?>
========== FIM DO SCRIPT ==========

A URA que criei para testar o script é:

========== INÍCIO DO SCRIPT ==========
[san-ura01-cpf-cnpj-test]
exten => s,1,NoOp(-------------------------------------)
exten => s,n,NoOp(----- SAN - URA01: Ler CPF/CNPJ -----)
exten => s,n,NoOp(-------------------------------------)
exten => s,n,Set(C_OK=1)
exten => s,n,While($[${C_OK}=1])
exten => s,n,Wait(1)
exten => s,n,Read(CPFCNPJ,custom/ura01_cpf-cnpj,0)
exten => s,n,NoOp(-------------------------------------)
exten => s,n,NoOp(----- SAN - URA01: Ler CPF/CNPJ: ${CPFCNPJ} -----)
exten => s,n,NoOp(----- C_OK antes AGI: ${C_OK}   -----)
exten => s,n,NoOp(-------------------------------------)
exten => s,n,AGI(san_cpfcnpj.php,${CPFCNPJ})
exten => s,n,NoOp(-------------------------------------)
exten => s,n,NoOp(----- C_OK depois AGI: ${C_OK}   -----)
exten => s,n,NoOp(-------------------------------------)
exten => s,n,ExecIf($[${C_OK} =
1]?Playback(custom/ura01_cpf-ou-cnpj-invalido))
exten => s,n,EndWhile()
exten => s,n,Return()
========== FIM DO SCRIPT ==========

Estou testando em um Asterisk 1.6.2.24.
Alguém poderia dar uma luz?

[]'s

Márcio Luís Günther
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20131219/884bc58d/attachment.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil