<font color='black' size='2' face='arial'>
<div><FONT face="Arial, Helvetica, sans-serif">Então blz, vamos lá...</FONT></div>
<div> </div>
<div>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:</div>
<div> </div>
<div><STRONG>Dialplan:</STRONG></div>
<div>exten => 001,n,NoOp(*** Chamando AGI ***)<br>
exten => 001,n,Agi(agi://localhost/validacao.agi?op=validarEntradaSemAsterisco)<br>
exten => 001,n,NoOp(*** Valor Valido? ${VALORVALIDO} ***)</div>
<div><br>
</div>
<div><STRONG>Java:</STRONG></div>
<div><STRONG></STRONG> </div>
<div>import org.apache.log4j.Logger;<br>
import org.asteriskjava.fastagi.AgiChannel;<br>
import org.asteriskjava.fastagi.AgiException;<br>
import org.asteriskjava.fastagi.AgiRequest;<br>
import org.asteriskjava.fastagi.BaseAgiScript;</div>
<div><STRONG></STRONG> </div>
<div>/**<br>
*<br>
* @author bruno.antognolli<br>
*/</div>
<div><br>
<STRONG>public class Validacao extends BaseAgiScript {</STRONG></div>
<div> private AgiChannel channel = null;<br>
private org.apache.log4j.Logger log = Logger.getLogger(Validacao.class);</div>
<div> public void service(AgiRequest request, AgiChannel channel) throws AgiException {</div>
<div> </div>
<div> log.info("Executando Service da Classe: " + this.getClass().getSimpleName());</div>
<div> // Define o objeto channel como atributo de classe<br>
this.channel = channel;</div>
<div> </div>
<div> // Recupera a operação solicitada no canal </div>
<div> String op = request.getParameter("op");</div>
<div> </div>
<div> // Executa validarEntradaSemAsterisco<br>
if (op.equalsIgnoreCase("validarEntradaSemAsterisco")) {<br>
validarEntradaSemAsterisco();<br>
}</div>
<div> </div>
<div> if (op == null || op.equalsIgnoreCase("")) {<br>
throw new AgiException("O método informado não existe!"); <br>
}</div>
<div> </div>
<div> </div>
<div><STRONG>public void validarEntradaSemAsterisco() throws AgiException {</STRONG></div>
<div> //Logando a Operação de Validação<br>
log.info("Executando Método: validarEntrada");</div>
<div> </div>
<div> //Recuperando valores do Asterisk<br>
String valorVariavel = channel.getVariable("ARG1");</div>
<div> </div>
<div> //Verifica se é número.<br>
if (isNumber(valorVariavel) == true) { //Aqui eh uma funcao que eu criei para validar numeros, nem coloquei no email a funcao</div>
<div> //Se o usuário digitou valores diferentes de 0, valor válido<br>
//ex: 0000001*<br>
</div>
<div> if ( ((Long.parseLong(valorVariavel) + 0) != 0 )){<br>
log.info("[Validacao.java] -> Valor valido: '" + valorVariavel + "'");</div>
<div> </div>
<div> //Devolvendo valores para o ASTERISK<br>
channel.setVariable("VALORVALIDO", "1");</div>
<div> </div>
<div> } else {//if ( ((Integer.parseInt(valorFormatado) + 0) != 0 ))<br>
// Registrando erro no arquivo de log<br>
log.error("[Validacao.java] -> Erro de validacao, valor invalido: '" + valorVariavel + "'");</div>
<div> channel.setVariable("VALORVALIDO", "0");<br>
}</div>
<div> </div>
<div> } else { //if (isNumber(valorFormatado) == true)<br>
</div>
<div> // Registrando erro no arquivo de log<br>
log.error("[Validacao.java] -> Erro de validacao, valor invalido: '" + valorVariavel + "'");</div>
<div> channel.setVariable("VALORVALIDO", "0");</div>
<div><br>
}</div>
<div>}</div>
<div><br>
<br>
<STRONG>OBS: O que é importante saber sobre a classe java:</STRONG></div>
<div>Para pegar um valor vindo do Asterisk e usar no Java vc utiliza:</div>
<div>channel.getVariable("ARG1");</div>
<div> </div>
<div>Onde: ARG1 é a variável vinda do Asterisk</div>
<div> </div>
<div> </div>
<div>Para pegar um valor "processado" pelo Java e devolver ao Asterisk vc utiliza:</div>
<div>channel.setVariable("VALORVALIDO", "0");</div>
<div> </div>
<div>Onde: VALORVALIDO é o nome da variável que o Asterisk guardará o resultado e 0 é o valor da variável VALORVALIDO.</div>
<div> </div>
<div><STRONG>OBS 2:</STRONG></div>
<div>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:</div>
<div> </div>
<div>/var/lib/asterisk/agi-bin</div>
<div> </div>
<div>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!</div>
<div> </div>
<div>Espero ter ajudado!!! :)</div>
<div> </div>
<div>Att,</div>
<div>Bruno</div>
<div><STRONG></STRONG> </div>
<div><br>
</div>
<div style="CLEAR: both"></div>
<br>
<br>
<div style="FONT-FAMILY: arial,helvetica; COLOR: black; FONT-SIZE: 10pt">-----Original Message-----<br>
From: Wendell Silva <wendbandeira@gmail.com><br>
To: asteriskbrasil@listas.asteriskbrasil.org<br>
Sent: Fri, Feb 5, 2010 11:28 am<br>
Subject: Re: [AsteriskBrasil] AGI<br>
<br>
<div id=AOLMsgPart_3_8fcda8f0-2671-4e4e-924d-89d9ea3d0940>Pode ser sim. <br>
<br>
<div class=gmail_quote>Em 5 de fevereiro de 2010 11:05, <SPAN dir=ltr><<A href="mailto:brunoantognolli@email.com">brunoantognolli@email.com</A>></SPAN> escreveu:<br>
<BLOCKQUOTE style="BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0pt 0pt 0pt 0.8ex; PADDING-LEFT: 1ex" class=gmail_quote><FONT color=black size=2 face=arial>
<div>Wendel, pode ser um AGI em java?</div>
<div> </div>
<div>Se for, posso ajudar sim! ;)</div>
<div> </div>
<div>Att.</div>
<div>Bruno<br>
<br>
</div>
<div style="CLEAR: both"></div>
<br>
<br>
<div style="FONT-FAMILY: arial,helvetica; COLOR: black; FONT-SIZE: 10pt">
<div class=im>-----Original Message-----<br>
From: Wendell Silva <<A href="mailto:wendbandeira@gmail.com">wendbandeira@gmail.com</A>><br>
To: <A href="mailto:asteriskbrasil@listas.asteriskbrasil.org">asteriskbrasil@listas.asteriskbrasil.org</A><br>
</div>
<div>
<div></div>
<div class=h5>Sent: Fri, Feb 5, 2010 10:21 am<br>
Subject: [AsteriskBrasil] AGI<br>
<br>
<div>Alguém tem um exemplo claro de AGI pra mim passar, com dialplan e scripit.agi. ? <br>
<br>
<br>
Att.<br>
<br>
Wendell Silva Bandeira<br>
</div>
</div>
</div>
<div class=im>
<div style="BACKGROUND-COLOR: rgb(255,255,255); MARGIN: 0px; FONT-FAMILY: Tahoma,Verdana,Arial,Sans-Serif; COLOR: rgb(0,0,0); FONT-SIZE: 12px"><PRE style="FONT-SIZE: 9pt"><TT>_______________________________________________
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 <A href="http://www.khomp.com.br/" target=_blank>www.khomp.com.br</A>
_______________________________________________
Lista de discussões AsteriskBrasil.org
<A href="mailto:AsteriskBrasil@listas.asteriskbrasil.org">AsteriskBrasil@listas.asteriskbrasil.org</A>
<A href="http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil" target=_blank>http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil</A>
</TT></PRE></div>
</div>
</div>
</FONT><br>
_______________________________________________<br>
KHOMP: qualidade em placas de E1, GSM, FXS e FXO para Asterisk.<br>
- Hardware com alta disponibilidade de recursos e qualidade KHOMP<br>
- Suporte técnico local qualificado e gratuito<br>
Conheça a linha completa de produtos KHOMP em <A href="http://www.khomp.com.br/" target=_blank>www.khomp.com.br</A><br>
_______________________________________________<br>
Lista de discussões AsteriskBrasil.org<br>
<A href="mailto:AsteriskBrasil@listas.asteriskbrasil.org">AsteriskBrasil@listas.asteriskbrasil.org</A><br>
<A href="http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil" target=_blank>http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil</A><br>
</BLOCKQUOTE></div>
<br>
</div>
<!-- end of AOLMsgPart_3_8fcda8f0-2671-4e4e-924d-89d9ea3d0940 -->
<div style="BACKGROUND-COLOR: #fff; MARGIN: 0px; FONT-FAMILY: Tahoma, Verdana, Arial, Sans-Serif; COLOR: #000; FONT-SIZE: 12px" id=AOLMsgPart_4_8fcda8f0-2671-4e4e-924d-89d9ea3d0940><PRE style="FONT-SIZE: 9pt"><TT>_______________________________________________
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 <A href="http://www.khomp.com.br/" target=_blank>www.khomp.com.br</A>
_______________________________________________
Lista de discussões AsteriskBrasil.org
<A href="mailto:AsteriskBrasil@listas.asteriskbrasil.org">AsteriskBrasil@listas.asteriskbrasil.org</A>
<A href="http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil" target=_blank>http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil</A>
</TT></PRE></div>
<!-- end of AOLMsgPart_4_8fcda8f0-2671-4e4e-924d-89d9ea3d0940 --></div>
</font>