AGI Asterisk Java

Olá pessoal, boa tarde.

Nesse post, gostaria de falar um pouco sobre Asterisk-Java, um assunto muito interessante. Hoje de maneira bem prática vou demonstrar como realizar a integração entre Asterisk e Java, essa integração pode trazer inúmeros benefícios ao seu servidor de telefonia.

Primeiramente, vamos criar a classe Java, eu utilizei o Netbeans, mas pode ser realizado com Eclipse sem problemas. Minha classe é simples, ela cria uma varíavel no contexto da ligação chamada “resultado” e atribui o valor “ok” para ela. Em seguida vou “printar” esse valor no console do meu Asterisk.

Vamos lá?

Classe Java “AgiJava”:


import org.asteriskjava.fastagi.AgiChannel;
import org.asteriskjava.fastagi.AgiException;
import org.asteriskjava.fastagi.AgiRequest;
import org.asteriskjava.fastagi.BaseAgiScript;

public class AgiJava extends BaseAgiScript{

 public void service(AgiRequest request, AgiChannel channel)
 throws AgiException
 {
 // Atende o canal...
 answer();

 setVariable("resultado", "ok");

 }

}

Após compilar copie o jar gerado para o Asterisk e mapeie a classe no arquivo de propriedades do FastAgi. O nome do meu AGI faz referência ao nome da minha classe Java, vejam:


--fastagi-mapping.properties
hello.agi = AgiJava

Feito isso inicie o servidor padrão do AGI com o seguinte comando:

 


--Iniciando o serviço Java
java -classpath /usr/local/asterisk-java/target/asterisk-java.jar:/usr/local/asterisk-java/target/TesteAsterisk.jar:. org.asteriskjava.fastagi.DefaultAgiServer

Para finalizar configure o seu contexto de ligação, no meu exemplo eu simplesmente

inicio o AGI e exibo o valor da variavel “resultado” que foi criada pelo Java.


--extensions.conf
[testeAgi]
exten => 001,1,Agi(agi://localhost/bruno/hello.agi)
exten => 001,n,NoOp( resultado: ${resultado})
exten => 001,n,Hangup

O resultado disso pode ser visto no console:

ConsoleAsterisk

 

Resultado da execução do servidor AGI:

ServidorAgi

Mais links?
http://www.asterisklibre.org/arquivos/category/agi-java
http://www.asterisk-java.org/development/tutorial.html
http://www.beanizer.org/site/index.php/en/Articles/A-simple-AGI-scripting-engine-with-Asterisk-Java.html

É isso pessoal.

Confira meu perfil profissional no LinkedIn e faça parte da minha rede. https://lnkd.in/w9kyFR

Abraços,
Bruno Fernando Antognolli.