[AsteriskBrasil] RES: API JAVA - Peer Status

Ciro A. Toscano ciro em sntbsb.com.br
Quarta Dezembro 9 09:50:38 BRST 2009


Leiber,
 
OBRIGADO heim! "eu" ia me esquecendo!
 
Ciro
 

-----Mensagem original-----
De: asteriskbrasil-bounces em listas.asteriskbrasil.org
[mailto:asteriskbrasil-bounces em listas.asteriskbrasil.org] Em nome de
brunoantognolli em email.com
Enviada em: quarta-feira, 9 de dezembro de 2009 08:54
Para: asteriskbrasil em listas.asteriskbrasil.org
Assunto: Re: [AsteriskBrasil] API JAVA - Peer Status



Bim dia a todos,
 
resolvi meu problema! Para capturar os eventos do asterisk de maneira
bem simples foi necessário implementar o código abaixo:
 
 CommandAction commandAction = new CommandAction("sip show peers");
                CommandResponse response = (CommandResponse)
managerConnection.sendAction(commandAction);
                for (String line : response.getResult())
                    {
                         System.out.println(line);
                    }
 
 
Att,
Bruno


-----Original Message-----
From: brunoantognolli em email.com
To: asteriskbrasil em listas.asteriskbrasil.org
Sent: Mon, Dec 7, 2009 4:37 pm
Subject: Re: [AsteriskBrasil] API JAVA - Peer Status



Ok, vou dar uma olhada e logo que resolver posto o código aqui.
 
Att
Bruno







-----Original Message-----
From: Leiber - Gmail <leiber em gmail.com>
To: asteriskbrasil em listas.asteriskbrasil.org
Sent: Mon, Dec 7, 2009 4:15 pm
Subject: Re: [AsteriskBrasil] API JAVA - Peer Status


Vamos lá...
 
O que eu passo como argumento para esa.setExten() ?
Sim conforme eu te mandei inclusive o meus ramais aki são 201, 202..
etc.. e usando o q te mandei funcionou
 
"Se ele esta dando isso E sempre me retorna -1."
Cara então esse agente ai não encontra-se logado. no meu caso as
mensagem com 1 de in use.
 
Outra forma tem sim, alias tem várias...
http://asterisk-java.org/development/apidocs/org/asteriskjava/manager/ac
tion/CommandAction.html
 
 
Vc pode fazer uma classe que implementa ManagerEventListener também
todos os eventos que vierem a ocorrer no asterisk vc consegue capturar.
 

