[AsteriskBrasil] Como fazer a integracao com java, AGI e AMI

Carlos Toguchi carlos.toguchi em gmail.com
Quarta Junho 12 11:03:43 BRT 2013


Douglas,
Quando disse regas em AGI é que uma chamada a função AGI() no Asterisk
requer uma série de coisas acontencedo do lado do sistema operacional para
que a apliacação seja executada e os parametros passados apra a aplicação
durante a execução, vc não precisa saber deste detalhas para escreveer a
apliacção a ser chamada pela função AGI do Asterisk. Então deixa isso de
lado.

Com realção a AGI veja o link :
http://www.voip-info.org/wiki/view/Asterisk+AGI
Mas, acho que alguem aqui já postou. Vc usa uma AGI quando vc rcisa que
sejam executadas coisas que não possiveis serem executadas pelas funções
existentes no Asterisk, coisas um outro programa pode executar. Verificar a
portabilidade de um número, O UDSON escreveu um e-mail na outra lista muito
bom de como usar um AGI para isso.
Vc tem usando billing e quer que seu cliente verifique seu saldo, uma
aplicação pode recuperar este saldo, vc vai vhamar pelo AGI.
O FastAGI permite que vc chame uma aplicação remotamente, veja :
http://www.voip-info.org/wiki/view/Asterisk+AGI e
http://www.voip-info.org/wiki/view/Asterisk+FastAGI

Se você está efetuando uma chamada FAstAGI deve exitir uma aplicação
respondendo a requisição naquele IP, O asterisk-java funciona womo um
ampacotador (wrapper) para que vc escreva uma aplicação java para ser
chamada por FastAGI ou escrever uma aplicação AMI. Ele fornece uma
interface para que vc possa escrever em Java AGI ou um AMI.

-----------------------------------------------------------------------------------------------------------------------------

O AMI não é usado apenas para monitoramento, mas são para isso, veja o
exemplo que dei uma plaicação eviando um comando para o Asterisk efetuar
uma ligação, no próprio site do asterisk-java.org tem um exemplo.
No próprio site que vc enviou do Asterisk-java no FAQ tem uma tabela que
mostra o que pode ou não ser efetuado usando AMI e AGI.

-----------------------------------------------------------------------------------------------------------------------------

No video que vc enviou o Vicente escreveu uma aplicação para gerenciar o
Asterisk.
E isto nào envolve usar apenas AGI ou AMI.
Quando na aplicação dele ele cria um plano de discagem é certo quele altera
a conficuração do dialplan.

Tenter ser mais especifico a aplicaçào que fez é grande e complexa,
discutir cada um dos itens da aplica'ão deles está totalmente fora do
escopo da lista eu acho, sem contar que o Vicente correta para falar sobre
ela, qualquer outro estaria especulando como ele fez o que.

Att.
Carlos




2013/6/11 douglas henrique de morais <oticasdouglas em gmail.com>

> Agradeco a todos pela atencao.
>
> Carlos, ainda nao ficou claro a diferenca entre AGI e AMI. Quando vc diz
> que AGI define um conjuntos de regras vc esta se referindo ao plano de
> discagem ? Atraves de AGI eu posso criar um plano de discagem dinamicamente
> fazendo uso de um banco de dados relacional ? E o AMI ? serve apenas para
> monitorar o Asterisk ? Pra saber quem ligou, quanto tempo durou a ligacao,
> atender, gerencia filas, essas coisas ?
>
> Pesquisando mais um pouco encontrei o Asterisk-Java. No site fala de
> FastAgi e Manager API. Mas ainda nao entendi a diferenca entre os dois.
> Pude perceber pelo exemplo que com o Manager API eu poderia criar uma
> aplicacao java stand alone e interagir com Asterisk atraves de TCP/IP. Isso
> se daria de forma direta, sem um servidor intermediario ? Porque pelo que
> me parece o FastAgi precisa que seja executado uma especie de servidor que
> ficara responsavel como intermediario entre o Asterisk e a aplicacao java.
> Pelo menos foi isso que entendi quando o exemplo do site
> http://www.asterisk-java.org/development/tutorial.html  diz para executar
> o asterisk-java.jar.
>
> Alias,* *é a mesma coisa que o Jefferson orienta a fazer no exemplo do
> site http://www.asteriskdocs.com.br/blog. Mas quando eu devo usar a
> abordagem AGI e quando devo usar a abordagem AMI ?
>
> O meu proposito era construir uma interface web onde eu poderia
> administrar o asterisk, gerenciar filas, configurar novas contas SIP e IAX.
>
>
>
>
> Em 11 de junho de 2013 13:12, Carlos Toguchi <carlos.toguchi em gmail.com>escreveu:
>
> Para completar a minha resposta se nào ficou claro:
>> imagine o seguinte . Vc tem o asterisk e o mundo extior (uma aplicação).
>> O asterisk pode se comunicar com a aplicação ou a aplicação pode se
>> comunicar com o Asterisk, Logo vc pode ter :
>> ----------------------------                 -----------------
>> | ASTERISK         |--------------> | Aplicação |
>> ---------------------------                  ------------------
>>
>> Nest caso o Asterisk precisa interagir com a aplicação:
>> Exemplo alguem liga para um numero para :
>> 1) Talvez intergir com uma URA de modo que receba por e-mail seu saldo em
>> um site de compras
>> ou
>> 2) Interagir com uma URA para que um determinado servidor reinicie (de um
>> reboor)
>>
>> Você vai usar um AGI, do Asterisk chama uma aplicação pasando os
>> parametros necessários apra o programa, como passar e receber os
>> paarametors pela apliacção depende da linguagem de programação, como vc
>> chama um programa no comando de linha com parametros e utliza estes
>> parametros na aplicação, se vc ficer em C/C++, trata de um modo em PHP de
>> outro e em Java de outro modo ainda.
>>
>>
>> Agora existe a situação contraria:
>> ----------------------------                 -----------------
>> | ASTERISK         |<-------------- | Aplicação |
>> ---------------------------                  ------------------
>>
>> Nste caso é a apicação que está interagindo com Asterisk, exemplo:1)
>> Uma aplicação que monitora os servidores e envia um comando apra o
>> Astrerisk discar para o telefone do adminsitrador dos servidor e tocar uma
>> mensagem de alerta
>>
>> 2) Uma aplicação de uma empresa que verifica se cos clientes pagaram suas
>> faturas, que não tenham efetuado o pagamento a apliação dispara um comando
>> par ao Asterisk discar para os cliente e tocar uma mensagem do tipo "Até a
>> presente data constatamos que sua última faura encontra-se em aberto"
>>
>> Você vai usar AMI.
>>
>> Um aplicação AMI consegue eviar muitos dos comdanos que vc executa na
>> console do Asterisk, tal como o comando CALL e etc.
>> Verifique a documentação do AMI.
>>
>> Este é um tópico que percebo é pouco explorado aqui que a a facilidade do
>> Asterisk em CTI.
>>
>> Já vi muito caras fazendo coisas junto o ARDUINO.
>> Tipo usar Asterisk mais Arduino para :
>>
>> 1) Ligar para o Asterisk para disparar um comoando e com o Arduino ligar
>> um equipamento  para liberar ração para o cachorro ou para os peixes no
>> aquário (Ok tem pessoas no mundo com tempo de sobra para pensar nestas
>> coisas)
>>
>> Para quem gosta de programar faça uma busca por Asterisk Arduino
>>
>> Até
>> Carlos
>>
>>
>>
>> 2013/6/11 douglas henrique de morais <oticasdouglas em gmail.com>
>>
>>> Obrigado Carlos... vou estudar mais um pouquinho... rs
>>>
>>>
>>> Em 10 de junho de 2013 20:44, Carlos Toguchi <carlos.toguchi em gmail.com>escreveu:
>>>
>>> AGI - Asterisk Gateway Interface
>>>> AMI - Asterisk Manager API
>>>>
>>>> AGI define uma Interface, ou seja, um conjuntos de regras que permite o
>>>> ambiente do Asterisk chamar um programa, passando valores e reebendo
>>>> valores através do código de retorno do programa, mais ou menos isso.
>>>>
>>>> Já o AMI define um protocole de modo que um programa pode interagir com
>>>> o Asterisk comunicando-se través de uma conexãp TCP/IP. Basicamente vc cria
>>>> um socket escrevendo e lendo valores través deste socket.
>>>>
>>>> Já criar conta SIP com java, tenha em mente que se vc usa realtime, vc
>>>> deve criar os dados na tabela do banco de daos, então ok. Se vc não usa o
>>>> realtime as contas sip são definie em um arquivo com a extensão conf
>>>> (sip.conf e etc.), logo seu programa java deve conseguir escrever neste
>>>> arquivo.
>>>>
>>>> No AMI Asterisk tem ou tinha problemas com muitas chamadas
>>>> efetuadas por vários clientes simultaneos apra ele, tanto que existem
>>>> alguns programas de proxy para chamadas AMI, os Asterisk Manager Proxy.
>>>>
>>>> Att.
>>>> Carlos
>>>>
>>>>
>>>>
>>>> 2013/6/10 douglas henrique de morais <oticasdouglas em gmail.com>
>>>>
>>>>> Boa noite amigos,
>>>>>
>>>>> sou novato em asterisk. Por enquanto apenas instalei e esta tudo
>>>>> perfeito.
>>>>>
>>>>> Gostaria de saber oque é qual a diferenca entre AGI e AMI.
>>>>>
>>>>> Atualmente programo em JAVA e gostaria de saber como faco integracao
>>>>> do Asterisk e Java. E no que a biblioteca Java-asterisk pode me ajudar.
>>>>>
>>>>> Seria possivel criar contas SIP a partir do Java  ?
>>>>>
>>>>> _______________________________________________
>>>>> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1;
>>>>> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7;
>>>>> Intercomunicadores para acesso remoto via rede IP. Conheça em
>>>>> www.Khomp.com.
>>>>> _______________________________________________
>>>>> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7.
>>>>> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express.
>>>>> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br.
>>>>> _______________________________________________
>>>>> Para remover seu email desta lista, basta enviar um email em branco
>>>>> para asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1;
>>>> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7;
>>>> Intercomunicadores para acesso remoto via rede IP. Conheça em
>>>> www.Khomp.com.
>>>> _______________________________________________
>>>> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7.
>>>> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express.
>>>> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br.
>>>> _______________________________________________
>>>> Para remover seu email desta lista, basta enviar um email em branco
>>>> para asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>>>
>>>
>>>
>>> _______________________________________________
>>> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1;
>>> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7;
>>> Intercomunicadores para acesso remoto via rede IP. Conheça em
>>> www.Khomp.com.
>>> _______________________________________________
>>> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7.
>>> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express.
>>> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br.
>>> _______________________________________________
>>> Para remover seu email desta lista, basta enviar um email em branco para
>>> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>>
>>
>>
>> _______________________________________________
>> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1;
>> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7;
>> Intercomunicadores para acesso remoto via rede IP. Conheça em
>> www.Khomp.com.
>> _______________________________________________
>> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7.
>> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express.
>> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br.
>> _______________________________________________
>> Para remover seu email desta lista, basta enviar um email em branco para
>> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>
>
>
> _______________________________________________
> KHOMP: completa linha de placas externas FXO, FXS, GSM e E1;
> Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7;
> Intercomunicadores para acesso remoto via rede IP. Conheça em
> www.Khomp.com.
> _______________________________________________
> ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7.
> Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express.
> Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br.
> _______________________________________________
> Para remover seu email desta lista, basta enviar um email em branco para
> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20130612/47c9b63b/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil