You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.3 KiB
65 lines
1.3 KiB
#!/usr/bin/env lua5.1
|
|
-- Kamailio Lua utils
|
|
require 'utils'
|
|
|
|
-- kamailio log for a table
|
|
function table.log(t, msg, level)
|
|
if not level then
|
|
level = "debug"
|
|
end
|
|
if msg then
|
|
sr.log(level, msg)
|
|
end
|
|
if not t then
|
|
-- empty table
|
|
return
|
|
end
|
|
sr.log(level, table.tostring(t))
|
|
end
|
|
|
|
-- cleans and sets string values from the table list
|
|
function sets_avps(list)
|
|
if not list then
|
|
error("list is empty")
|
|
end
|
|
|
|
local i, v
|
|
|
|
for i,v in pairs(list) do
|
|
-- sr.log("debug","i:" .. i .. " v:" .. v)
|
|
sr.pv.unset('$avp(' .. i ..')[*]')
|
|
sr.pv.sets('$avp(' .. i .. ')', v)
|
|
end
|
|
end
|
|
|
|
-- cleans and sets int values from the table list
|
|
function seti_avps(list)
|
|
if not list then
|
|
error("list is empty")
|
|
end
|
|
local i, v
|
|
|
|
for i,v in pairs(list) do
|
|
-- sr.log("debug","i:" .. i .. " v:" .. v)
|
|
sr.pv.unset('$avp(' .. i ..')[*]')
|
|
sr.pv.seti('$avp(' .. i .. ')', v)
|
|
end
|
|
end
|
|
|
|
function clean_avp(obj)
|
|
if not obj then
|
|
error("obj is empty")
|
|
end
|
|
|
|
if type(obj) == "string" then
|
|
sr.pv.unset('$avp(' .. obj .. ')[*]')
|
|
elseif type(obj) == "table" then
|
|
local i,_
|
|
|
|
for i,_ in pairs(obj) do
|
|
sr.pv.unset('$avp(' .. i .. ')[*]')
|
|
end
|
|
end
|
|
end
|
|
|
|
--EOF |