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

相关推荐
java搬砖工-苤-初心不变5 分钟前
OpenResty 配合 Lua 脚本的使用
开发语言·lua·openresty
半夏知半秋1 天前
基于跳跃表的zset实现解析(lua版)
服务器·开发语言·redis·学习·lua
Wyc724091 天前
Lua语言基础笔记
开发语言·笔记·lua
锐策4 天前
Lua 核心知识点详解
开发语言·lua
lanhuazui104 天前
lua中 string.match返回值
lua
无名客04 天前
redis分布式锁为什么采用Lua脚本实现。而不是事务
redis·分布式·lua·事务
我发在否5 天前
Lua > OpenResty HelloWorld
lua·openresty
测试界清流5 天前
postman接口功能测试
开发语言·lua
lanhuazui106 天前
lua中table键类型及lua中table的初始化有几种方式
lua
程序猿多布7 天前
Lua和C#比较
c#·lua