[AsteriskBrasil] RES: Callback

Neulo Alves neulo em uol.com.br
Quinta Abril 28 15:20:52 BRT 2011


Luiz existe sim uma aplicação de callback, foi criado por Ricardo para
versão asterisk 1.2 e 1.4

 

Outra forma de fazer isso seria no extensions.conf utilizando um arquivo
.call

 

Segue exemplo passo a passo:

 

Para teste você pode tirar toda essa parte de banco e identificação.

 

1-      Recebimento da chamada, (no meu caso eu so permito callback dos
números cadastrados e descarto o resto.)

[khomp-01-03]

 

;;;Atende Celular Vivo 9153XXXX

     

     exten => s,1,Set(ip_banco=127.0.0.1)

     exten => s,n,Set(usuario=asteriskuser)

     exten => s,n,Set(senha=senha) 

     exten => s,n,Set(banco=asteriskcdrdb)

     exten => s,n,NoOp(${CALLERID(name)})

     exten => s,n,Set(consulta= select\ callback\, x.telefone\  from\ agenda
a\, agendaux x\ where\ a.codigo =\ x.codage\ and\ a.callback=\ 1\ and\
x.telefone like \'%\${CALLERID(num):2}\'\)

     exten => s,n(consulta),MYSQL(Connect connid ${ip_banco} ${usuario}
${senha} ${banco})

     exten => s,n,MYSQL(Query resultid ${connid} ${consulta})

     exten => s,n,MYSQL(Fetch fetchid ${resultid} callback\ nrtelefone)

     exten => s,n,NoOp(Status da busca ${callback})

     exten => s,n,GotoIf($["${callback}" = "1"]?40:51)

 

     exten => s,40,NoOp(Realizando callback para ${CALLERID(num)})

     exten => s,41,system(cp /etc/callback/callback.call
/etc/callback/callback.tmp.call)

     exten => s,42,agi(identifica.php|${nrtelefone})

     exten => s,43,system(echo 'Channel: khomp/G${retorno}/${nrtelefone:2}'
>> /etc/callback/callback.tmp.call) ******  aqui você coloco o tronco de
saída)

     exten => s,44,system(echo 'CallerID: ${nrtelefone:2}
"<"${nrtelefone}">"' >> /etc/callback/callback.tmp.call) ****** idetificacao
do telefone destino

     exten => s,45,system(echo 'Extension: ${nrtelefone}' >>
/etc/callback/callback.tmp.call)  ***** telefone destino

     exten => s,46,system(mv /etc/callback/callback.tmp.call
/etc/asterisk/${nrtelefone}.call)    ***** move o arquivo para pasta
callback

     exten => s,47,System(bash /etc/asterisk/callback.sh ${nrtelefone})
***** muda data de criação e move para pasta outgoing do asterisk

     exten => s,48,MYSQL(Clear ${resultid})

     exten => s,49,MYSQL(Disconnect ${connid})

     exten => s,50,Hangup()

 

     exten => s,51,NoOp(Desligando chamada)   ***** senão esta cadastrado
rejeita.

     exten => s,52,MYSQL(Clear ${resultid})

     exten => s,53,MYSQL(Disconnect ${connid})

     ;exten => s,n,Dial(IAX2/SAP2-TRUNK/8000,90,Tt)

     exten => s,n,Hangup()

 

2-      Context Callback

 

[callback]

  exten => s,1,Answer

  exten => s,n,BackGround(OpCallBack)    ***** URA

  exten => s,n,hangup()

 

  exten => 1,1,Dial(destino 1)

  exten => 2,1,Dial(destino 2)

  exten => 3,1,Dial(destino 3)

  exten => 4,1,Dial(destino 4)

  exten => 5,1,Dial(destino 5)

  exten => 6,1,Dial(destino 6)

  exten => *,1,DISA(no-password|diretoria)    * para efetuar ligações
utilizando callback

 

 

3 – Arquivo .call utilizado no extensions.

 

Context: callback

MaxRetries: 2

RetryTime:15

WaitTime:20

Priority: 1

Account: Callback

 

4 – Arquivo callback.sh (serve para atrasar em alguns segundos a chamada do
callback, senão o asterisk retorna antes da pessoa desligar.

 

#!/bin/sh

DESTINO=$1

 

 

# Altera a Data do arquivo para faze a ligação depois de 10s.

NOW=`date +%s`

let "NOW=$NOW+10"

TOUCH_TMSP=`date -d "1970-01-01 $NOW sec GMT" +%Y%m%d%H%M.%S`

touch -t $TOUCH_TMSP /etc/asterisk/"$DESTINO".call

 

mv /etc/asterisk/"$DESTINO".call /var/spool/asterisk/outgoing/

chmod 777 /var/spool/asterisk/outgoing/"$DESTINO".call

 

#Fim do Script

 

Eu uso callback desta forma, não foi eu que criei só peguei aqui na lista.

 

Neulo Alves

 

 

 

De: asteriskbrasil-bounces em listas.asteriskbrasil.org
[mailto:asteriskbrasil-bounces em listas.asteriskbrasil.org] Em nome de Luiz
Le-Fort (luiz em trofel.com)
Enviada em: quinta-feira, 28 de abril de 2011 14:55
Para: asteriskbrasil em listas.asteriskbrasil.org
Assunto: [AsteriskBrasil] Callback

 

Ainda estou somente na era de perguntas, mas logo chego no nivel de ajudar a
todos tmb.

Não sei se o nome correto é Callback, tipo, quero ligar para um número
celular corporativo, e o asterisk me retornar a ligação, e logo ser atendido
por uma ura por exemplo.

Procurei sobre "callback" e não encontrei nada nativo do asterisk em
relação, somente algo de baixar e compilar, e como sou novato nisso ainda
não queria arriscar.

Alguma sugestão?

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20110428/15029cf4/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil