AGI脚本执行时没有错误,但没有生成结果

时间:2013-03-07 08:01:13

标签: asterisk agi

我正在尝试使用星号AGI运行shell脚本。我使用过这里提到的教程 http://www.shiffman.net/p5/asterisk/

我的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 [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'

任何解决方案?

谢谢。

2 个答案:

答案 0 :(得分:2)

检查脚本及其所需的任何资源是否由Asterisk用户拥有,并且SELinux不会阻止脚本正常运行

答案 1 :(得分:2)

最喜欢 - 你需要指定java的完整路径。

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

asterisk -rx "core stop now"
asterisk -vvvvgc

也可以在asterisk控制台中启用AGI调试:

agi set debug on