KEx Module

Daniel-Constantin Mierla

asipto.com

Edited by

Daniel-Constantin Mierla


Table of Contents

1. Admin Guide
1. Overview
2. Dependencies
2.1. Kamailio Modules
2.2. External Libraries or Applications
3. Functions
3.1. setsflag(flag)
3.2. issflagset(flag)
3.3. resetsflag(flag)
3.4. setbflag(flag [, branch])
3.5. isbflagset(flag [, branch])
3.6. resetsflag(flag [, branch])
3.7. km_append_branch([uri])
3.8. setdsturi(uri)
3.9. resetdsturi()
3.10. isdsturiset()
3.11. pv_printf(var, str)
3.12. is_myself(uri)
3.13. setdebug(level)
3.14. resetdebug()
4. MI Commands
4.1. arg
4.2. kill
4.3. pwd
4.4. uptime
4.5. version
4.6. which
4.7. get_statistics
4.8. reset_statistics
4.9. clear_statistics
5. RPC Commands
5.1. pkg.stats

List of Examples

1.1. setsflag usage
1.2. setsflag usage
1.3. resetsflag usage
1.4. setbflag usage
1.5. setbflag usage
1.6. resetsflag usage
1.7. km_append_branch usage
1.8. >setdsturi usage
1.9. >resetdsturi usage
1.10. >isdsturiset usage
1.11. >pv_printf usage
1.12. >is_myself usage
1.13. setdebug usage
1.14. >resetdebug usage

Chapter 1. Admin Guide

1. Overview

This module collects extensions from Kamailio core.

Kamailio Core CookBook is available at: http://kamailio.org/dokuwiki/

2. Dependencies

2.1. Kamailio Modules

The following modules must be loaded before this module:

  • No dependencies on other Kamailio modules.

2.2. External Libraries or Applications

The following libraries or applications must be installed before running Kamailio with this module loaded:

  • None.

3. Functions

3.1. setsflag(flag)

Set the script flag.

Meaning of the parameters is as follows:

  • flag - the index of the script flag to be set. Can be integer or pseudo-variable with integer value.

This function can be used from ANY_ROUTE.

Example 1.1. setsflag usage

...
setsflag("1");
...
$var(flag) = 11;
setsflag("$var(flag)");
...

3.2. issflagset(flag)

Return true of the script flag is set.

Meaning of the parameters is as follows:

  • flag - the index of the script flag to be tested. Can be integer or pseudo-variable with integer value.

This function can be used from ANY_ROUTE.

Example 1.2. setsflag usage

...
if(issflagset("1"))
{
    ...
}
...

3.3. resetsflag(flag)

Reset the script flag.

Meaning of the parameters is as follows:

  • flag - the index of the script flag to be reset. Can be integer or pseudo-variable with integer value.

This function can be used from ANY_ROUTE.

Example 1.3. resetsflag usage

...
resetsflag("1");
...

3.4. setbflag(flag [, branch])

Set the branch flag.

Meaning of the parameters is as follows:

  • flag - the index of the branch flag to be set. Can be integer or pseudo-variable with integer value.

  • branch - the index of the branch whose flag to be set. Can be integer or pseudo-variable with integer value. If omitted, then branch 0 is used (R-URI).

This function can be used from ANY_ROUTE.

Example 1.4. setbflag usage

...
setbflag("1");
...
$var(flag) = 11;
setbflag("$var(flag)", "1");
...

3.5. isbflagset(flag [, branch])

Return true of the branch flag is set.

Meaning of the parameters is as follows:

  • flag - the index of the branch flag to be tested. Can be integer or pseudo-variable with integer value.

  • branch - the index of the branch whose flag to be set. Can be integer or pseudo-variable with integer value. If omitted, then branch 0 is used (R-URI).

This function can be used from ANY_ROUTE.

Example 1.5. setbflag usage

...
if(isbflagset("1"))
{
    ...
}
...

3.6. resetsflag(flag [, branch])

Reset the script flag.

Meaning of the parameters is as follows:

  • flag - the index of the script flag to be reset. Can be integer or pseudo-variable with integer value.

  • branch - the index of the branch whose flag to be set. Can be integer or pseudo-variable with integer value. If omitted, then branch 0 is used (R-URI).

This function can be used from ANY_ROUTE.

Example 1.6. resetsflag usage

...
resetbflag("1");
...

3.7. km_append_branch([uri])

Append a new branch to SIP request.

Meaning of the parameters is as follows:

  • uri - SIP URI of the new destination. If omitted then the R-URI is used. It can be static string or a string with pseudo-variables that will be evaluated at runtime.

This function can be used from REQUEST_ROUTE and FAILURE_ROUTE.

Example 1.7. km_append_branch usage

...
km_append_branch();
...
km_append_branch("sip:alice@sip-router.org");
...

