【问题标题】:Asterisk - abort scheduled auto dial - call file spoolAsterisk - 中止预定的自动拨号 - 呼叫文件假脱机
【发布时间】:2015-10-19 01:05:16
【问题描述】:

有没有办法刷新 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/spool/asterisk/outgoing/ 手动删除 .call 文件,那么 Asterisk 就不会再拨打电话了。但确实如此。

【问题讨论】:

  • 删除文件应该会阻止调用。 Asterisk 控制台说什么?
  • 即使调试和详细程度为 1000,控制台也不会说什么
  • 我发现 Asterisk 不太可能在不向控制台输出任何内容的情况下拨打电话!

标签: file asterisk phone-call abort


【解决方案1】:

解决此问题的方法是使用唯一的文件名。

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

Asterisk 没有提到中间文件的删除。 文件名及其内容仍然在堆栈中被锤击,甚至新创建的具有相同文件名的文件也会被忽略。只有在执行时存在具有该名称的文件才会使星号触发初始调用文件内容。

【讨论】:

  • 很高兴知道;您是否有找到此信息的来源,或者只是反复试验?
  • 阅读这篇文章太晚了。对不起。此行为已通过 try&error 进行了测试,随后在 pbx_spool.c 的源代码中进行了验证。我还没有检查它今天是否仍然适用。我发现这是无证的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多