1

我想在 mysql 数据库上记录通过我的 Asterisk 框获得的每个调用。根据我的阅读,Asterisk 没有提供任何开箱即用的东西(或者一些服务供我查询,因为 AMI 允许您查询当前状态,而不是以前的调用)。

起初,我想要存储的只是

  • 呼叫来自的设备
  • 原始来电显示
  • 通话开始时间
  • 最终来电显示(可以在拨号方案中修改)
  • 拨打的号码
  • 通话结束时间

我想我知道如何存储所有内容,但我遇到的问题是知道接收呼叫的设备......是否有一个变量保存这些信息?

为了得到这个,我想到了两件事:

  • 为每个设备设置一个上下文...这也有两个选项
    • 我可以有一个包罗万象的扩展,它在 mysql 数据库中创建条目并将本地通道拨号到我有逻辑的上下文。这个解决方案的真正糟糕之处在于,它总是会等待几秒钟,然后再处理不知道何时完成的调用 b/c
    • 我可以在每个上下文中拥有所有逻辑......所以在拨出逻辑上,我将设备名称传递给拨出并存储信息的函数。明显的缺点是我拥有与我拥有的设备一样多的上下文,这将很快变得难以管理

有什么我想念的吗?我想到的另一个选项是在 sip.conf 设置文本呼叫者 ID(b/c 我想保留号码)......但这会覆盖文本呼叫者 ID,这对我来说现在并不重要,但它可能在某个时候...

谢谢!

4

1 回答 1

0

是的,它确实提供了所有这些开箱即用的功能。查看“cdr_odbc”模块。我个人使用 cdr_manager 模块来获取所有呼叫详细信息,然后这让我有机会根据我的业务逻辑应用应用程序代码来按摩/转换我感兴趣的 CDR 字段。

于 2013-10-21T22:32:55.190 回答