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