lua脚本在执行过程中,可动态接收参数,这样可以让系统更灵活,以上节的自动外呼为例,callout.lua改成下面这样:
-- 主叫 local callernum = argv[1]; -- 被叫 local calleenum = argv[2]; freeswitch.consoleLog("info","debug==> caller:" .. callernum .. ", callee:" .. calleenum .. "\n"); -- print("debug=> caller:" .. callernum .. ", callee:" .. calleenum .. "\n"); session = freeswitch.Session("user/" .. callernum); while session:ready() do session:execute("bridge","user/" .. calleenum); end
注1:argv是1个内置的变量,存储了传进来的参数(注:下标从1开始)
注2:lua脚本一般不太容易断点调试,所以建议关键的地方打日志(类似freeswitch.consoleLog 或 print)
然后esl java client中调用lua的地方,改成:
client.sendAsyncApiCommand("luarun", "callout.lua 1000 1001");
freeswitch控制台,可以看到日志及其它关键信息
如果没有开控制台(比如:freeswitch后台运行),可以直接打开日志文件 ,一般是在 \FreeSWITCH\log\freeswitch.log
参考文档 :
https://www.thenoccave.com/2012/03/change-freeswitch-log-location/
标签:传参,..,Lua,callernum,lua,freeswitch,FreeSwitch,日志 From: https://www.cnblogs.com/yjmyzz/p/17964755