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