[AsteriskBrasil] AGI

dioedu@yahoo.com.br dioedu em yahoo.com.br
Terça Dezembro 13 22:07:34 BRT 2005


Valeu Caio, 

Mas entenda o meu problema:

Se eu utilizar o DeadAGI, o asterisk não informa que o canal foi desligado 
(Hangup) então não tenho como saber de jeito nenhum. Pelo menos de acordo com 
os testes que realizei. Ele informa Hangup apenas depois de executar o 
script.

Se eu utilizar o AGI, ao desligar o canal, o script pára de ser executado 
automaticamente. E ao entrar em outro AGI que esteja para ser executado no 
contexto h (hangup), devo identificar qual chamada que desligou para poder 
tratar as informações que quero. Isto vai dar um trabalho, acredito eu, 
grande se tratando de 120 ligações que podem ocorrer simultâneas.


A melhor forma de tratar isto, pelo que estou vendo, será verificar a resposta 
após o comando AGI, que devolve -1 para hangup e 0 para script executado até 
o final. Mas você sabe como eu pego este retorno no extensions.conf ?

Abraços,

Diógenes


On Monday 12 December 2005 04:14, Caio Begotti wrote:
> On Friday 09 December 2005 22:46, dioedu em yahoo.com.br wrote:
> > Uma possibilidade, que não é a mais atrativa, é utilizando o comando AGI
> > no extensions.conf. Com esse comando, o script é executado até o fim ou
> > até o chamador desligar. E depois chamar outro script quando a chamada
> > for desligada. Neste caso, perco todas as minhas variáveis setadas no
> > primeiro script. Vai ficar um pouco mais difícil de administrar, se
> > pensando em 120 canais.
>
> Você pode declarar variáveis em qualquer AGI e lê-las em qualquer outro
> lugar, só dependendo de como declarar elas (SetGlobalVar pra globais no
> Asterisk e SetEnv pra de sistema). Teu script não é de sistema? Então...
> :-) e você pode ver o código de saída do script pra saber se houve um
> hangup também, caso o DeadAGI não funcione igualmentemente pro seu caso.
>
> Isso não resolve?


Mais detalhes sobre a lista de discussão AsteriskBrasil