This is an old revision of the document!


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:

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

Remove header.

Prototype

sr.hdr.remove("hdrname")

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]])");

Navigation

Wiki

Other

QR Code
QR Code api:lua:devel (generated for current page)