【发布时间】:2014-10-24 10:05:52
【问题描述】:
我在“h”扩展名上使用 AGI 脚本来计算通话费用并将其保存在 CDR(userfield) 变量中。
问题是我得到了 CDR(duration) 变量和存储在 MySQL 上的值之间的持续时间差异。主要是存储在 DB 上的持续时间比变量多 1 或 2 秒,例如插入过程延迟和持续时间不断计数。
我需要知道为什么会有这种持续时间差异,以及我应该如何避免它以正确的方式计费。
非常感谢。
【问题讨论】:
我在“h”扩展名上使用 AGI 脚本来计算通话费用并将其保存在 CDR(userfield) 变量中。
问题是我得到了 CDR(duration) 变量和存储在 MySQL 上的值之间的持续时间差异。主要是存储在 DB 上的持续时间比变量多 1 或 2 秒,例如插入过程延迟和持续时间不断计数。
我需要知道为什么会有这种持续时间差异,以及我应该如何避免它以正确的方式计费。
非常感谢。
【问题讨论】:
你不应该在 'h' 扩展上使用 AGI(),你应该只在那里使用 DeadAGI。
【讨论】:
例子:
你在问 CDR(duration),它返回你 5
你在你的脚本中再做 2 秒
将保存在数据库中 7.
类似的事情发生在你的 cdr 上。不要在 h 扩展中使用长时间运行的脚本。只需在数据库或文件中记录事件并使用外部线程处理事件。
【讨论】: