freeswitch,在lua脚本如何获取通话时间

freeswitch,在lua脚本如何获取通话时间,第1张

FREESWITCH中录音你如果要搞到LUA脚本里就麻烦了,直接在dialplan里面就能录音。

<action application="set" data="execute_on_answer=record_session /data/media/${strftime(%Y%m%d)}/${strftime(%Y%m%d%H)}/${uuid}_$1_${caller_id_number}wav"/>

时间也都是从FS上面获取到传进LUA脚本里的。我是这么使用的。

--~ day1 = {

--~ year = 2011,

--~ month = 6,

--~ day = 27

--~ }

--~ day2 = {

--~ year = 2022,

--~ month = 6,

--~ day = 27

--~ }

t1 = 20110627

t2 = 20220627

day1 = {}

day2 = {}

day1year,day1month,day1day = stringmatch(t1,"(%d%d%d%d)(%d%d)(%d%d)")

day2year,day2month,day2day = stringmatch(t2,"(%d%d%d%d)(%d%d)(%d%d)")

numDay1 = ostime(day1)

numDay2 = ostime(day2)

print((numDay1-numDay2)/(360024))

适合任何格式的 被屏蔽掉的是 年月日已经被提取出来的格式

把表一和表二转化成秒数再除以每天的360024就是了

对了的话就给分

错了的话直接喷

print一下就看出来了:

> print(ostime())

1337060663

> print(osdate())

05/15/12 13:44:30

ostime返回的是从1970年x月x日到现在经过的秒数,osdate返回的是按照一定格式输出的日期字符串或table。

osdate ([format [, time]])

返回一个包含日期及时刻的字符串或表。 格式化方法取决于所给字符串 format。

如果提供了 time 参数, 格式化这个时间 (这个值的含义参见 ostime 函数)。 否则,date 格式化当前时间。

如果 format 以 '!' 打头, 日期以协调世界时格式化。 在这个可选字符项之后, 如果 format 为字符串 "t", date 返回有后续域的表: year (四位数字),month (1–12),day (1–31), hour (0–23),min (0–59),sec (0–61), wday (星期几,星期天为 1 ), yday (当年的第几天), 以及isdst (夏令时标记,一个布尔量)。 对于最后一个域,如果该信息不提供的话就不存在。

如果 format 并非 "t", date 以字符串形式返回, 格式化方法遵循 ISO C 函数 strftime 的规则。

如果不传参数调用, date 返回一个合理的日期时间串, 格式取决于宿主程序以及当前的区域设置 (即,osdate() 等价于 osdate("%c"))。

在非 POSIX 系统上, 由于这个函数依赖 C 函数 gmtime 和 localtime, 它可能并非线程安全的。

感谢:>

以上就是关于freeswitch,在lua脚本如何获取通话时间全部的内容,包括:freeswitch,在lua脚本如何获取通话时间、LUA 计算两个时间相差多少天。怎么写高手赐教。时间默认格式为:20110627 意思2011年6月27日。、lua中"os.time"和"os.date"的区别是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9284557.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存