无法使用ari4java库创建Asterisk Stasis App

时间:2018-05-30 20:28:50

标签: java asterisk voip

我正在使用ari4java库,我在注册stasis应用程序时遇到问题。 如果我使用命令行连接到Asterisk并侦听特定应用程序名称的事件,它可以工作。它创建了应用程序,一切都很好。当我使用Java中的ari4java库执行此操作时,会出现问题。实际上,我正在尝试从库的github存储库(即 - ConnectAndDial.java)[1]中获取示例。我理解ARI.build(...)调用:

ari = ARI.build(
ASTERISK_ADDRESS,
"app_test",
ASTERISK_USER,
ASTERISK_PASS,
AriVersion.ARI_3_0_0
);

必须创建名为“app_test”的应用程序。现实情况是,它没有。

for (Application app : ari.applications().list()) {
System.out.print(app.getName() + " ");
}

上面的代码,在ARI.build(...)之后执行,不执行任何操作。这意味着没有在Asterisk注册的应用程序。在Asterisk CLI中运行“ari show apps”也告诉我没有注册应用程序。

我无法理解,问题出在哪里?请有人帮助我吗?

提前致谢。

P.S。:我正在使用Asterisk 15.4.0

[1] https://github.com/l3nz/ari4java/blob/master/tests/ch/loway/oss/ari4java/sandbox/sample/ConnectAndDial.java

1 个答案:

答案 0 :(得分:0)

首先,您需要像使用ARI.build一样创建ARI实例。例如:

ARI ari = ARI.build(asteriskUrl, "stasisApp", "userid", "secret", AriVersion.ARI_3_0_0);

此外,您还需要如下定义配置文件:

  1. ari.conf-定义用户和星号属性的配置文件:
[general]
enabled = yes
pretty = yes

[userid]
type = user
read_only = no
password = secret
  1. extensions.conf-为要运行的应用程序定义一个拨号盘:

[general]
enabled = yes
pretty = yes

[userid]
type = user
read_only = no
password = secret
  1. http.conf-HTTP服务器配置:
[general]
enabled = yes
bindaddr = 0.0.0.0
bindport = 8088

此外,在创建ARI实例后,您可以使用以下方法打开网络套接字以监听ARI事件:ari.events().eventWebsocket("stasisApp", true, ariCallback);

相关问题