Re: [AsteriskBrasil] Callback simples

2016-09-14 Por tôpico Helvio Junior

Vanessa,

Segue abaixo um script que uso.

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.



Para maiores informações consultar: 
http://www.voip-info.org/wiki/view/Asterisk+auto-dial+out



Extensions.conf

exten = _X.,1,AGI(callback.php)


#!/usr/bin/php -q

http://phpagi.sourceforge.net/)

| no diretório /var/lib/asterisk/agi-bin/phpagi-2.20

*/

require_once __DIR__.'/phpagi-2.20/phpagi.php';

openlog(pathinfo(__FILE__)['basename'], LOG_PID | LOG_PERROR, LOG_LOCAL0);

try{

$agi = new AGI();

$agi->exec('VERBOSE','"Entrada da CallBack" 4');

$caller = '';

$exten = '';

$channel = '';




$outputContext = 'saida';

$forwardTo = '1000';

$uniqueId = $agi->request['agi_uniqueid'];

if ((isset($agi->request['agi_callerid'])) && 
($agi->request['agi_callerid'] != ''))

$caller = $agi->request['agi_callerid'];

if ((isset($agi->request['agi_extension'])) && 
($agi->request['agi_extension'] != ''))

$exten = $agi->request['agi_extension'];

if ((isset($agi->request['agi_channel'])) && 
($agi->request['agi_channel'] != ''))

$channel = $agi->request['agi_channel'];

if (empty($caller) || empty($exten) || empty($channel) || 
(strlen($channel) < 2))

{

$agi->exec('VERBOSE','"CallerID, Channel ou Exten não 
fornecidos" 3');

die();

}

$cId = 'cb-' . date('U') . '-' . $caller;

$filename = 'call_'.$cId.'.call';

if (strlen($cId) > 19)

$cId = substr($cId,0,19);

try{

$myfile = fopen("/tmp/{$filename}", "w");

} catch (Exception $e) {

throw new Exception("Falha abrindo o arquivo de ligação");

}

$txt = "Channel: Local/".$caller."@".$outputContext."\n";

fwrite($myfile, $txt);

$txt = "Context: ".$outputContext."\n";

fwrite($myfile, $txt);

$txt = "Extension: ".$forwardTo."\n";

fwrite($myfile, $txt);

$txt = "Priority: 1\n";

fwrite($myfile, $txt);

$txt = "CallerID: <$caller>\n";

fwrite($myfile, $txt);

$txt = "Codecs: gsm,alaw,ulaw\n";

fwrite($myfile, $txt);

$txt = "MaxRetries: 3\n";

fwrite($myfile, $txt);

$txt = "RetryTime: 45\n";

fwrite($myfile, $txt);

$txt = "WaitTime: 90\n";

fwrite($myfile, $txt);

$txt = "Account: $cId\n";

fwrite($myfile, $txt);

$txt = "Archive: yes\n";

fwrite($myfile, $txt);

$txt = "SetVar: CHANNEL(language)=pt_BR\n";

fwrite($myfile, $txt);

$txt = "SetVar: CDR(userfield)=$cId\n";

fwrite($myfile, $txt);

fclose($myfile);

try{

exec('touch -d "$(date -r /tmp/'.$filename.') + 20 seconds" 
"/tmp/'.$filename.'"');

} catch (Exception $e) {}

exec('sudo chmod 777 /tmp/'.$filename.'; sudo mv /tmp/'.$filename.' 
/var/spool/asterisk/outgoing/');

//Antende a chamada

$agi->answer();

sleep(1);

//Reset o CDR, para no relatório só marcar a chamada como atendida 
quando realmente for atendida por uma fila

//$agi->exec('ResetCDR','v');

//Toca o audio de callback

$agi->stream_file('nomedoarquivodeaudio');

//Desliga a ligação

$agi->hangup();

return 0;

} catch (Exception $e) {

$agi->exec("NOOP", '"'.$e->getMessage().'"');

$agi->exec("GOTO", '"interno,'.$exten.',1"');

return 0;

}

closelog();


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
helvio.jun...@safetrend.com.br

Em 14/09/2016 12:01, Vanessa Sather escreveu:

Bom dia.
Sei que é pedir demais porem estou na urgência e pergunto se alguem 
tem um script simples para dialplan mesmo contemplando callback?
Gostaria de dar um toque no meu número fixo através do celular e o 
mesmo reconhecer meu cel e retornar a chamada.

Muito obrigada.
Vanessa.


___
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 www.Khomp.com
___
Para remover seu email desta lista, basta enviar um email em branco para 
asteriskbrasil-unsubscr...@listas.asteriskbrasil.org


___
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 www.Khomp.com

[AsteriskBrasil] Callback simples

2016-09-14 Por tôpico Vanessa Sather
Bom dia.
 
Sei que é pedir demais porem estou na urgência e pergunto se alguem tem um script simples para dialplan mesmo contemplando callback?
 
Gostaria de dar um toque no meu número fixo através do celular e o mesmo reconhecer meu cel e retornar a chamada.
 
Muito obrigada.
Vanessa.___
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 www.Khomp.com
___
Para remover seu email desta lista, basta enviar um email em branco para 
asteriskbrasil-unsubscr...@listas.asteriskbrasil.org