Asterisk-Java 找不到fastagi-mapping.properties

Asterisk-Java can't find fastagi-mapping.properties

我正在使用 Asterisk,我想从我的 Java 应用发出调用,然后使用 AGI 脚本来控制发生的事情。所以我有一个第一个 class 联系 Asterisk 服务器并使用 OriginateAction 开始调用(这很好用)和一个运行并且应该服务于 AGI 请求的 AGI 服务器。但是,它不起作用,因为它找不到 fastagi-mapping.properties 文件。

这是我的 fastagi-mapping.properties:

alertcall.agi = AlertCallScript

(只有一种情况。)

在同一个文件夹中,我有 AlertCallScript.java(和 asterisk-java.jar),我这样编译:

javac -cp asterisk-java.jar:. AlertCallScript.java ExamplesAsteriskSettings.java

然后我使用这个(在文档中找到)启动我的 AGI 服务器:

java -cp asterisk-java.jar:. -jar asterisk-java.jar

当我发出呼叫时,我在 AGI 服务器输出中收到以下错误:

Jun 13, 2018 6:28:12 AM org.asteriskjava.fastagi.ResourceBundleMappingStrategy loadResourceBundle
INFO: Resource bundle 'fastagi-mapping' not found.
Jun 13, 2018 6:28:12 AM org.asteriskjava.fastagi.internal.AgiConnectionHandler run
SEVERE: No script configured for URL 'agi://localhost/alertcall.agi' (script 'alertcall.agi')

我不知道为什么...我已经研究了一个多小时,虽然我找不到它,但我可能犯了一个愚蠢的错误。

备注:

求推荐。

部分问题可能是试图在同一个 java 命令中使用 -cp-jar,这是不支持的,Whosebug 上有很多关于这个的问题(here 是一个)。

你可以使用

java -cp asterisk-java.jar:. DefaultAgiServer

专门启动 asterisk-java 的 DefaultAgiServer(如果我没记错清单中的条目的话,指定 -jar asterisk-java.jar 无论如何都会这样做)。