${CDR(start)} 和 ${STRFTIME(${EPOCH},%Y-%m-%d %H:%M:%S)} 星号之间的区别
difference between ${CDR(start)} and ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} in asterisk
我创建了一个拨号方案,它接听电话并保存通话的开始和结束时间。我使用 ${CDR(start)}
来获取通话的开始时间,但是当我使用 ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)}
时,与 ${CDR(start)}
相比,它给了我 10 秒或更多秒的差异。我的部分代码:
same => n,NoOp(------${CDR(start)}----${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)}--)
上面一行是我的 dialplan.From 文档中的第二行 ${CDR(start)}
给出了通话的开始时间, ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)}
给出了当前时间。但是我把这行作为我的第二行dialplan 所以它几乎开始呼叫所以 ${CDR(start)}
和 ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)}
应该大致相等但输出就像
NoOp(------2015-10-25 12:30:10----2015-10-25 12:30:21--)
为什么两者相差这么多?而且我也不知道为什么 ${CDR(end)}
的值是空的。
${CDR(start)}
- 是通话开始时间。
${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)}
- 当前 时间,执行此命令的时间。
挂断后如果使用EPOCH
变量,可能指向通话结束
${CDR(end)}
如果正在通话可以为空,挂断后补上
关于 CDR 变量:https://wiki.asterisk.org/wiki/display/AST/CDR+Variables
${CDR(start)}不是当前通话开始时间,而是当前cdr开始时间。从队列传输后可以更改,ResetCDR,ForkCDR命令
EPOCH 始终给出当前 linux 时间。挂断后它可以显示通话结束,但如果处理时间过长也可以显示不同的时间。
我创建了一个拨号方案,它接听电话并保存通话的开始和结束时间。我使用 ${CDR(start)}
来获取通话的开始时间,但是当我使用 ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)}
时,与 ${CDR(start)}
相比,它给了我 10 秒或更多秒的差异。我的部分代码:
same => n,NoOp(------${CDR(start)}----${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)}--)
上面一行是我的 dialplan.From 文档中的第二行 ${CDR(start)}
给出了通话的开始时间, ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)}
给出了当前时间。但是我把这行作为我的第二行dialplan 所以它几乎开始呼叫所以 ${CDR(start)}
和 ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)}
应该大致相等但输出就像
NoOp(------2015-10-25 12:30:10----2015-10-25 12:30:21--)
为什么两者相差这么多?而且我也不知道为什么 ${CDR(end)}
的值是空的。
${CDR(start)}
- 是通话开始时间。
${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)}
- 当前 时间,执行此命令的时间。
挂断后如果使用EPOCH
变量,可能指向通话结束
${CDR(end)}
如果正在通话可以为空,挂断后补上
关于 CDR 变量:https://wiki.asterisk.org/wiki/display/AST/CDR+Variables
${CDR(start)}不是当前通话开始时间,而是当前cdr开始时间。从队列传输后可以更改,ResetCDR,ForkCDR命令
EPOCH 始终给出当前 linux 时间。挂断后它可以显示通话结束,但如果处理时间过长也可以显示不同的时间。