Tenho um tutorial de call back só que não consegui imprementar aqui na empresa, 
será que o pessoal mais experiente da lista podia dar uma olhada.

Caso positivo segue abaixo:

CONFIGURAÇÃO DE CALLBACK

CallBack Externo

A idéia de utilizar o Call Back é: Ligar para um número, o sistema reconhecer de

quem é esse número, rejeitar a chamada e religar. Assim que a pessoa atender a 
ligação ela

pode discar para onde ela tem permissão.

Premissas:

Primeiro temos que ter um número de entrada no Asterisk, seja SIP, FXO ou E1

sendo a premissa básica ter a identificação do número chamador (bina). Em nosso

exemplo estaremos entendendo que a ligação seja recebida por um provedor SIP. 
Assim ele

deve estar devidamente configurado no sip.conf e funcionando (tanto entrada 
quanto

saída). Quando foi criado este provedor, foi inserido no sip.conf uma linha com 
a função

register => (lembra quando criamos a regra do Vono?) e no final da linha 
inserimos uma

barra (/) seguido da extensão que iria atender. Exemplo:

Register => login:se...@provedor.com:5060/entrada

Assim vamos fazer a referência com a extensão entrada. Provavelmente no teu

extensions.conf, na seção [default] deva/possa ter uma linha parecida com a 
linha abaixo

para que se possa atender a ligação:

exten => entrada,1,Dial(SIP/ramalinterno,60,rtT)

O que faremos é criar uma regra baseada na origem (bina) da ligação. Vamos

considerar que o número do seu celular com permissão para callback seja 
99887766.

Assim ADICIONE as seguintes linhas:

exten => entrada/99887766,1,NoOp(Realizando CallBack )

exten => entrada/99887766,2,Wait(1)

exten => entrada/99887766,3,System(cp /etc/callback/chamada.call 
/var/spool/asterisk/outgoing/)

exten => entrada/99887766,4,Hangup()

No exemplo acima a prioridade 1 não faz nada além de mostrar na tela a

mensagem "realizando callback ";

A prioridade 2 aguarda 1 segundo

A prioridade 3 executa um comando no linux através da aplicação System. No

exemplo acima ele copia o arquivo chamada.call para um diretório específico do 
asterisk.

É aqui que ele realiza o callback. Este item é o principal e veremos na 
seqüência.

A prioridade 4 desliga/rejeita a ligação. Assim como pode ver, não houve

atendimento, portanto não houve tarifação da ligação recebida.

Note que não foi deletada a primeira extensão (exten=>entrada,1,Dial....) pois

esta serve para os outros números que ligarem para o número do provedor sip.

Configurando o callback

Primeiro temos que saber como realizamos a ligação para o seu celular. Estou

considerando que você vá utilizar o Vono para retornar, altere conforme a sua 
necessidade.

Para isso devemos criar um arquivo chamado chamada.call, no exemplo acima este 
arquivo

está na pasta /etc/callback.

O arquivo ficará da seguinte forma:

Channel: SIP/99887...@vono

Context: callback

CallerID: 99887766 <99887766>

Extension: s

MaxRetries: 0

RetryTime: 2

WaitTime:10

Priority: 1

O arquivo acima (chamada.call), está dizendo que será feito uma ligação

(aplicação Dial) passando os parâmetros, ou seja, para SIP/99887...@vono. Após 
isso o

sistema "jogará" esta ligação num contexto chamado "callback" na extensão "s" na

prioridade "1".

Uma vez existindo este arquivo, se copiarmos ele para o diretório

/var/spool/asterisk/outgoing, o Asterisk sempre está lendo este diretório e se 
encontrar o

arquivo ele tentará efetuar a chamada. Assim neste exemplo necessitamos de 
criar o

contexto [callback] no extensions.conf, Exemplo abaixo:

[callback]

exten => s,1,Answer()

exten => s,2,ResponseTimeout(60)

exten => s,3,WaitExten(60|m[(default)])

exten => _1XXX,1,Dial(SIP/${EXTEN},60,rtT)

Quando o asterisk fizer a chamada ele automaticamente aciona o contexto

definido no arquivo chamada.call, no nosso caso o contexto é [callback], 
extensão s,

prioridade 1.

A prioridade 1 atende o canal mesmo que a chamada de

saída ainda esteja sendo processada.

A prioridade 2 é setado um timeout, ou seja se o celular não atender em 60

segundos ele desliga o canal sip desta chamada.

A prioridade 3 fica aguardando algo ser digitado, durante 60 segundos e enquanto

isso fica-se ouvindo uma música de espera. Toda permissão para discar deve ser 
colocada

dentro deste contexto. No caso acima eu coloquei que o celular chamado somente 
pode

discar para ramais internos começando com 1XXX. Caso queira dar permissão de 
ligação

externa basta adicionar DENTRO DESTE CONTEXTO as extensões necessárias.
_______________________________________________
Participe do IV Encontro VoIPCenter, 16 a 18 de setembro - São Paulo.
VoIP, Asterisk e Convergência de Redes.
http://www.encontrovoipcenter.com.br

Compre uma camiseta da AsteriskBrasil.org!
http://www.voipmania.com.br

Acesse o canal IRC de discussão sobre Asterisk em Português Brasileiro na rede 
Freenode.net: #asterisk-br
_______________________________________________
Lista de discussões AsteriskBrasil.org
AsteriskBrasil@listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil

Responder a