2015-10-19 43 views
1

有什么办法来刷新pbx_spools的缓存? pbx_spool.so也不支持通过CLI重新加载。星号 - 终止预定的自动拨号电话文件假脱机

实施例:

#!/bin/bash 
cat >/tmp/wakeup.call <<EOF 
Channel: SIP/telefon 
CallerID: "Weckruf" <9999> 
MaxRetries: 3 
WaitTime: 60 
Context: wecker 
Extension: s 
Priority: 1 
EOF 
touch -d "7 hours" /tmp/wakeup.call 

# At this point Asterisk learns his task 
mv /tmp/wakeup.call /var/spool/asterisk/outgoing/ 

# for demonstration I decided to not want to be waken later 
sleep 10 && rm /var/spool/asterisk/outgoing/wakeup.call 

最后的Asterisk确实环7小时后...

我期望,如果我手动从在/ var /阀芯/星号/呼出删除.CALL文件/在应该拨打Asterisk不再拨打电话之前。但它确实如此。

+0

删除文件会阻止呼叫。 Asterisk控制台说什么? – miken32

+0

即使在调试和详细情况下,控制台也没有提及任何东西1000 – Sprinterfreak

+0

我发现Asterisk不可能在没有任何东西出现在控制台的情况下拨打电话! – miken32

回答

1

此行为的解决方案是使用唯一的文件名。

Asterisk在创建时读取调用文件,并且只在执行时检查具有相同名称的文件是否仍然存在。无论那里有什么。

Asterisk没有提及两者之间的文件删除。 其内容的文件名仍然在堆栈中被敲打,甚至具有相同文件名的新创建的文件被忽略。在执行时仅存在具有该名称的文件会使星号触发初始的callfile内容。

+0

很高兴知道;你有没有找到这些信息的来源,或只是试验和错误? – miken32

+0

太晚读了。 Sry基因。此行为已通过尝试错误进行了测试,稍后在pbx_spool.c的源代码中进行了验证。我没有检查它今天是否仍然适用。我发现这是无证的。 – Sprinterfreak