execl in externnotify C代码不能在Asterisk的语音邮件部分工作

时间:2018-01-25 12:19:00

标签: system asterisk voicemail execl external-script

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

1 个答案:

答案 0 :(得分:0)

首先我要说你,语音邮件ALREADY已经通知功能,而且运行正常。

关于您的脚本无法正常工作的原因 - 您在root用户下测试过它,而大多数星号在asterisk用户下运行,因此您在写入日志文件时会遇到权限问题。