[AsteriskBrasil] callback
Marcio Aparecido Sitoni
marciositoni em ruthjunqueira.org.br
Terça Junho 9 13:39:27 BRT 2009
Nao Eder,
Tirei de um tuto que ensina como fazer call back, mas nao consegui fazer.
vou postar 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:senha em 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/99887766 em 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/99887766 em 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.
----- Original Message -----
From: eder souza
To: asteriskbrasil em listas.asteriskbrasil.org
Sent: Tuesday, June 09, 2009 12:07 PM
Subject: Re: [AsteriskBrasil] callback
nunca testei nada parecido no meu extensions isso funciona com vc ?
Eng Eder de Souza
--- Em ter, 9/6/09, Marcio Aparecido Sitoni <marciositoni em ruthjunqueira.org.br> escreveu:
De: Marcio Aparecido Sitoni <marciositoni em ruthjunqueira.org.br>
Assunto: [AsteriskBrasil] callback
Para: asteriskbrasil em listas.asteriskbrasil.org
Data: Terça-feira, 9 de Junho de 2009, 10:58
Callback
exten => 5804/99999191,1,NoOp(Realizando CallBack)
exten => 5804/99999191,2,Wait(1)
Este procedimento esta correto?
Vem a ligação do ddr para esse ramal ele identifica o celular e atende a ligação???
Obrigado
-----Anexo incorporado-----
_______________________________________________
Openmoko Freerunner, primeiro telefone open source, disponível no Brasil rodando o Android da Google.
http://www.neodroid.com
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 em listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
------------------------------------------------------------------------------
Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - Celebridades - Música - Esportes
------------------------------------------------------------------------------
_______________________________________________
Openmoko Freerunner, primeiro telefone open source, disponível no Brasil rodando o Android da Google.
http://www.neodroid.com
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 em listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20090609/55cf472a/attachment-0001.htm
Mais detalhes sobre a lista de discussão AsteriskBrasil