【问题标题】:Asterisk CDR duration difference on DB and h extenDB 和 h 扩展上的星号 CDR 持续时间差异
【发布时间】:2014-10-24 10:05:52
【问题描述】:

我在“h”扩展名上使用 AGI 脚本来计算通话费用并将其保存在 CDR(userfield) 变量中。

问题是我得到了 CDR(duration) 变量和存储在 MySQL 上的值之间的持续时间差异。主要是存储在 DB 上的持续时间比变量多 1 或 2 秒,例如插入过程延迟和持续时间不断计数。

我需要知道为什么会有这种持续时间差异,以及我应该如何避免它以正确的方式计费。

非常感谢。

【问题讨论】:

    标签: asterisk billing agi cdr


    【解决方案1】:

    你不应该在 'h' 扩展上使用 AGI(),你应该只在那里使用 DeadAGI。

    【讨论】:

      【解决方案2】:

      例子:

      你在问 CDR(duration),它返回你 5

      你在你的脚本中再做 2 秒

      将保存在数据库中 7.

      类似的事情发生在你的 cdr 上。不要在 h 扩展中使用长时间运行的脚本。只需在数据库或文件中记录事件并使用外部线程处理事件。

      【讨论】:

      • 感谢您的回答,实际上我正在数据库查找费率,那一定是延迟,我会想办法避免这种延迟
      • 如果您的费率查询时间超过 0.05 秒,这意味着您已经聘请了建筑师并更改了您的计费架构。
      猜你喜欢
      • 1970-01-01
      • 2018-10-12
      • 1970-01-01
      • 1970-01-01
      • 2017-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多