我正在努力解决这个问题。在 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
命令替换但再次没有成功。我做错了哪一部分?