public class ApplicationStartup implements ManagerEventListener 

                public void onManagerEvent(ManagerEvent event) {

                           String event_name =
event.getClass().getSimpleName();
                            System.out.println("ACONTECEU O EVENTO
-->"+ event_name);
                            ai vc da um cast e pega a informacao
necessario exemplo:
                                        //ou event instanceOf
NewExtenEvent
                            if(event_name.equals("NewExtenEvent")) {
                                 NewExtenEvent e = (NewExtenEvent)
event;
                                System.out.println("Extension
"+e.getExtension());
                                System.out.println("Channel
"+e.getChannel());
                                System.out.println("Context
"+e.getContext());
                                System.out.println("AppData
"+e.getAppData());
                                System.out.println("Application
"+e.getApplication());
                                System.out.println("Privilege
"+e.getPrivilege());
                                System.out.println("Priority
"+e.getPriority());
                             }
                }
}
 
Ai vc teria q ver de qual instancia o event é e dele utilizar como achar
conveniente, para conhecer os eventos existetes vc pode olhar aki.
 
1 - ManagerEventListener 
http://asterisk-java.org/development/apidocs/org/asteriskjava/manager/Ma
nagerEventListener.html
 
2 - ManagerEvent
http://asterisk-java.org/development/apidocs/org/asteriskjava/manager/ev
ent/ManagerEvent.html
 
 
Existe varios tipos de listener que vc pode implementar da uma olhada
nesse tutorial aqui:
http://asterisk-java.org/development/tutorial.html
 

----- Original Message ----- 
From: brunoantognolli em email.com 
To: asteriskbrasil em listas.asteriskbrasil.org 
Sent: Monday, December 07, 2009 3:25 PM
Subject: Re: [AsteriskBrasil] API JAVA - Peer Status


O que eu passo como argumento para esa.setExten() ?
 
Passando o ramal não deu certo, tentei passar: "1012"; "SIP/1012". 
 
E sempre me retorna -1.
 
(Outro resultado que daria certo seria algo semelhante ao comando "sip
show peers" lá no asterisk, pois com ele eu poderia ver se estão todos
offline. Você saberia como recuperar as mesmas informações do comando
"sip show peers", mas pelo Asterisk-Java?)
 
Att,







-----Original Message-----
From: Leiber - Gmail <leiber em gmail.com>
To: asteriskbrasil em listas.asteriskbrasil.org
Sent: Mon, Dec 7, 2009 11:06 am
Subject: Re: [AsteriskBrasil] API JAVA - Peer Status


Se eu entendi... tente o codigo abaixo.
 

ExtensionStateAction esa = new ExtensionStateAction();
esa.setExten("1012'");
ManagerResponse mr = managerConnection.sendAction(esa);

System.out.println(mr.getAttribute("status")); 
O que será impresso em tela deverá ser como o exemplificado abaixo:
http://www.voip-info.org/wiki/view/Asterisk+Manager+API+Action+Extension
State
Seria isso ?
Leiber Wallace
Sistemas para Callcenter
Developer - Mentaframework.org
Developer - WSTframework.org
Contributor - Space4j.org
User - AsteriskBrasil.org
(61) 3035-9058
(61) 9211-1777

----- Original Message ----- 
From: brunoantognolli em email.com 
To: asteriskbrasil em listas.asteriskbrasil.org 
Sent: Friday, December 04, 2009 4:22 PM
Subject: [AsteriskBrasil] API JAVA - Peer Status


Boa tarde a todos.
 
Estou com uma dúvida, alguém poderia ajudar?
 
Estou tentando pegar o status de um ramal pelo Java, ao efetuar alguns
testes percebi que vou utilizar o pacote:
org.asteriskjava.manager.event.PeerStatusEvent
 
Segue abaixo o Log de quando o ramal é desligado
org.asteriskjava.manager.event.PeerStatusEvent[dateReceived=Fri Dec 04
16:17:32 BRST
2009,privilege='system,all',peer='SIP/1012',peerstatus='Unregistered',ti
me='null',cause='null',timestamp='null',systemHashcode=3808966]

Contexto:
Preciso desenvolver uma classe que recebe o número do ramal e me retorna
o Status do mesmo.
 
Estou utilizando um link de referencia, no exemplo é utilizado Swing, no
meu caso nao precisa.
http://readlist.com/lists/lists.digium.com/asterisk-users/6/34751.html
 
Segue como está meu código:
public class ExecutarComandosRasterisk {
    //Log
    private Logger log =
Logger.getLogger(ExecutarComandosRasterisk.class);
    // Objeto de conexão com o Asterisk
    private ManagerConnection managerConnection;
    // Obtem resposta Asterisk
    ManagerResponse originateResponse;
    PeerStatusEvent peerStatus;
    PeerEntryEvent peerEntry;
    public String enviarComando() throws IOException,
AuthenticationFailedException, TimeoutException
    {
        String retorno = "Teste realizado com sucesso";
        try{
            try
            {
                // Objeto que mapeia o servidor
                ManagerConnectionFactory factory = new
ManagerConnectionFactory("192.168.16.14", "manager", "pa55w0rd");
                // Obtem uma conexao com o Asterisk
                this.managerConnection =
factory.createManagerConnection();
                // Efetua o Login
                managerConnection.login();

                SipShowPeerAction sipShowPeerAction = new
SipShowPeerAction("1012");
                sipShowPeerAction.setPeer("1012");
                managerConnection.sendAction(sipShowPeerAction);

                peerEntry.getStatus();
            
                // print out whether the originate succeeded or not
                System.out.println();
            }
            catch(Exception exp)
            {
                retorno = exp.toString();
                System.out.print(exp);
            }
        }
        finally
        {
            managerConnection.logoff();
            managerConnection.getState();
        }
        return retorno;
    }
 

Att,
Bruno
  _____  

_______________________________________________
A Redfone é líder no fornecimento de bridges TDMoE &lt;-> E1
- Valor similar ao de placas E1 PCI;
- Não há problemas de compatibilidade com barramento PCI;
- Possibilitam a construção de soluções de alta disponibilidade(dois  
servidores compartilham o mesmo E1)
Conheça mais sobre este produto em www.red-fone.com
<http://www.red-fone.com/> 
_______________________________________________
Lista de discussões AsteriskBrasil.org
AsteriskBrasil em listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil

_______________________________________________

A Redfone é líder no fornecimento de bridges TDMoE <-> E1

- Valor similar ao de placas E1 PCI;

- Não há problemas de compatibilidade com barramento PCI;

- Possibilitam a construção de soluções de alta disponibilidade(dois  

servidores compartilham o mesmo E1)

Conheça mais sobre este produto em www.red-fone.com
<http://www.red-fone.com/> 

_______________________________________________

Lista de discussões AsteriskBrasil.org

AsteriskBrasil em listas.asteriskbrasil.org

http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil


  _____  

_______________________________________________
A Redfone é líder no fornecimento de bridges TDMoE &lt;-> E1
- Valor similar ao de placas E1 PCI;
- Não há problemas de compatibilidade com barramento PCI;
- Possibilitam a construção de soluções de alta disponibilidade(dois  
servidores compartilham o mesmo E1)
Conheça mais sobre este produto em www.red-fone.com
<http://www.red-fone.com/> 
_______________________________________________
Lista de discussões AsteriskBrasil.org
AsteriskBrasil em listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil

_______________________________________________

A Redfone é líder no fornecimento de bridges TDMoE <-> E1

- Valor similar ao de placas E1 PCI;

- Não há problemas de compatibilidade com barramento PCI;

- Possibilitam a construção de soluções de alta disponibilidade(dois  

servidores compartilham o mesmo E1)

Conheça mais sobre este produto em www.red-fone.com
<http://www.red-fone.com/> 

_______________________________________________

Lista de discussões AsteriskBrasil.org

AsteriskBrasil em listas.asteriskbrasil.org

http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil



-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20091209/bb8b31f8/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil