<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>Vanessa,</p>
    <p>Segue abaixo um script que uso.<br>
    </p>
    <p>Ps: Como fiz alguns ajustes retirando coisas aqui da empresa do
      script pode ser que tenha alguns ajuste ou erro a se corrigir, mas
      ja serve como base.</p>
    <p><br>
    </p>
    <p>Para maiores informações consultar:
      <a class="moz-txt-link-freetext" href="http://www.voip-info.org/wiki/view/Asterisk+auto-dial+out">http://www.voip-info.org/wiki/view/Asterisk+auto-dial+out</a><br>
    </p>
    <p><br>
    </p>
    <p>Extensions.conf</p>
    <p>exten = _X.,1,AGI(callback.php)<br>
    </p>
    <p><br>
    </p>
    <pre>#!/usr/bin/php -q</pre>
    <pre>&lt;?php</pre>
    <pre>
/*</pre>
    <pre>|--------------------------------------------------------------------------</pre>
    <pre>| READ-ME</pre>
    <pre>|--------------------------------------------------------------------------</pre>
    <pre>| Salve este conteúdo em /var/lib/asterisk/agi-bin/callback.php</pre>
    <pre>|</pre>
    <pre>| Antes de executar este script será necessário instalar e habilitar as bibliotecas</pre>
    <pre>|</pre>
    <pre>| apt-get install -y php-http php5-dev libcurl3 libpcre3-dev libcurl4-openssl-dev</pre>
    <pre>|</pre>
    <pre>| Copiar a biblioteca PHPAGI disponível em (<a class="moz-txt-link-freetext" href="http://phpagi.sourceforge.net/">http://phpagi.sourceforge.net/</a>) </pre>
    <pre>| no diretório /var/lib/asterisk/agi-bin/phpagi-2.20</pre>
    <pre>*/</pre>
    <pre>
require_once __DIR__.'/phpagi-2.20/phpagi.php';</pre>
    <pre>
</pre>
    <pre>openlog(pathinfo(__FILE__)['basename'], LOG_PID | LOG_PERROR, LOG_LOCAL0);</pre>
    <pre>
