我想在 mysql 数据库上记录通过我的 Asterisk 框获得的每个调用。根据我的阅读,Asterisk 没有提供任何开箱即用的东西(或者一些服务供我查询,因为 AMI 允许您查询当前状态,而不是以前的调用)。
起初,我想要存储的只是
- 呼叫来自的设备
- 原始来电显示
- 通话开始时间
- 最终来电显示(可以在拨号方案中修改)
- 拨打的号码
- 通话结束时间
我想我知道如何存储所有内容,但我遇到的问题是知道接收呼叫的设备......是否有一个变量保存这些信息?
为了得到这个,我想到了两件事:
- 为每个设备设置一个上下文...这也有两个选项
- 我可以有一个包罗万象的扩展,它在 mysql 数据库中创建条目并将本地通道拨号到我有逻辑的上下文。这个解决方案的真正糟糕之处在于,它总是会等待几秒钟,然后再处理不知道何时完成的调用 b/c
- 我可以在每个上下文中拥有所有逻辑......所以在拨出逻辑上,我将设备名称传递给拨出并存储信息的函数。明显的缺点是我拥有与我拥有的设备一样多的上下文,这将很快变得难以管理
有什么我想念的吗?我想到的另一个选项是在 sip.conf 设置文本呼叫者 ID(b/c 我想保留号码)......但这会覆盖文本呼叫者 ID,这对我来说现在并不重要,但它可能在某个时候...
谢谢!