当前位置: 首页 > news >正文

测试OpenSIPS3.4.3的lua模块

这几天测试OpenSIPS3.4.3的lua模块,记录如下:

  • 有bug,但能用

但现实世界就是这样,总是不完美的,发现之后马上提了issue

下面这段代码运行报错:

function func1(msg)
        xlog("ERR","Hello, OpenSIPS\n") -- 把ERR改成EEE就没问题
 end

sipstate.c的127行明显有问题(读者自己去查阅源码,这里不贴了)

  • 功能比Kamailio的KEMI少,少多了,更要命的是没lua例子

下面是一个简单的例子:

# opensips.cfgloadmodule "lua.so"
modparam("lua", "luafilename", "/etc/opensips/opensips.lua")
modparam("lua", "lua_auto_reload", 1)
...route {lua_exec("func1");...
}-- opensips.lua
function func1(msg)local via = getHeader(msg, "Via")xlog("via = " .. via .. "\n")
end
  • lua_exec可以带参数
# opensips.cfgloadmodule "lua.so"
modparam("lua", "luafilename", "/etc/opensips/opensips.lua")
modparam("lua", "lua_auto_reload", 1)
...route {lua_exec("func2", "1");# 传伪变量也可$var(x) = '2';lua_exec("func2", $var(x));...
}-- opensips.lua
function func2(msg, param)
-- ...
end

但只能带一个参数,只能是字符串类型

  • lua_auto_reload 参数如果配置为1,那么lua修改之后自动reload
  • 有很多函数没写到文档里面 

在源码里面搜索luaL_Reg可以找到很多,有时间方面的,有mysql方面的,还有memcache方面的

  • lua模块还是很实用的

有一次客户要修改sdp,native路由很难处理,但对lua就是小菜一碟了(多行字符串处理), 毕竟lua才是真正的编程语言

http://www.lryc.cn/news/297580.html

相关文章:

  • 【机器学习】数据清洗之处理缺失点
  • Linux 命令行的世界 :2.文件系统中跳转
  • R语言:箱线图绘制(添加平均值趋势线)
  • Open3D 模型切片
  • KtConnect 本地连接连接K8S工具
  • 【Java万花筒】数据的安全钥匙:Java的加密与保护方法
  • 【Java多线程案例】实现阻塞队列
  • 【制作100个unity游戏之24】unity制作一个3D动物AI生态系统游戏3(附项目源码)
  • home work day5
  • c#安全-nativeAOT
  • 【Java】案例:检测MySQL是否存在某数据库,没有则创建
  • 内网渗透靶场02----Weblogic反序列化+域渗透
  • [嵌入式系统-9]:C语言程序调用汇编语言程序的三种方式
  • 备战蓝桥杯---搜索(完结篇)
  • 深入浅出:Golang的Crypto/SHA256库实战指南
  • Unity_ShaderGraph节点问题
  • Java集合 Collection接口
  • C# Task的使用
  • 尚硅谷Ajax笔记
  • 【MATLAB源码-第138期】基于matlab的D2D蜂窝通信仿真,对比启发式算法,最优化算法和随机算法的性能。
  • AcWing 第 142 场周赛 B.最有价值字符串(AcWing 5468) (Java)
  • 滑块识别验证
  • 每日五道java面试题之java基础篇(四)
  • 我的docker随笔43:问答平台answer部署
  • 17、ELK
  • React+Antd+tree实现树多选功能(选中项受控+支持模糊检索)
  • 鸿蒙 WiFi 扫描流程(2)
  • 微信小程序(四十)API的封装与调用
  • WebSocket+Http实现功能加成
  • go语言实现LRU缓存