You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ari4java库无法创建Asterisk Stasis应用的求助

解决ari4java无法注册Stasis应用的问题

我之前也踩过这个坑,核心问题在于:ari4java的ARI.build()方法只是创建一个ARI客户端连接,并不会自动在Asterisk上注册你的Stasis应用——这和你在Asterisk CLI里用ari create app app_test命令的逻辑完全不同。

下面是一步步的排查和解决方法:

1. 先验证ARI连接是否正常

在尝试注册应用前,先确认你的客户端能正常连接到Asterisk的ARI接口:

// 建立基础连接
ari = ARI.build( ASTERISK_ADDRESS, "app_test", ASTERISK_USER, ASTERISK_PASS, AriVersion.ARI_3_0_0 );
// 尝试获取用户列表,测试连接有效性
List<User> users = ari.users().list();
if (users != null && !users.isEmpty()) {
    System.out.println("ARI连接正常!");
} else {
    System.out.println("ARI连接失败,请检查地址、用户名密码或Asterisk配置");
}

如果连接失败,优先排查:

  • Asterisk的ari.conf里是否给你的用户配置了read和write权限
  • ASTERISK_ADDRESS格式是否正确(一般为http://<asterisk-ip>:8088/ari)
  • 服务器防火墙是否开放了8088端口

2. 显式注册Stasis应用(关键步骤)

这是你缺失的核心操作!建立连接后,必须主动调用applications.create()方法完成应用注册:

// 建立连接(和之前一致)
ari = ARI.build( ASTERISK_ADDRESS, "app_test", ASTERISK_USER, ASTERISK_PASS, AriVersion.ARI_3_0_0 );
// 显式注册名为"app_test"的Stasis应用
ari.applications().create("app_test");
// 再次查询应用列表验证
for (Application app : ari.applications().list()) { 
    System.out.print(app.getName() + " "); 
}

执行这段代码后,去Asterisk CLI里运行ari show apps,就能看到app_test出现在已注册应用列表里了。

3. 确认ARI版本兼容性

你使用的Asterisk 15.4.0对应的ARI版本确实是3.0,但最好再手动验证一下:
在Asterisk CLI中执行:

ari show versions

查看输出里的Server API version,如果和代码中指定的AriVersion.ARI_3_0_0不一致,调整版本参数即可。

4. 可选:绑定事件WebSocket(保持应用活跃)

部分Asterisk版本会把没有活跃WebSocket连接的应用标记为不活跃,如果你需要监听事件,记得建立WebSocket连接:

// 注册应用后,创建WebSocket监听
AriWebSocket ws = ari.events().eventWebsocket("app_test", null, null);
ws.addListener(new AriEventListener() {
    @Override
    public void onEvent(AriEvent event) {
        // 处理收到的ARI事件,比如StasisStart、ChannelHangup等
        System.out.println("收到事件:" + event.getType());
    }
});
ws.connect();

保持这个连接活跃,能确保应用一直处于正常注册状态。

5. 日志排查(仍有问题时)

如果还是无法解决,通过日志定位问题:

  • 开启ari4java的DEBUG日志,查看是否有请求失败的信息(比如403权限不足、404地址错误)
  • 查看Asterisk日志文件(一般在/var/log/asterisk/messages),搜索ARI相关的错误记录,比如请求被拒绝的原因

内容的提问来源于stack exchange,提问作者Andrew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:24:37