2013-03-07 141 views
2

我想用asterisk AGI运行一个shell脚本。我已经使用 http://www.shiffman.net/p5/asterisk/AGI脚本执行没有错误,但没有生成结果

我的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); 

我试图运行(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 [[email protected]:1] Goto("SIP/1001-00000027", "s,1") in new stack 
    -- Goto (default,s,1) 
    -- Executing [[email protected]:1] Answer("SIP/1001-00000027", "") in new stack 
    -- Executing [[email protected]: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' 

任何解决方案?

谢谢。

回答

2

大多数likly - 你需要指定完整路径的java。

提示:对于调试星号AGI简单的解决方案是停止星号并启动它连接到控制台,这样你会看到所有的脚本错误。

asterisk -rx "core stop now" 
asterisk -vvvvgc 

也可以是usfull使AGI调试Asterisk的控制台:

agi set debug on 
+0

非常感谢。添加完整的java路径确实有帮助。它现在像一种魅力。再次感谢。 – user2143272 2013-03-08 04:48:47

2

检查脚本,它需要的任何资源由Asterisk的用户所拥有,并且对SELinux没有阻止脚本正确运行

相关问题