<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><?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->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->request['agi_uniqueid'];</pre>
<pre>
if ((isset($agi->request['agi_callerid'])) && ($agi->request['agi_callerid'] != ''))</pre>
<pre> $caller = $agi->request['agi_callerid'];</pre>
<pre>
if ((isset($agi->request['agi_extension'])) && ($agi->request['agi_extension'] != ''))</pre>
<pre> $exten = $agi->request['agi_extension'];</pre>
<pre>
if ((isset($agi->request['agi_channel'])) && ($agi->request['agi_channel'] != ''))</pre>
<pre> $channel = $agi->request['agi_channel'];</pre>
<pre>
if (empty($caller) || empty($exten) || empty($channel) || (strlen($channel) < 2))</pre>
<pre> {</pre>
<pre> $agi->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) > 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: <$caller>\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->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->exec('ResetCDR','v');</pre>
<pre>
</pre>
<pre> //Toca o audio de callback</pre>
<pre> $agi->stream_file('nomedoarquivodeaudio');</pre>
<pre>
//Desliga a ligação</pre>
<pre> $agi->hangup();</pre>
<pre>
return 0;</pre>
<pre>
} catch (Exception $e) {</pre>
<pre> $agi->exec("NOOP", '"'.$e->getMessage().'"');</pre>
<pre> $agi->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>