Asterisk AGI脚本执行时不会出错,但不会生成任何结果
我正在尝试使用星号AGI运行shell脚本。我使用了这里提到的教程 我的extensions.conf如下Asterisk AGI脚本执行时不会出错,但不会生成任何结果,asterisk,agi,Asterisk,Agi,我正在尝试使用星号AGI运行shell脚本。我使用了这里提到的教程 我的extensions.conf如下 [default] include => clicall [clicall] exten => _X,1,Goto(s,1); exten => _X.,1,Goto(s,1); exten => s,1,Answer(); exten => s,n,EAGI(runEAGI.sh); #!/bin/bash java /home/sphata001/D
[default]
include => clicall
[clicall]
exten => _X,1,Goto(s,1);
exten => _X.,1,Goto(s,1);
exten => s,1,Answer();
exten => s,n,EAGI(runEAGI.sh);
#!/bin/bash
java /home/sphata001/Downloads/EAGI/JEAGIClient $$
我试图运行的脚本(runEAGI.sh)如下所示
[default]
include => clicall
[clicall]
exten => _X,1,Goto(s,1);
exten => _X.,1,Goto(s,1);
exten => s,1,Answer();
exten => s,n,EAGI(runEAGI.sh);
#!/bin/bash
java /home/sphata001/Downloads/EAGI/JEAGIClient $$
权限设置为755,脚本位于/var/lib/asterisk/agi-bin/
中。java文件(JEAGIClient)也已经预先编译好了。手动执行脚本时,它运行良好并连接到服务器。
但是,当从SIP客户端进行调用时,脚本根据星号控制台执行,但看不到任何结果。
我在控制台中得到以下输出
== Using SIP RTP CoS mark 5
-- Executing [888@default:1] Goto("SIP/1001-00000027", "s,1") in new stack
-- Goto (default,s,1)
-- Executing [s@default:1] Answer("SIP/1001-00000027", "") in new stack
-- Executing [s@default:2] EAGI("SIP/1001-00000027", "runEAGI.sh") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/runEAGI.sh
-- <SIP/1001-00000027>AGI Script runEAGI.sh completed, returning 0
-- Auto fallthrough, channel 'SIP/1001-00000027' status is 'UNKNOWN'
==使用SIP RTP CoS标记5
--执行[888@default:1]转到新堆栈中的(“SIP/1001-00000027”,“s,1”)
--转到(默认值,s,1)
--执行[s@default:1]在新堆栈中回答(“SIP/1001-00000027”,“”)
--执行[s@default:2]EAGI(“SIP/1001-00000027”,“runEAGI.sh”)在新堆栈中
--已启动AGI脚本/var/lib/asterisk/AGI-bin/runEAGI.sh
--AGI脚本runEAGI.sh已完成,返回0
--自动故障排除,通道“SIP/1001-00000027”状态为“未知”
有什么解决办法吗
多谢各位 检查脚本及其所需的任何资源是否归Asterisk用户所有,并且SELinux没有阻止脚本正确运行检查脚本及其所需的任何资源是否归Asterisk用户所有,而且SELinux并没有阻止脚本正确运行,最有可能的情况是,您需要指定java的完整路径 提示:对于调试asterisk AGI,简单的解决方案是将stop asterisk和start附加到控制台,这样您将看到所有脚本错误
asterisk -rx "core stop now"
asterisk -vvvvgc
也可以在asterisk控制台中完全启用AGI调试:
agi set debug on
最有可能的是,您需要指定java的完整路径 提示:对于调试asterisk AGI,简单的解决方案是将stop asterisk和start附加到控制台,这样您将看到所有脚本错误
asterisk -rx "core stop now"
asterisk -vvvvgc
也可以在asterisk控制台中完全启用AGI调试:
agi set debug on
谢谢。添加完整的java路径确实有帮助。它现在很有魅力。再次非常感谢,非常感谢。添加完整的java路径确实有帮助。它现在很有魅力。再次非常感谢。