我目前正在研究星号。如果文件存在,我必须执行一些操作,如果不存在,我将不得不播放文件不存在的消息。
那么如何检查如果文件存在于星号拨号计划中
谢谢
即使 Muhammad Salman Farooq 之前提到过,这里举个例子:我们想播放个人提示或通用提示,作为后备。
same => n,Set(exists=${STAT(e,${ASTDATADIR}/sounds/custom/user-${EXTEN}.wav)})
如果文件存在,该STAT
函数返回 1,否则返回 0。在这种情况下,我们正在检查一些我们想要使用该Playback
功能播放的文件。因此,我们必须定义整个文件路径。使用该ASTDATADIR
变量来保持您的拨号方案系统独立。
要播放通用或个性化文件,请使用:
same => n,Playback(custom/user-${IF($[ ${exists} = 1 ] ? ${EXTEN} : generic)})
或者你可以这样做
same => n,System(test -e /path/to/file)
same => n,GotoIf($["${SYSTEMSTATUS}" = "SUCCESS"]?alabel)
不要忘记文件名上的文件扩展名
在拨号计划中,您可以执行星号 AGI 脚本(例如 perl)来检查文件是否存在,然后分配一个布尔变量,稍后可以在拨号计划中检索该变量。然后在下一个拨号计划操作中,您可以根据设置变量管理它的行为方式(播放声音文件)。您可以在此处参考星号 perl agi:http ://www.voip-info.org/wiki/view /星号+perl+库