<div dir="ltr"><div><div><div><div><div><div>Bom dia pessoal,<br><br></div></div>Criei a URA, com a solicitação de digitação de CPF ou CNPJ, sem problemas.<br></div>O meu problema está na consistência do CPF ou CNPJ informado.<br>
</div>Criei um script AGI em PHP, que aparentemente é executado, retornando o seguinte na console do Asterisk:<br><br> -- Launched AGI Script /var/lib/asterisk/agi-bin/san_cpfcnpj.php<br> -- <DAHDI/28-1>AGI Script san_cpfcnpj.php completed, returning 0<br>
<br></div>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.<br></div>O script AGI é o seguinte:<br><br><div>========== INÍCIO DO SCRIPT ==========<br></div><div>#!/usr/bin/php -q<br><?php<br>// Include das classes PHPAGI<br>// require('/var/lib/asterisk/agi-bin/phpagi.php');<br>
require('phpagi.php');<br>// Include da classe de validacao de CPF e CNPJ<br>// include('/var/lib/asterisk/agi-bin/class.cpfcnpj.php');<br>require('class.cpfcnpj.php');<br><br>$_log = true;<br>$_logfile = "/tmp/mlg_agi.log";<br>
<br>if($_log) {<br> $stdlog = fopen($_logfile, "a");<br>}<br><br>function wlog($line) {<br> global $_log, $stdlog;<br> if($_log) {<br> fputs($stdlog, date("Y-m-d H:i:s").": ".$line."\n");<br>
}<br>}<br><br>// Inicio do script<br>$agi = new AGI();<br><br>$v = new validacao();<br><br>wlog("----------");<br>wlog("Inicio");<br>wlog("Parametro 1: ".$argv[1]);<br><br>// $agi->conlog("Antes do IF: ".$agi->get_variable("C_OK"));<br>
$agi->verbose("Antes do IF: ".$agi->get_variable("C_OK"));<br><br>// if($v->validaCPF($argv[1]) || $v->validaCNPJ($argv[1])) {<br>if($v->validaCPF($argv[1])) {<br> // CPF ou CNPJ OK<br>
wlog("CPF ou CNPJ '$argv[1]' OK.");<br> $agi->set_variable("C_OK", "0");<br>} else {<br> // CPF ou CNPJ NOK<br> wlog("CPF ou CNPJ '$argv[1]' NOK.");<br>
$agi->set_variable("C_OK", "1");<br>}<br><br>$agi->say_number($argv[1]);<br>// $agi->conlog("Depois do IF: ".$agi->get_variable("C_OK"));<br>$agi->verbose("Depois do IF: ".$agi->get_variable("C_OK"));<br>
wlog("Fim.");<br>wlog("----------");<br><br>if($_log) {<br> fclose($stdlog);<br>}<br><br>?><br></div><div>========== FIM DO SCRIPT ==========<br></div><div><br></div><div>A URA que criei para testar o script é:<br>
<br></div><div>========== INÍCIO DO SCRIPT ==========<br></div><div>[san-ura01-cpf-cnpj-test]<br>exten => s,1,NoOp(-------------------------------------)<br>exten => s,n,NoOp(----- SAN - URA01: Ler CPF/CNPJ -----)<br>
exten => s,n,NoOp(-------------------------------------)<br>exten => s,n,Set(C_OK=1)<br>exten => s,n,While($[${C_OK}=1])<br>exten => s,n,Wait(1)<br>exten => s,n,Read(CPFCNPJ,custom/ura01_cpf-cnpj,0)<br>exten => s,n,NoOp(-------------------------------------)<br>
exten => s,n,NoOp(----- SAN - URA01: Ler CPF/CNPJ: ${CPFCNPJ} -----)<br>exten => s,n,NoOp(----- C_OK antes AGI: ${C_OK} -----)<br>exten => s,n,NoOp(-------------------------------------)<br>exten => s,n,AGI(san_cpfcnpj.php,${CPFCNPJ})<br>
exten => s,n,NoOp(-------------------------------------)<br>exten => s,n,NoOp(----- C_OK depois AGI: ${C_OK} -----)<br>exten => s,n,NoOp(-------------------------------------)<br>exten => s,n,ExecIf($[${C_OK} = 1]?Playback(custom/ura01_cpf-ou-cnpj-invalido))<br>
exten => s,n,EndWhile()<br>exten => s,n,Return()<br></div><div>========== FIM DO SCRIPT ==========<br></div><div><br></div><div>Estou testando em um Asterisk 1.6.2.24.<br></div><div>Alguém poderia dar uma luz?<br></div>
<div><br></div><div><div dir="ltr"><div>[]'s<br><br></div>Márcio Luís Günther<br><br></div></div>
</div>