<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>    -- &lt;DAHDI/28-1&gt;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 &quot;prints&quot; 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>&lt;?php<br>// Include das classes PHPAGI<br>// require(&#39;/var/lib/asterisk/agi-bin/phpagi.php&#39;);<br>
require(&#39;phpagi.php&#39;);<br>// Include da classe de validacao de CPF e CNPJ<br>// include(&#39;/var/lib/asterisk/agi-bin/class.cpfcnpj.php&#39;);<br>require(&#39;class.cpfcnpj.php&#39;);<br><br>$_log = true;<br>$_logfile = &quot;/tmp/mlg_agi.log&quot;;<br>
<br>if($_log) {<br>    $stdlog = fopen($_logfile, &quot;a&quot;);<br>}<br><br>function wlog($line) {<br>    global $_log, $stdlog;<br>    if($_log) {<br>        fputs($stdlog, date(&quot;Y-m-d H:i:s&quot;).&quot;: &quot;.$line.&quot;\n&quot;);<br>
    }<br>}<br><br>// Inicio do script<br>$agi = new AGI();<br><br>$v = new validacao();<br><br>wlog(&quot;----------&quot;);<br>wlog(&quot;Inicio&quot;);<br>wlog(&quot;Parametro 1: &quot;.$argv[1]);<br><br>// $agi-&gt;conlog(&quot;Antes do IF: &quot;.$agi-&gt;get_variable(&quot;C_OK&quot;));<br>
$agi-&gt;verbose(&quot;Antes do IF: &quot;.$agi-&gt;get_variable(&quot;C_OK&quot;));<br><br>// if($v-&gt;validaCPF($argv[1]) || $v-&gt;validaCNPJ($argv[1])) {<br>if($v-&gt;validaCPF($argv[1])) {<br>        // CPF ou CNPJ OK<br>
    wlog(&quot;CPF ou CNPJ &#39;$argv[1]&#39; OK.&quot;);<br>        $agi-&gt;set_variable(&quot;C_OK&quot;, &quot;0&quot;);<br>} else {<br>        // CPF ou CNPJ NOK<br>    wlog(&quot;CPF ou CNPJ &#39;$argv[1]&#39; NOK.&quot;);<br>
        $agi-&gt;set_variable(&quot;C_OK&quot;, &quot;1&quot;);<br>}<br><br>$agi-&gt;say_number($argv[1]);<br>// $agi-&gt;conlog(&quot;Depois do IF: &quot;.$agi-&gt;get_variable(&quot;C_OK&quot;));<br>$agi-&gt;verbose(&quot;Depois do IF: &quot;.$agi-&gt;get_variable(&quot;C_OK&quot;));<br>
wlog(&quot;Fim.&quot;);<br>wlog(&quot;----------&quot;);<br><br>if($_log) {<br>    fclose($stdlog);<br>}<br><br>?&gt;<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 =&gt; s,1,NoOp(-------------------------------------)<br>exten =&gt; s,n,NoOp(----- SAN - URA01: Ler CPF/CNPJ -----)<br>
exten =&gt; s,n,NoOp(-------------------------------------)<br>exten =&gt; s,n,Set(C_OK=1)<br>exten =&gt; s,n,While($[${C_OK}=1])<br>exten =&gt; s,n,Wait(1)<br>exten =&gt; s,n,Read(CPFCNPJ,custom/ura01_cpf-cnpj,0)<br>exten =&gt; s,n,NoOp(-------------------------------------)<br>
exten =&gt; s,n,NoOp(----- SAN - URA01: Ler CPF/CNPJ: ${CPFCNPJ} -----)<br>exten =&gt; s,n,NoOp(----- C_OK antes AGI: ${C_OK}   -----)<br>exten =&gt; s,n,NoOp(-------------------------------------)<br>exten =&gt; s,n,AGI(san_cpfcnpj.php,${CPFCNPJ})<br>
exten =&gt; s,n,NoOp(-------------------------------------)<br>exten =&gt; s,n,NoOp(----- C_OK depois AGI: ${C_OK}   -----)<br>exten =&gt; s,n,NoOp(-------------------------------------)<br>exten =&gt; s,n,ExecIf($[${C_OK} = 1]?Playback(custom/ura01_cpf-ou-cnpj-invalido))<br>
exten =&gt; s,n,EndWhile()<br>exten =&gt; 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>[]&#39;s<br><br></div>Márcio Luís Günther<br><br></div></div>
</div>