Java 没有为URL';配置脚本;AGI://localhost/xxx.AGI';

Java 没有为URL';配置脚本;AGI://localhost/xxx.AGI';,java,asterisk,agi,Java,Asterisk,Agi,尝试启动呼叫时出现以下错误 <SIP/xx.xxx.xxx.xx-00000000>AGI Rx << VERBOSE "No script configured for URL 'AGI://localhost/xxx.agi' (script 'xxx.agi')" 1 AGI Rx此错误由java代码编写。有关如何执行调用的更多信息,请参见java代码。最有可能需要做的是 AGI://localhost/xxx.agi?function=func com.yo

尝试启动呼叫时出现以下错误

<SIP/xx.xxx.xxx.xx-00000000>AGI Rx << VERBOSE "No script configured for URL 'AGI://localhost/xxx.agi' (script 'xxx.agi')" 1

AGI Rx此错误由java代码编写。有关如何执行调用的更多信息,请参见java代码。最有可能需要做的是

AGI://localhost/xxx.agi?function=func
 com.yourcompany.yourpackage.YourScript

这已经过时了,但我昨天还是被同样的问题绊倒了,并找到了解决办法。 很多人都在谈论属性文件应该位于的类路径,他们是对的。 只要您运行asterisk jar来运行测试脚本,它就不会在脚本指向的地方包含属性文件。所以你需要指挥它。 尝试使用此命令,但使用您的路径进行修改:

java -cp /home/your user/folder with project/src/main/java/:/home/your user/folder with jar file placed/asterisk-java-2.0.2.jar org.asteriskjava.fastagi.DefaultAgiServer
org.asteriskjava.fastagi.DefaultAgiServer-这是运行服务器时使用的路径。即使你会写一些像:

java -jar asterisk-java-2.0.2.jar 
hello.agi = com.yourcompany.yourpackage.YourScript
无论如何,它都会调用DefaultAgiServer。 所以我的观点是,这里的类路径是一个关键字,上面的命令肯定会解决这个问题=)

UPD:虽然它解决了.properties文件的类路径问题,但这并不意味着它可以解决这个问题,如果脚本放在其他包中=) 如果脚本的路径类似于

AGI://localhost/xxx.agi?function=func
 com.yourcompany.yourpackage.YourScript
这意味着您需要在属性中写下相同的内容。比如:

java -jar asterisk-java-2.0.2.jar 
hello.agi = com.yourcompany.yourpackage.YourScript

希望这能帮助别人;)

“我在这里看不到与java的任何关系?”Gyrogeerless,它是用java编写的,映射是用fast agi完成的。