FreeSwitch: esl 调用lua动态传参&日志查看

lua脚本在执行过程中,可动态接收参数,这样可以让系统更灵活,以上节的自动外呼为例,callout.lua改成下面这样:

1
2
3
4
5
6
7
8
9
10
11
12
-- 主叫
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的地方,改成:

1
client.sendAsyncApiCommand("luarun", "callout.lua 1000 1001");

  

freeswitch控制台,可以看到日志及其它关键信息

如果没有开控制台(比如:freeswitch后台运行),可以直接打开日志文件 ,一般是在 \FreeSWITCH\log\freeswitch.log

 

参考文档 :

https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/Client-and-Developer-Interfaces/Lua-API-Reference/Lua-examples/Lua-arguments-calling-functions_16354984/

https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/Client-and-Developer-Interfaces/Lua-API-Reference/#sessionconsolelog

https://www.thenoccave.com/2012/03/change-freeswitch-log-location/

posted @   菩提树下的杨过  阅读(403)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
历史上的今天:
2014-01-15 JAVA_HOME环境变量失效的解决办法
2014-01-15 JAVA CDI 学习(1) - @Inject基本用法
2010-01-15 Silverlight中也玩屏幕截图
2010-01-15 重温delphi之:如何将Bitmap位图与base64字符串相互转换
2010-01-15 silverlight中如何将BitmapImage转化为Stream或byte数组?
点击右上角即可分享
微信分享提示