我正在使用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
文件,因此应该在类路径中找到该文件没有任何问题请建议。
答案 0 :(得分:2)
部分问题可能是在同一个max-age
命令中尝试使用-cp
和-jar
,这是不受支持的,Stackoverflow上有很多关于此问题的问题({ {3}}是一个。)
您可以使用类似
的内容java -cp asterisk-java.jar:。 DefaultAgiServer
专门启动asterisk-java' s java
(如果我正确记住清单中的条目,那么指定DefaultAgiServer
将会做什么)。