首页 > 其他分享 >FreeSwitch: esl 调用lua动态传参&日志查看

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

时间:2024-01-15 10:13:18浏览次数:45  
标签:传参 .. Lua callernum lua freeswitch FreeSwitch 日志

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://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/

标签:传参,..,Lua,callernum,lua,freeswitch,FreeSwitch,日志
From: https://www.cnblogs.com/yjmyzz/p/17964755

相关文章

  • 分布式限流——基于Redis的Lua脚本限流实现
    分布式限流当你的应用分布式部署出现对等端(peer)时,单机的限流往往不能满足对下游保护的作用,因为它仅仅是jvm内存层面的流量控制。这个时候自然而然会想到用一些跨JVM的分布式中间件控制在单位时间窗口内的请求是否通行,本文我们将探讨如何借助Redis实现分布式限流。1固定窗口限流......
  • VIM/NeoVIM:解决LuaSnip下Tab按键跳转冲突问题
    主要现象当使用LuaSnip生成片段时,即使切换过VIM模式,输入模式下的Tab按键仍然会导致光标跳转到Snippet的片段占位符处,导致光标“随机跳转”的问题。发生原因这是因为触发代码片段之后,LauSnip会一直维持一个记录占位符跳转的Session,这个Session在当前Buffer会一直持续到占位符结......
  • freeswitch: esl inbound模式下外呼拨号
    相信大家可能接到过一些电话,听上去不象是真人打过来的,比如:通知“您的信用卡到期了”,或者“您订的飞机航班取消了,请尽快改签或取消行程”,这种就是所谓的“自动外呼”系统,技术上讲,可以通过eslinbound模式实现(注:对esl不熟悉的朋友,戳这里)大概思路:先把一些要外呼的任务计划,落地存......
  • freeswitch+lua实现IVR(互动式语音应答)
    IVR(InteractiveVoiceResponse)交互式语言应答,是呼叫中心的1个经典应用场景,FreeSwitch官方有一个利用lua实现的简单示例,大致原理是利用lua脚本+TTS实现,记录一下:(环境:FreeSwitch 1.10.11+Windows10)步骤1:安装TTSFreeSwitch自带了1个TTS引擎(发音效果比较生硬,仅支持英文,不过......
  • Unity3D 如何把全部游戏逻辑都放到lua层实现详解
    Unity3D是一款非常流行的游戏开发引擎,它支持C#、JavaScript和Boo等脚本语言。然而,有时候我们可能希望将全部游戏逻辑都放到Lua层实现,这样可以更方便地进行游戏逻辑的修改和调试。本文将详细介绍如何使用Unity3D将全部游戏逻辑都放到Lua层实现。对啦!这里有个游戏开发交流小组里面......
  • Lua网络爬虫实战:使用http服务器获取虾皮商品信息的全过程
    这段Lua代码是一个简单的爬虫示例,使用了Lua中的http模块进行网络请求,并设置了代理信息。以下是对代码的一些解释和注意事项:安装http模块:luarocksinstallhttp这个命令用于安装Lua的http模块,以便在程序中使用HTTP请求功能。代理设置:localproxy_host="www.duoip.cn......
  • 结构体:修改默认对齐数、结构体传参——《初学C语言第45天》
    //////——————7.修改默认对齐数////#pragma:预处理指令,可以改变我们的默认对齐数。//#include<stdio.h>//#pragmapack(8)//设置默认对齐数为8//设置的开始//structS1//{//  charc1;//  inti;//  charc2;//};//#pragmapack()//取消设置的默认对齐......
  • 一个报错深刻理解axios传参和mock拦截(外加正则表达式)
    前言:事情是这样的,在使用axios二次封装和mock进行拦截的时候,不是参数传递方式不正确就是找不到后端接口,为此我茶不思饭不想把axios和mock好好看了一遍,最后除了这些问题,发现是输在了正则表达式上面,找出错误的时候自己都懵了axioa传参问题总所周知,我们在平时使用axios的时候是这样......
  • windows下编写lua脚本生成exe
    之前我有个想法,想在window下,远程执行服务器Linux下的某个脚本,我第一时间想到的是用jekenis,但感觉如果能对输入参数更灵活操作,会更好些,然后发现一个比较有意思的工具srlua ,它可以将lua编写的代码打包输出成exe文件。srlua目录内容如下:操作说明:glue.exesrlua.exetest.lu......
  • Vue中$router.push()路由切换、如何传参和获取参数 和获取不到$router.push 参数问题
    路由的两种传参方式:  一:声明式<router-link:to="{path:'/login'}">Home</router-link> 二:编程式$router.push(...) //该方法的参数可以是一个字符串路径,或者一个描述地址的对象。不带参数写法://字符串(对应填写上面的path) this.$router.push('/login') //对......