首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Asterisk-Java sip show peers

Asterisk-Java sip show peers
EN

Stack Overflow用户
提问于 2014-04-18 18:12:53
回答 2查看 2.7K关注 0票数 1

我在MySQL5.1.69版本中使用Asterisk1.8(操作系统: CentOS Release 6.4,安装在虚拟机Oracle VM Virtual Box中)。在Win 7 32位中,我尝试使用以下代码获取有关sip对等体的信息:

代码语言:javascript
复制
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();
    }
}

我在控制台中得到了以下输出:

代码语言:javascript
复制
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]

甚至,我用sip user连接到了Asterisk。我得到了同样的结果。

我的数据库中有5个用户。

您可以帮助我获得有关sip对等体的状态(连接与否,ip地址...)的信息。我在我的项目中使用了asterisk-java-0.3.jar。

EN

回答 2

Stack Overflow用户

发布于 2014-04-18 19:57:24

你的代码很适合我。我使用的是Asterisk 1.8证书和0.3 jar。

代码语言:javascript
复制
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 

我会检查一下manager.conf矿看起来像这样:

代码语言:javascript
复制
[manager]
secret=pa55w0rd
permit=0.0.0.0/255.255.255.255
read=all
write=all

要排除Java api,请通过telnet直接连接到AMI。示例here

一旦您登录。要发送cli命令,请使用

代码语言:javascript
复制
Action: Command
command: sip show peers

然后按两下Intro键。还要尝试从安装了Asterisk的机器本地连接到AMI。

UPDATE my manager.conf

代码语言:javascript
复制
[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

祝好运!

票数 1
EN

Stack Overflow用户

发布于 2014-04-19 19:41:01

我尝试了telnet这个命令

代码语言:javascript
复制
 action: sippeers
 actionid: 4

我得到的回复是:

代码语言:javascript
复制
Response: Success  
ActionID: 4  
EventList: start  
Message: Peer status list will follow    

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

就像你看到的,我什么都没有。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23151964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档