Então blz, vamos lá... Para fazer a integração asterisk-java é necessário 2 coisas... um dialplan para chamar o agi e o próprio agi, abaixo coloquei um dialplan chamando uma classe java, veja:
Dialplan: exten => 001,n,NoOp(*** Chamando AGI ***) exten => 001,n,Agi(agi://localhost/validacao.agi?op=validarEntradaSemAsterisco) exten => 001,n,NoOp(*** Valor Valido? ${VALORVALIDO} ***) Java: import org.apache.log4j.Logger; import org.asteriskjava.fastagi.AgiChannel; import org.asteriskjava.fastagi.AgiException; import org.asteriskjava.fastagi.AgiRequest; import org.asteriskjava.fastagi.BaseAgiScript; /** * * @author bruno.antognolli */ public class Validacao extends BaseAgiScript { private AgiChannel channel = null; private org.apache.log4j.Logger log = Logger.getLogger(Validacao.class); public void service(AgiRequest request, AgiChannel channel) throws AgiException { log.info("Executando Service da Classe: " + this.getClass().getSimpleName()); // Define o objeto channel como atributo de classe this.channel = channel; // Recupera a operação solicitada no canal String op = request.getParameter("op"); // Executa validarEntradaSemAsterisco if (op.equalsIgnoreCase("validarEntradaSemAsterisco")) { validarEntradaSemAsterisco(); } if (op == null || op.equalsIgnoreCase("")) { throw new AgiException("O método informado não existe!"); } public void validarEntradaSemAsterisco() throws AgiException { //Logando a Operação de Validação log.info("Executando Método: validarEntrada"); //Recuperando valores do Asterisk String valorVariavel = channel.getVariable("ARG1"); //Verifica se é número. if (isNumber(valorVariavel) == true) { //Aqui eh uma funcao que eu criei para validar numeros, nem coloquei no email a funcao //Se o usuário digitou valores diferentes de 0, valor válido //ex: 0000001* if ( ((Long.parseLong(valorVariavel) + 0) != 0 )){ log.info("[Validacao.java] -> Valor valido: '" + valorVariavel + "'"); //Devolvendo valores para o ASTERISK channel.setVariable("VALORVALIDO", "1"); } else {//if ( ((Integer.parseInt(valorFormatado) + 0) != 0 )) // Registrando erro no arquivo de log log.error("[Validacao.java] -> Erro de validacao, valor invalido: '" + valorVariavel + "'"); channel.setVariable("VALORVALIDO", "0"); } } else { //if (isNumber(valorFormatado) == true) // Registrando erro no arquivo de log log.error("[Validacao.java] -> Erro de validacao, valor invalido: '" + valorVariavel + "'"); channel.setVariable("VALORVALIDO", "0"); } } OBS: O que é importante saber sobre a classe java: Para pegar um valor vindo do Asterisk e usar no Java vc utiliza: channel.getVariable("ARG1"); Onde: ARG1 é a variável vinda do Asterisk Para pegar um valor "processado" pelo Java e devolver ao Asterisk vc utiliza: channel.setVariable("VALORVALIDO", "0"); Onde: VALORVALIDO é o nome da variável que o Asterisk guardará o resultado e 0 é o valor da variável VALORVALIDO. OBS 2: Para a integração Asterisk-Java funcionar, é necessário vc pegar o .jar do seu projeto Java (dentro da pasta dist) e jogar dentro da pasta: /var/lib/asterisk/agi-bin Após fazer isso é necessário startar o java no asterisk, dar um nome para o seu agi no arquivo fastagi-mapping.properties e pronto! Espero ter ajudado!!! :) Att, Bruno -----Original Message----- From: Wendell Silva <wendbande...@gmail.com> To: asteriskbrasil@listas.asteriskbrasil.org Sent: Fri, Feb 5, 2010 11:28 am Subject: Re: [AsteriskBrasil] AGI Pode ser sim. Em 5 de fevereiro de 2010 11:05, <brunoantogno...@email.com> escreveu: Wendel, pode ser um AGI em java? Se for, posso ajudar sim! ;) Att. Bruno -----Original Message----- From: Wendell Silva <wendbande...@gmail.com> To: asteriskbrasil@listas.asteriskbrasil.org Sent: Fri, Feb 5, 2010 10:21 am Subject: [AsteriskBrasil] AGI Alguém tem um exemplo claro de AGI pra mim passar, com dialplan e scripit.agi. ? Att. Wendell Silva Bandeira _______________________________________________ HOMP: qualidade em placas de E1, GSM, FXS e FXO para Asterisk. Hardware com alta disponibilidade de recursos e qualidade KHOMP Suporte técnico local qualificado e gratuito onheça a linha completa de produtos KHOMP em www.khomp.com.br ______________________________________________ ista de discussões AsteriskBrasil.org steriskbra...@listas.asteriskbrasil.org ttp://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil _______________________________________________ KHOMP: qualidade em placas de E1, GSM, FXS e FXO para Asterisk. - Hardware com alta disponibilidade de recursos e qualidade KHOMP - Suporte técnico local qualificado e gratuito Conheça a linha completa de produtos KHOMP em www.khomp.com.br _______________________________________________ Lista de discussões AsteriskBrasil.org AsteriskBrasil@listas.asteriskbrasil.org http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil _______________________________________________ HOMP: qualidade em placas de E1, GSM, FXS e FXO para Asterisk. Hardware com alta disponibilidade de recursos e qualidade KHOMP Suporte técnico local qualificado e gratuito onheça a linha completa de produtos KHOMP em www.khomp.com.br ______________________________________________ ista de discussões AsteriskBrasil.org steriskbra...@listas.asteriskbrasil.org ttp://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
_______________________________________________ KHOMP: qualidade em placas de E1, GSM, FXS e FXO para Asterisk. - Hardware com alta disponibilidade de recursos e qualidade KHOMP - Suporte técnico local qualificado e gratuito Conheça a linha completa de produtos KHOMP em www.khomp.com.br _______________________________________________ Lista de discussões AsteriskBrasil.org AsteriskBrasil@listas.asteriskbrasil.org http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil