This is an old revision of the document!
Table of Contents
Lua API
Overview
Initial author: Daniel-Constantin Mierla
Module app_lua allows execution of Lua scripts from SIP router configuration file, providing access to SIP message which is processed at that time. Exported functions by app_lua are available in the Lua script as package sr.
References:
- app_lua module: README
- Lua: http://www.lua.org
SR Package
Core functions.
sr.dbg
Print message to L_DBG level using internal log API.
Prototype
sr.dbg("message")
sr.err
Print message to L_ERR level using internal log API.
Prototype
sr.err("message")
sr.log
Print message to 'level' using internal log API.
Prototype
sr.log("level", "message")
Parameter level can be"
- dbg
- info
- warn
- err
- crit
sr.modf
Run a function exported by a module
Prototype:
sr.modf("function", "param1", "param2", ...);
Can be up to 6 optional parameters.
Example:
sr.modf("sl_reply_error");
Note that module functions that have parameter fixups cannot be executed unless they have free fixup. This is to prevent memory leaks caused by fixup functions. If you have doubts about a module function, whether it is safe to execute or not from Lua, ask on devel mailing list: sr-dev [at] lists.sip-router.org.
SR.HDR Package
Header management functions.
sr.hdr.append
Append header to end of headers list.
Prototype
sr.hdr.append("text")
sr.hdr.insert
Insert header to first position.
Prototype
sr.hdr.insert("text")
sr.hdr.remove
sr.hdr.append_to_reply
Append a header to SIP reply generated by proxy.
Prototype
sr.hdr.append_to_reply("text")
SR.PV Package
Pseudo-variable management functions.
sr.pv.get
Get the value of a pseudo-variable.
Prototype
sr.pv.get("pv")
sr.pv.seti
Set the integer value to pseudo-variable.
Prototype
sr.pv.seti("pv", value)
sr.pv.sets
Set the string value to pseudo-variable.
Prototype
sr.pv.sets("pv", "value")
sr.pv.unset
Unset pseudo-variables (assign $null).
Prototype
sr.pv.unset("pv")
sr.pv.is_null
Check if the pseudo-variable value is $null or not.
Prototype
sr.pv.is_null("pv")
SR.SL Package
Functions of SL module.
sr.sl.send_reply
Send SIP reply.
Prototype
sr.sl.send_reply(code, "reason")
Example:
lua_dostring("sr.sl.send_reply(200, [[ok from lua]])");