[AsteriskBrasil] como buscar o DTMF e passar pro Java?

Luis Reis luis.reis em singularideas.com.br
Terça Março 9 10:46:54 BRT 2010


Pessoal

Capturar DTMF pelo Asterisk-JAVA é mais confiavel utilizar um BaseAgiScript.

Eu auxiliei um amigo aqui pela lista no início de fevereiro .. dá uma
pesquisada no histórico .. eu passei um exemplo pra ele.

Aqui nos usamos assim e funciona perfeitamente.

[]'s

Em 8 de março de 2010 22:32, Wanderson Alves Rodrigues <
wanderson.alves.rodrigues em gmail.com> escreveu:

> Boa noite pessoal.
>
> Tenho uma duvida no funcionamento dos eventos do asterisk-java.
>
> Nesse exemplo eu consigo pegar o evento de conecção que meu programa
> realiza com o asterisk.
>
> import java.io.IOException;
>
> import org.asteriskjava.manager.AuthenticationFailedException;
> import org.asteriskjava.manager.ManagerConnection;
> import org.asteriskjava.manager.ManagerConnectionFactory;
> import org.asteriskjava.manager.ManagerEventListener;
> import org.asteriskjava.manager.TimeoutException;
> import org.asteriskjava.manager.event.ConnectEvent;
> import org.asteriskjava.manager.event.ManagerEvent;
>
> public class HelloEvents implements ManagerEventListener
> {
>
>    private ManagerConnection managerConnection;
>
>
>    public HelloEvents() throws IOException
>    {
>
>        ManagerConnectionFactory factory = new ManagerConnectionFactory(
>        "192.168.40.66", "admin", "digi");
>        this.managerConnection = factory.createManagerConnection();
>
>    }
>    public void run() throws IOException, AuthenticationFailedException,
>    TimeoutException, InterruptedException
>    {
>
>        // register for events
>        managerConnection.addEventListener(this);
>        // connect to Asterisk and log in
>        managerConnection.login();
>        // and finally log off and disconnect
>        managerConnection.logoff();
>
>    }
>
>    public void onManagerEvent(ManagerEvent event)
>    {
>       if (event instanceof ConnectEvent)
>       {
>            ConnectEvent conect = (ConnectEvent) event;
>
>            System.out.println("versão do protocolo : "
> +conect.getProtocolIdentifier());
>
>        }
>
>
>    }
>
>    public static void main(String[] args) throws Exception
>    {
>
>        HelloEvents helloEvents;
>        helloEvents = new HelloEvents();
>        helloEvents.run();
>
>    }
>
> }
> ###########################################################################
> Beleza isso é fácil, mais por exemplo se eu quiser pegar os dígitos do
> dtmf de um celular por exemplo como usar a classe DtmfEvent.
> Claro que vou ter que configurar os extensions e sip, mais se eu fizer
> por exemplo.
>
> import java.io.IOException;
>
> import org.asteriskjava.manager.AuthenticationFailedException;
> import org.asteriskjava.manager.ManagerConnection;
> import org.asteriskjava.manager.ManagerConnectionFactory;
> import org.asteriskjava.manager.ManagerEventListener;
> import org.asteriskjava.manager.TimeoutException;
> import org.asteriskjava.manager.event.DtmfEvent;
> import org.asteriskjava.manager.event.ManagerEvent;
>
> public class HelloEvents implements ManagerEventListener
> {
>
>    private ManagerConnection managerConnection;
>
>
>    public HelloEvents() throws IOException
>    {
>
>        ManagerConnectionFactory factory = new ManagerConnectionFactory(
>        "192.168.40.66", "admin", "digi");
>        this.managerConnection = factory.createManagerConnection();
>
>    }
>    public void run() throws IOException, AuthenticationFailedException,
>    TimeoutException, InterruptedException
>    {
>
>        // register for events
>        managerConnection.addEventListener(this);
>        // connect to Asterisk and log in
>        managerConnection.login();
>        // and finally log off and disconnect
>        managerConnection.logoff();
>
>    }
>
>    public void onManagerEvent(ManagerEvent event)
>    {
>      if (event instanceof DtmfEvent) {
>            DtmfEvent dtmf = (DtmfEvent) event;
>
>            System.out.println("Digit  : " +dtmf.getDigit());
>            System.out.println("Source : " + dtmf.getSource());
>            System.out.println("Channel: " +dtmf.getChannel());
>
>            System.out.println(dtmf);
>        }
>
>
>
>    }
>
>    public static void main(String[] args) throws Exception
>    {
>
>        HelloEvents helloEvents;
>        helloEvents = new HelloEvents();
>        helloEvents.run();
>
>    }
>
> }
>
>
> Só isso não garante que eu possa usar os dígitos dtmf, no caso exibir.
>
> To quebrando a cabeça, por favo me de uma luz. Existe uma maneira de
> usar essa classe DtmfEvent(como essa classe funciona). Caso eu ligue
> para um canal da placa VB0408 que tenho, o asterisk faria a gerencia
> do atendimento mais se eu tecla em um numero como garantir que a
> classe DtmfEvent saiba que ocorreu um evento dtmf.
>
> Muito obrigado..
>
>
> Em 8 de março de 2010 17:21, jefferson alexandre
> <jefferson.alexandre em gmail.com> escreveu:
>  > Já tentou usar " AGI get data"?
> > Aqui tem um exemplo em PHP que talvez lhe ajude.
> >
> http://phpagi.sourceforge.net/phpagi2/docs/__examplesource/exsource__root_phpagi-2.14_examples_dtmf.php_9f0d08538805cb50bb0f290606fe78d3.html
> >
> > 2010/3/8 <brunoantognolli em email.com>
> >>
> >> Boa tarde Wanderson,
> >>
> >> Eu precisei utilizar "comparações de som" com o Asterisk-Java e não
> >> consegui inicialmente, e não tive a oportunidade de tentar outra vez.
> >>
> >> Imagino que você possa gravar o DMTF e após isso comparar as ondas de
> som,
> >> a partir daí poderia saber qual número foi digitado.
> >>
> >> Talvez esse link ajude um pouco:
> >>
> >>
> http://blogs.reucon.com/asterisk-java/2009/04/03/speech_recognition_with_asterisk_java.html
> >>
> >>
> >>
> >> Se você conseguir dar continuidade no assunto e resolver o problema
> posta
> >> aí...
> >> Att,
> >> Bruno
> >>
> >>
> >>
> >> -----Original Message-----
> >> From: Wanderson Alves Rodrigues <wanderson.alves.rodrigues em gmail.com>
> >> To: AsteriskBrasil em listas.asteriskbrasil.org
> >> Sent: Mon, Mar 8, 2010 3:23 pm
> >> Subject: [AsteriskBrasil] como buscar o DTMF e passar pro Java?
> >>
> >> Caros, esta é a primeira vez que preciso de um Help da lista.
> >> Preciso buscar o DTMF de um dos oito canais de uma placa VB0408 e
> >> passar para um programa Java.
> >>
> >> Já consigo buscar os eventos de conexão (embora não saiba o que
> >> significam os numeros que aparecem).
> >>
> >> O servidor está 100% operacional, drivers devidamente compilados e
> >> placa funcionando corretamente. Uso um Trixbox.
> >>
> >> Optei por Asterisk-Java por ter facilidade com a linguagem.
> >> O case final é o seguinte:
> >>
> >> Preciso que meu programa seja capaz de buscar simultaneamente os DTMFs
> >> de cada canal da VB0408 e exiba o número pressionado no celular (após
> >> capturar o DTMF) na tela, para cada canal.
> >>
> >> Alguém sabe se usando a Menager API somente, eu consigo obter os DTMFs?
> >> Qualquer exemplo será muito bem vindo!
> >>
> >> Grande abraço a todos!
> >>
> >> Wanderson.
> >> _______________________________________________
> >> 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 em listas.asteriskbrasil.org
> >> http://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 em listas.asteriskbrasil.org
> >> http://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 em listas.asteriskbrasil.org
> > http://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 em listas.asteriskbrasil.org
> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>



-- 
Luis Machado Reis
Analista de Sistemas
www.singularideas.com.br
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20100309/612b9146/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil