测试OpenSIPS3.4.3的lua模块

本文作者测试OpenSIPS3.4.3的lua模块,指出其功能相对较少且缺少官方示例。作者提供了一个简单lua脚本和lua_exec的用法,强调lua模块在处理复杂任务如SDP修改时的优势。
摘要由CSDN通过智能技术生成

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

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值