2

我正在使用 Asterisk,我想从我的 Java 应用程序发出一个调用,然后使用 AGI 脚本来控制发生的事情。所以我有一个第一类,它联系 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-asterisk.jar:.能够拥有asterisk-java包含该fastagi-mapping.properties文件的当前文件夹,因此在类路径中应该可以毫无问题地找到该文件。
  • 我已经尝试删除并重新创建文件,它没有改变任何东西。

请建议。

4

1 回答 1

3

部分问题可能是试图在同一个命令中使用-cp和,这不受支持,并且 Stackoverflow 上有许多关于此的问题(这里是一个)。-jarjava

你可以使用类似的东西

java -cp 星号-java.jar:。默认敏捷服务器

专门启动星号-java DefaultAgiServer(如果我正确记住清单中的条目,这就是指定-jar asterisk-java.jar要做的事情)。

于 2018-06-14T13:41:30.717 回答