我正在从我的拨号计划中调用 AGI SCRIPT 并使用 exec 函数来调用 sh 脚本,但它不起作用。为什么 ?是否可以使用 agi 脚本调用 sh 脚本?
$agi->exec("sh count_length.sh '/SOUND/shakti.gsm'" );
我正在从我的拨号计划中调用 AGI SCRIPT 并使用 exec 函数来调用 sh 脚本,但它不起作用。为什么 ?是否可以使用 agi 脚本调用 sh 脚本?
$agi->exec("sh count_length.sh '/SOUND/shakti.gsm'" );
看起来你正在使用phpAGI
exec 函数是在调用时“执行”一个 Asterisk 应用程序$agi->exec()
。它真的打算用于常规星号应用程序,例如播放您将发出的声音:
$agi->exec("Playback","demo-congrats");
如果要执行系统调用,则从 Asterisk 拨号计划(不是专门通过 AGI)使用该SYSTEM
应用程序。通过在星号 CLI 发出来查看它的帮助:
asterisk*CLI> core show application System
但!我认为您真正想要做的是使用 PHP 的内置方法为您的系统提供外壳。您将获得更有限的控制,这可能是最有效的方法。
我通常这样做的方法是使用PHP 手册页中的这个函数system()
function syscall($command){
if ($proc = popen("($command)2>&1","r")){
while (!feof($proc)) $result .= fgets($proc, 1000);
pclose($proc);
return $result;
}
}
然后你可以这样称呼它:
<?php
$result = syscall("/path/to/count_length.sh '/SOUND/shakti.gsm'");
?>