KEx Module
Daniel-Constantin Mierla
asipto.com
Ovidiu Sas
VoIP Embedded, Inc.
Edited by
Daniel-Constantin Mierla
Edited by
Ovidiu Sas
Copyright © 2009 Daniel-Constantin Mierla
Copyright © 2014 VoIP Embedded, Inc.
__________________________________________________________________
Table of Contents
1. Admin Guide
1.1. Overview
1.2. Dependencies
1.2.1. Kamailio Modules
1.2.2. External Libraries or Applications
1.3. Functions
1.3.1. setsflag(flag)
1.3.2. issflagset(flag)
1.3.3. resetsflag(flag)
1.3.4. setbflag(flag [, branch])
1.3.5. isbflagset(flag [, branch])
1.3.6. resetbflag(flag [, branch])
1.3.7. setdsturi(uri)
1.3.8. resetdsturi()
1.3.9. isdsturiset()
1.3.10. pv_printf(var, str)
1.3.11. is_myself(uri)
1.3.12. setdebug(level)
1.3.13. resetdebug()
1.3.14. km_append_branch([uri])
1.4. MI Commands
1.4.1. arg
1.4.2. kill
1.4.3. pwd
1.4.4. uptime
1.4.5. version
1.4.6. which
1.4.7. get_statistics
1.4.8. reset_statistics
1.4.9. clear_statistics
1.5. RPC Commands
1.5.1. pkg.stats
1.5.2. stats.get_statistics
1.5.3. stats.reset_statistics
1.5.4. stats.clear_statistics
List of Examples
1.1. setsflag usage
1.2. issflagset usage
1.3. resetsflag usage
1.4. setbflag usage
1.5. isbflagset usage
1.6. resetbflag usage
1.7. setdsturi usage
1.8. resetdsturi usage
1.9. isdsturiset usage
1.10. pv_printf usage
1.11. is_myself usage
1.12. setdebug usage
1.13. resetdebug usage
Chapter 1. Admin Guide
1.1. Overview
This module collects extensions from Kamailio core.
Kamailio Core CookBook is available at: http://kamailio.org/dokuwiki/
1.2. Dependencies
1.2.1. Kamailio Modules
The following modules must be loaded before this module:
* No dependencies on other Kamailio modules.
1.2.2. External Libraries or Applications
The following libraries or applications must be installed before
running Kamailio with this module loaded:
* None.
1.3. Functions
1.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)");
...
1.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. issflagset usage
...
if(issflagset("1"))
{
...
}
...
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");
...
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");
...
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. isbflagset usage
...
if(isbflagset("1"))
{
...
}
...
1.3.6. resetbflag(flag [, branch])
Reset the branch flag.
Meaning of the parameters is as follows:
* flag - the index of the branch 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. resetbflag usage
...
resetbflag("1");
...
1.3.7. 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.7. setdsturi usage
...
setdsturi("sip:10.0.0.10");
...
1.3.8. resetdsturi()
Reset the destination address URI (outbound proxy address).
This function can be used from ANY_ROUTE.
Example 1.8. resetdsturi usage
...
resetdsturi();
...
1.3.9. isdsturiset()
Check if the destination address URI (outbound proxy address) is set.
This function can be used from ANY_ROUTE.
Example 1.9. isdsturiset usage
...
if(isdsturiset())
{
...
}
...
1.3.10. pv_printf(var, str)
Evalues the str and sets the resulting value to variable var. For
backward compatibility reasons, the 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.10. pv_printf usage
...
pv_printf("$ru", "sip:$rU@$fd");
pv_printf("$avp(x)", "From: $fU - To: $tU");
...
1.3.11. 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.11. is_myself usage
...
if(is_myself("$fu")) {
...
}
...
1.3.12. 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.12. setdebug usage
...
setdebug("1");
...
$var(level) = 2;
setdebug("$var(level)");
...
1.3.13. 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.13. resetdebug usage
...
resetdebug();
...
1.3.14. km_append_branch([uri])
This function was replaced by append_branch() from corex module,
starting with version 4.0.0.
1.4. MI Commands
1.4.1. arg
Print command line arguments.
Name: arg
Parameters: none.
MI FIFO Command Format:
:arg:_reply_fifo_file_
_empty_line_
1.4.2. kill
Kill the application.
Name: kill
Parameters: none.
MI FIFO Command Format:
:kill:_reply_fifo_file_
_empty_line_
1.4.3. pwd
Print working directory.
Name: pwd
Parameters: none.
MI FIFO Command Format:
:pwd:_reply_fifo_file_
_empty_line_
1.4.4. uptime
Print uptime.
Name: uptime
Parameters: none.
MI FIFO Command Format:
:uptime:_reply_fifo_file_
_empty_line_
1.4.5. version
Print version information.
Name: version
Parameters: none.
MI FIFO Command Format:
:version:_reply_fifo_file_
_empty_line_
1.4.6. which
Print list of available MI commands.
Name: which
Parameters: none.
MI FIFO Command Format:
:which:_reply_fifo_file_
_empty_line_
1.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_
1.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_
1.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_
1.5. RPC Commands
1.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:
kamcmd pkg.stats
kamcmd pkg.stats pid 1234
kamcmd pkg.stats rank 1
kamcmd pkg.stats index 10
1.5.2. stats.get_statistics
Print the list of available internal 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.
Examples:
kamcmd stats.get_statistics all
kamcmd stats.get_statistics core:
kamcmd stats.get_statistics unsupported_methods
kamcmd stats.get_statistics shmem: fwd_requests fwd_replies
1.5.3. stats.reset_statistics
Reset internal statistics.
Parameters: statsid - same as for get_statistics.
Examples:
kamcmd stats.reset_statistics all
kamcmd stats.reset_statistics core:
kamcmd stats.reset_statistics unsupported_methods
kamcmd stats.reset_statistics shmem: fwd_requests fwd_replies
1.5.4. stats.clear_statistics
Return statistics and reset their value in one command.
Parameters: statsid - same as for get_statistics.
Examples:
kamcmd stats.reset_statistics all
kamcmd stats.reset_statistics core:
kamcmd stats.reset_statistics unsupported_methods
kamcmd stats.reset_statistics shmem: fwd_requests fwd_replies