3.8. setdsturi(uri)

Set the destination address URI (outbound proxy address).

Meaning of the parameters is as follows:

  • uri - Valid SIP URI representing the address where to send the request. It must be a static string, no variables are evaluated at runtime. If you need to set outbound proxy address via a variable, use assginment to $du.

This function can be used from ANY_ROUTE.

Example 1.8. >setdsturi usage

...
setdsturi("sip:10.0.0.10");
...

3.9. resetdsturi()

Reset the destination address URI (outbound proxy address).

This function can be used from ANY_ROUTE.

Example 1.9. >resetdsturi usage

...
resetdsturi();
...

3.10. isdsturiset()

Check if the destination address URI (outbound proxy address) is set.

This function can be used from ANY_ROUTE.

Example 1.10. >isdsturiset usage

...
if(isdsturiset())
{
   ...
}
...

3.11. pv_printf(var, str)

Evalues the str and sets the resulted value to variable var. For backward compatibility reasons, same function can be executed via 'avp_printf(var, str)'.

Meaning of the parameters is as follows:

  • var - name of a writable variable

  • str - string that may contain variables which will be evaluated at runtime.

This function can be used from ANY_ROUTE.

Example 1.11. >pv_printf usage

...
pv_printf("$ru", "sip:$rU@$fd");
pv_printf("$avp(x)", "From: $fU - To: $tU");
...

3.12. is_myself(uri)

Check if the parameter matches the 'myself' condition (i.e., is a local IP or domain).

Meaning of the parameters is as follows:

  • uri - Valid SIP URI or IP address to check against the list of local IP addresses or domains. The parameter value can contain pseudo-variables.

This function can be used from ANY_ROUTE.

Example 1.12. >is_myself usage

...
if(is_myself("$fu")) {
    ...
}
...

3.13. setdebug(level)

Set the debug log level per process.

Meaning of the parameters is as follows:

  • level - the debug log level to be set. Can be integer or pseudo-variable with integer value.

This function can be used from ANY_ROUTE.

Example 1.13. setdebug usage

...
setdebug("1");
...
$var(level) = 2;
setdebug("$var(level)");
...

3.14. resetdebug()

Reset the local debug log level back to the value of core parameter 'debug'.

This function can be used from ANY_ROUTE.

Example 1.14. >resetdebug usage

...
resetdebug();
...

4. MI Commands

4.1.  arg

Print command line arguments.

Name: arg

Parameters: none.

MI FIFO Command Format:

		:arg:_reply_fifo_file_
		_empty_line_

4.2.  kill

Kill the application.

Name: kill

Parameters: none.

MI FIFO Command Format:

		:kill:_reply_fifo_file_
		_empty_line_

4.3.  pwd

Print working directory.

Name: pwd

Parameters: none.

MI FIFO Command Format:

		:pwd:_reply_fifo_file_
		_empty_line_

4.4.  uptime

Print uptime.

Name: uptime

Parameters: none.

MI FIFO Command Format:

		:uptime:_reply_fifo_file_
		_empty_line_

4.5.  version

Print version information.

Name: version

Parameters: none.

MI FIFO Command Format:

		:version:_reply_fifo_file_
		_empty_line_

4.6.  which

Print list of available MI commands.

Name: which

Parameters: none.

MI FIFO Command Format:

		:which:_reply_fifo_file_
		_empty_line_

4.7.  get_statistics

Print the list of available internal statistics.

Name: get_statistics

Parameters: statsid - which statistics to be printed. If set to 'all' then all statistics are printed; if set to 'statsgroup:' then all statistics in the group are printed; if set to 'statsname' then the statistics identified by the name is printed.

MI FIFO Command Format:

		:get_statistics:_reply_fifo_file_
		_statsid_
		_empty_line_

4.8.  reset_statistics

Reset internal statistics.

Name: reset_statistics

Parameters: statsid - which statistics to be reset, give as name.

MI FIFO Command Format:

		:reset_statistics:_reply_fifo_file_
		_statsid_
		_empty_line_

4.9.  clear_statistics

Return statistics and reset their value in one command.

Name: get_statistics

Parameters: statsid - same as for get_statistics.

MI FIFO Command Format:

		:clear_statistics:_reply_fifo_file_
		_statsid_
		_empty_line_

5. RPC Commands

5.1.  pkg.stats

Print private memory (pkg) usage statistics per process. It can take optinally a filter to print statistics only for a specific process or set of processes. If no filter is given, it prints statistics for all processes.

The filter can be:

  • pid value - print statistics for specific process pid.

  • rank value - print statistics for specific process rank.

  • index value - print statistics for specific index in process table.

Examples:

		sercmd pkg.stats
		sercmd pkg.stats pid 1234
		sercmd pkg.stats rank 1
		sercmd pkg.stats index 10