Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asterisk AGI脚本执行时不会出错,但不会生成任何结果_Asterisk_Agi - Fatal编程技术网

Asterisk AGI脚本执行时不会出错,但不会生成任何结果

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

我正在尝试使用星号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/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路径确实有帮助。它现在很有魅力。再次非常感谢。