freeswith内置脚本如何检测呼叫状态以及知道用户提前挂断

Song2077 次浏览0个评论2018年10月17日

楼主在做智能机器人的过程中遇到一个问题,当我们内置脚本处理较为复杂的业务逻辑时,用户提前挂断电话,但是内置脚本还在一直执行;后来排查原因才发现这个问题,记录一下解决方案:

我们这里使用session:ready来检查Session是否可正常使用,如果已经挂机就会返回false以前楼主一直以为session:ready是固定的值,就是启动内置脚本时候的状态,其实不是,他是随时可以获取最新的状态!

查看[杜金房 freeswitch权威指南]发现如下:在写脚本时,如果有循环,一定需要经常检测session:ready()是否为true,否则Session挂机后Lua脚本可能仍然在死循环地运行。

Lua使用如下:

while (session:ready() == true) do
 -- do something here
end

python使用如下:

if session.ready() == true:
    print("do something here")

提交评论

请登录后评论

用户评论

    当前暂无评价,快来发表您的观点吧...

更多相关好文

    当前暂无更多相关好文推荐...