我正在努力解决这个问题。在Asterisk中,我需要在留下语音邮件后执行外部脚本。为此,我在voicemail.conf中启用了externnotify,但它无法正常工作。所以我在C代码中搜索并找到了相关的代码。执行外部脚本的命令是:
execl("/bin/sh", "/bin/sh", "-c", s, (char *) NULL);
其中 s 为/usr/bin/myscript.sh default 2000 12 8 0 &
。
excel在子进程中成功运行,但脚本myscript.sh
为:
#!/bin/sh
CONTEXT=$1
EXTEN=$2
NUMVMS=$3
echo "$CONTEXT $EXTEN $NUMVMS" > /home/testfile
未执行。奇怪的是我写了另一个C文件并将execl命令放入其中并成功执行我的脚本。我用execl
命令替换system
但没有再次成功。我做错了哪一部分?
答案 0 :(得分:0)
首先我要说你,语音邮件ALREADY已经通知功能,而且运行正常。
关于您的脚本无法正常工作的原因 - 您在root用户下测试过它,而大多数星号在asterisk用户下运行,因此您在写入日志文件时会遇到权限问题。