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

Isac Borgert isacborgert em gmail.com
Quinta Dezembro 19 14:28:53 BRST 2013


Sou leigo no assunto mas vou tentar opinar...tem que ter o
require_once "phpagi.php";
require_once "phpagi-asmanager.php";


O teu php roda normal? Ativa o display_errors do php pra ver a linha que
possa conter erro.

Como é a extensão que vc chama o script?

Você só quer validar ou quer consultar em um baco? Aqui a gente tem algo
parecido, ele só verifica se tem 11 ou 14 dígitos e consulta no banco se o
cliente é cadastrado, se for cadastrado chama no ramal do operador que esta
atendendo o chamado dele, se não é cadastrado chama na atendente geral.


Em 19 de dezembro de 2013 11:03, Márcio Luís Günther <
mgunther em marciogunther.com> escreveu:

> 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
>
>
> _______________________________________________
> 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 e telefones IP
> Conheça todo o portfólio em www.Khomp.com
> _______________________________________________
> 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/20131219/07dc34ab/attachment.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil