测试OpenSIPS3.4.3的lua模块

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

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

我凑了一个简单的例子:

复制代码
# opensips.cfg

loadmodule "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 mb = pseudoVar(msg, "$mb")
	local via = getHeader(msg, "Via")
    xlog("L_NOTICE", "request = " .. mb .. "\n")
    xlog("via = " .. via .. "\n")

	local m = getmem()
	xlog("total_size = " .. m.total_size .. "\n")
	xlog("total_frags = " .. m.total_frags .. "\n")
end
  • lua_exec可以带参数

    opensips.cfg

    loadmodule "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才是真正的编程语言

相关推荐
玩转C语言和数据结构21 小时前
Lua下载和安装教程(附安装包)
lua·lua下载·lua安装教程·lua下载和安装教程·lua安装包
Arva .1 天前
HTTP Client
网络协议·http·lua
爱吃小胖橘2 天前
Lua语法(2)
开发语言·unity·lua
ellis19703 天前
LuaC API知识点汇总
unity·lua
爱吃小胖橘6 天前
Lua语法
开发语言·unity·lua
东方芷兰6 天前
JavaWeb 课堂笔记 —— 20 SpringBootWeb案例 配置文件
java·开发语言·笔记·算法·log4j·intellij-idea·lua
1nullptr6 天前
Lua上值与闭包
开发语言·lua
半夏知半秋8 天前
skynet-socket.lua源码分析
服务器·开发语言·学习·架构·lua
夜猫逐梦11 天前
【lua】luajit 命令行使用指南
开发语言·lua
利来利往11 天前
【奇怪的bug】lua的nil不报错
开发语言·bug·lua