try{</pre>
    <pre>        $agi = new AGI();</pre>
    <pre>
        $agi-&gt;exec('VERBOSE','"Entrada da CallBack" 4');</pre>
    <pre>        $caller = '';</pre>
    <pre>        $exten = '';</pre>
    <pre>        $channel = '';</pre>
    <pre>        </pre>
    <pre>        $outputContext = 'saida';</pre>
    <pre>        $forwardTo = '1000';</pre>
    <pre>
        $uniqueId = $agi-&gt;request['agi_uniqueid'];</pre>
    <pre>
        if ((isset($agi-&gt;request['agi_callerid'])) &amp;&amp; ($agi-&gt;request['agi_callerid'] != ''))</pre>
    <pre>                $caller = $agi-&gt;request['agi_callerid'];</pre>
    <pre>
        if ((isset($agi-&gt;request['agi_extension'])) &amp;&amp; ($agi-&gt;request['agi_extension'] != ''))</pre>
    <pre>                $exten = $agi-&gt;request['agi_extension'];</pre>
    <pre>
        if ((isset($agi-&gt;request['agi_channel'])) &amp;&amp; ($agi-&gt;request['agi_channel'] != ''))</pre>
    <pre>                $channel = $agi-&gt;request['agi_channel'];</pre>
    <pre>
        if (empty($caller) || empty($exten) || empty($channel) || (strlen($channel) &lt; 2))</pre>
    <pre>        {</pre>
    <pre>                $agi-&gt;exec('VERBOSE','"CallerID, Channel ou Exten não fornecidos" 3');</pre>
    <pre>                die();</pre>
    <pre>        }</pre>
    <pre>
</pre>
    <pre>        $cId = 'cb-' . date('U') . '-' . $caller;</pre>
    <pre>        $filename = 'call_'.$cId.'.call';</pre>
    <pre>
        if (strlen($cId) &gt; 19)</pre>
    <pre>                $cId = substr($cId,0,19);</pre>
    <pre>
        try{</pre>
    <pre>                $myfile = fopen("/tmp/{$filename}", "w");</pre>
    <pre>        } catch (Exception $e) {</pre>
    <pre>                throw new Exception("Falha abrindo o arquivo de ligação");</pre>
    <pre>        }</pre>
    <pre>
</pre>
    <pre>        $txt = "Channel: Local/".$caller."@".$outputContext."\n";</pre>
    <pre>        fwrite($myfile, $txt);</pre>
    <pre>
        $txt = "Context: ".$outputContext."\n";</pre>
    <pre>        fwrite($myfile, $txt);</pre>
    <pre>
        $txt = "Extension: ".$forwardTo."\n";</pre>
    <pre>        fwrite($myfile, $txt);</pre>
    <pre>
        $txt = "Priority: 1\n";</pre>
    <pre>        fwrite($myfile, $txt);</pre>
    <pre>
        $txt = "CallerID: &lt;$caller&gt;\n";</pre>
    <pre>        fwrite($myfile, $txt);</pre>
    <pre>
        $txt = "Codecs: gsm,alaw,ulaw\n";</pre>
    <pre>        fwrite($myfile, $txt);</pre>
    <pre>
        $txt = "MaxRetries: 3\n";</pre>
    <pre>        fwrite($myfile, $txt);</pre>
    <pre>
        $txt = "RetryTime: 45\n";</pre>
    <pre>        fwrite($myfile, $txt);</pre>
    <pre>
        $txt = "WaitTime: 90\n";</pre>
    <pre>        fwrite($myfile, $txt);</pre>
    <pre>
        $txt = "Account: $cId\n";</pre>
    <pre>        fwrite($myfile, $txt);</pre>
    <pre>
        $txt = "Archive: yes\n";</pre>
    <pre>        fwrite($myfile, $txt);</pre>
    <pre>
        $txt = "SetVar: CHANNEL(language)=pt_BR\n";</pre>
    <pre>        fwrite($myfile, $txt);</pre>
    <pre>
        $txt = "SetVar: CDR(userfield)=$cId\n";</pre>
    <pre>        fwrite($myfile, $txt);</pre>
    <pre>
        fclose($myfile);</pre>
    <pre>
        try{</pre>
    <pre>                exec('touch -d "$(date -r /tmp/'.$filename.') + 20 seconds" "/tmp/'.$filename.'"');</pre>
    <pre>        } catch (Exception $e) {}</pre>
    <pre>
        exec('sudo chmod 777 /tmp/'.$filename.'; sudo mv /tmp/'.$filename.' /var/spool/asterisk/outgoing/');</pre>
    <pre>
        //Antende a chamada</pre>
    <pre>        $agi-&gt;answer();</pre>
    <pre>
        sleep(1);</pre>
    <pre>
        //Reset o CDR, para no relatório só marcar a chamada como atendida quando realmente for atendida por uma fila</pre>
    <pre>        //$agi-&gt;exec('ResetCDR','v');</pre>
    <pre>
</pre>
    <pre>        //Toca o audio de callback</pre>
    <pre>        $agi-&gt;stream_file('nomedoarquivodeaudio');</pre>
    <pre>
        //Desliga a ligação</pre>
    <pre>        $agi-&gt;hangup();</pre>
    <pre>
        return 0;</pre>
    <pre>
} catch (Exception $e) {</pre>
    <pre>        $agi-&gt;exec("NOOP", '"'.$e-&gt;getMessage().'"');</pre>
    <pre>        $agi-&gt;exec("GOTO", '"interno,'.$exten.',1"');</pre>
    <pre>        return 0;</pre>
    <pre>}</pre>
    <pre>
closelog();</pre>
    <p></p>
    <pre>
</pre>
    <p><br>
    </p>
    <pre class="moz-signature" cols="72">Att,
Hélvio Junior
dCAA - Digium Certified Asterisk Administrator
SafeId - Gestão de identidades e Acessos
+55 41 | 9855-9300, single-sign-on.com.br
<a class="moz-txt-link-abbreviated" href="mailto:helvio.junior@safetrend.com.br">helvio.junior@safetrend.com.br</a>
</pre>
    <div class="moz-cite-prefix">Em 14/09/2016 12:01, Vanessa Sather
      escreveu:<br>
    </div>
    <blockquote
      cite="mid:57d96666a6cba_6d9a1579f7b633e4924e9@a4-winter8.mail"
      type="cite">
      <div>Bom dia.</div>
      <div> </div>
      <div>Sei que é pedir demais porem estou na urgência e pergunto se
        alguem tem um script simples para dialplan mesmo contemplando
        callback?</div>
      <div> </div>
      <div>Gostaria de dar um toque no meu número fixo através do
        celular e o mesmo reconhecer meu cel e retornar a chamada.</div>
      <div> </div>
      <div>Muito obrigada.</div>
      <div>Vanessa.</div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
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
Intercomunicador e acesso remoto via rede IP e telefones IP
Conheça todo o portfólio em <a class="moz-txt-link-abbreviated" href="http://www.Khomp.com">www.Khomp.com</a>
_______________________________________________
Para remover seu email desta lista, basta enviar um email em branco para <a class="moz-txt-link-abbreviated" href="mailto:asteriskbrasil-unsubscribe@listas.asteriskbrasil.org">asteriskbrasil-unsubscribe@listas.asteriskbrasil.org</a></pre>
    </blockquote>
    <br>
  </body>
</html>