2

我正在尝试使用星号 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'

有什么解决办法吗?

谢谢你。

4

2 回答 2

2

检查脚本及其所需的任何资源是否属于 Asterisk 用户,并且 SELinux 没有阻止脚本正确运行

于 2013-03-07T20:26:39.200 回答
2

最有可能 - 您需要指定 java 的完整路径。

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

asterisk -rx "core stop now"
asterisk -vvvvgc

也可以在星号控制台中完全启用 AGI 调试:

agi set debug on
于 2013-03-07T23:03:37.280 回答