我们办公室里有人使用软件电话连接到我们的 Asterisk 系统。当他们在办公室时,软件电话处于在线状态,当他们不在办公室时,软件电话处于离线状态。因此,日志中的“可联系”/“无法联系”通知足以让我们确定某人何时“登录”或“退出”。
我想建立一个报告系统来了解用户可用的时间长度,但我不确定获取数据的最佳方法。
我可以轮询日志;偶尔运行一个 cron 作业,它会解析日志以查找这些事件,然后记录下来。我并不特别喜欢这个选项,但如果它是唯一可用的选项,我会使用它。
理想情况下,Asterisk 会有一些我可以绑定的事件或触发器,这些事件或触发器会启动我编写的某个脚本,该脚本会将事件记录到数据库中。有这样的事吗?我的搜索没有发现任何东西。
答案1
我还没有尝试过,它实际上是轮询日志的一个特殊情况(但更简单)。为什么不运行“Fail2Ban”,使用自定义规则搜索“UNREACHABLE”和“Reachable”响应,并结合脚本自动更新数据库。