使用ARI4Java创建到ARI的WebSocket

时间:2017-05-09 00:08:31

标签: java asterisk

我很难尝试使用Ari4Java向ARI打开WebSocket。

我对ARI的理解是我将使用HTTP POST连接发送命令,但我可以注册以通过WebSocket接收事件。这正是我想要做的。我试过这个:

   final ARI ari = AriFactory.nettyHttp("http://127.0.0.1:8088/",
            "dialoutUser", "seekrit-password", AriVersion.ARI_1_7_0);
    final ActionEvents actionEvents = ari.events();
    actionEvents.eventWebsocket("Dial", new AriCallback<Message>() {
        @Override
        public void onSuccess(Message result) {
            LOG.info("Yes! " + result);
        }

        @Override
        public void onFailure(RestException e) {
            LOG.info("No! " );
        }
    });

我知道密码是正确的,因为我可以使用相同的用户和密码发送命令(让它拨号等)。

我实际上修改了Ari4Java源代码并在各个地方放入了日志消息来跟踪它正在做什么,它确实创建了一个WsClient。

但没有任何联系。我用过:

 tcpflow -i lo port 8088

没有任何显示。它甚至没有尝试打开连接。

我修改了我的pom.xml文件以使用当前版本的Jackson,并使用Ari4Java中推荐的旧版本2.2.2。没有区别。

我查看了ActionEvents类,当我调用eventWebSocket()时,它使用buildEventWebSocket()设置所有内容,然后调用httpActionAsync()。 buildEventWebSocket()似乎确实进入了Netty的WebSocket代码,它创建了一个WsClient对象,但似乎没有任何东西在tcp级别发生。没有例外被抛出。

我必须遗漏一些非常基本的东西。

由于

0 个答案:

没有答案