简体   繁体   English

星号-Java Sip Show同行

[英]Asterisk-Java sip show peers

I use Asterisk 1.8 with Mysql version 5.1.69 (OS : CentOS Release 6.4, istalled in Virtual machine Oracle VM Virtual Box). 我将Asterisk 1.8与Mysql版本5.1.69(OS:CentOS版本6.4,在虚拟机Oracle VM Virtual Box中安装)一起使用。 From Win 7 32bit, I tried to get information about sip peers using this code : 从Win 7 32bit,我尝试使用以下代码获取有关sip同行的信息:

import java.util.ArrayList;
import java.util.List;

import org.asteriskjava.manager.ManagerConnection;
import org.asteriskjava.manager.ManagerConnectionFactory;
import org.asteriskjava.manager.action.CommandAction;
import org.asteriskjava.manager.response.CommandResponse;



public class Manager
{
    private ManagerConnection c;

    public Manager() throws Exception
    {
        ManagerConnectionFactory factory = new ManagerConnectionFactory(
                "172.16.213.91", "asterisk", "asterisk");
        c =  factory.createManagerConnection();
    }

    public void run() throws Exception
    {
        c.login();

        CommandAction action;
        CommandResponse response;
        List<String> list = new ArrayList<String>();

        action = new CommandAction();
        //action.setCommand("core show help");
        action.setCommand(" sip show peers");
        response = (CommandResponse) c.sendAction(action);

        list = response.getResult();
        System.out.println(list.size());
        int i = 0;
        while ( i <list.size())
        {

            System.out.println(list.get(i));
            i++;
        }

        c.logoff();
    }

    public static void main(String[] args) throws Exception
    {
        new Manager().run();
    }
}

I got this output in console : 我在控制台中得到了这个输出:

18 avr. 2014 11:01:07 org.asteriskjava.manager.internal.ManagerConnectionImpl connect
INFO: Connecting to 172.16.213.91:5038
18 avr. 2014 11:01:07 org.asteriskjava.manager.internal.ManagerConnectionImpl setProtocolIdentifier
INFO: Connected via Asterisk Call Manager/1.1
18 avr. 2014 11:01:07 org.asteriskjava.manager.internal.ManagerConnectionImpl setProtocolIdentifier
ATTENTION: Unsupported protocol version 'Asterisk Call Manager/1.1'. Use at your own risk.
18 avr. 2014 11:01:07 org.asteriskjava.manager.internal.ManagerConnectionImpl doLogin
INFO: Successfully logged in
18 avr. 2014 11:01:07 org.asteriskjava.manager.internal.EventBuilderImpl buildEvent
INFO: No event class registered for event type 'fullybooted', attributes: {status=Fully Booted, event=FullyBooted, privilege=system,all}
18 avr. 2014 11:01:09 org.asteriskjava.manager.internal.ManagerConnectionImpl doLogin
INFO: Determined Asterisk version: Asterisk 1.0
18 avr. 2014 11:01:09 org.asteriskjava.manager.internal.ManagerConnectionImpl disconnect
INFO: Closing socket.
2
Name/username              Host                                    Dyn Forcerport ACL Port     Status     Realtime
0 sip peers [Monitored: 0 online, 0 offline Unmonitored: 0 online, 0 offline]

Even, I connected to Asterisk with sip user. 甚至,我用Sip用户连接到Asterisk。 I got the same result. 我得到了相同的结果。

I have 5 users in my Data base. 我的数据库中有5个用户。

Could you please help me to get information about the status of sip peers ( connected or not, ip adress...). 您能否帮助我获取有关sip对等方状态的信息(是否已连接,ip地址...)。 I use asterisk-java-0.3.jar in my project. 我在项目中使用asterisk-java-0.3.jar。

Your code works for me. 您的代码对我有用。 I'm using Asterisk 1.8 Cert and 0.3 jar. 我正在使用Asterisk 1.8 Cert和0.3 jar。

INFO: Determined Asterisk version: Asterisk 1.0
6
Name/username              Host                                    Dyn Forcerport ACL Port     Status     
1000                       (Unspecified)                            D   N             0        Unmonitored 
1001                       (Unspecified)                            D   N             0        Unmonitored 
1002                       (Unspecified)                            D   N             0        Unmonitored 
1003                       (Unspecified)                            D   N             0        Unmonitored 

I would check the manager.conf mine looks like: 我将检查manager.conf我的样子:

[manager]
secret=pa55w0rd
permit=0.0.0.0/255.255.255.255
read=all
write=all

To rule out the Java api connect to the AMI with telnet directly. 要排除Java api,请使用telnet直接连接到AMI Example here 这里的例子

Once you are logged in. To send a cli command use 登录后。要发送cli命令,请使用

Action: Command
command: sip show peers

and press intro twice. 然后按介绍两次。 Also try to connect locally to the AMI from the machine Asterisk is installed. 也请尝试从安装了星号的计算机本地连接到AMI。

UPDATE my manager.conf 更新我的manager.conf

[general]
enabled = yes
webenabled = yes
port = 5038 
bindaddr = 0.0.0.0 
[asterisk]
secret = asterisk
permit = 0.0.0.0/0.0.0.0
read=all
write=all

Good luck! 祝好运!

I tried with telnet this command 我尝试使用telnet这个命令

 action: sippeers
 actionid: 4

I got this response: 我得到了这个回应:

Response: Success  
ActionID: 4  
EventList: start  
Message: Peer status list will follow    

Event: PeerlistComplete  
EventList: Complete  
ListItems: 0  
ActionID: 4

Like you can see, I got nothings. 如您所见,我一无所有。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM