mirror of https://github.com/sipwise/kamailio.git
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.
531 lines
11 KiB
531 lines
11 KiB
KEx Module
|
|
|
|
Daniel-Constantin Mierla
|
|
|
|
asipto.com
|
|
<miconda@gmail.com>
|
|
|
|
Edited by
|
|
|
|
Daniel-Constantin Mierla
|
|
|
|
<miconda@gmail.com>
|
|
|
|
Copyright © 2009 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. resetbflag(flag [, branch])
|
|
3.7. setdsturi(uri)
|
|
3.8. resetdsturi()
|
|
3.9. isdsturiset()
|
|
3.10. pv_printf(var, str)
|
|
3.11. is_myself(uri)
|
|
3.12. setdebug(level)
|
|
3.13. resetdebug()
|
|
3.14. km_append_branch([uri])
|
|
|
|
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. 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
|
|
|
|
Table of Contents
|
|
|
|
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. resetbflag(flag [, branch])
|
|
3.7. setdsturi(uri)
|
|
3.8. resetdsturi()
|
|
3.9. isdsturiset()
|
|
3.10. pv_printf(var, str)
|
|
3.11. is_myself(uri)
|
|
3.12. setdebug(level)
|
|
3.13. resetdebug()
|
|
3.14. km_append_branch([uri])
|
|
|
|
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
|
|
|
|
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
|
|
2.2. External Libraries or Applications
|
|
|
|
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)
|
|
3.2. issflagset(flag)
|
|
3.3. resetsflag(flag)
|
|
3.4. setbflag(flag [, branch])
|
|
3.5. isbflagset(flag [, branch])
|
|
3.6. resetbflag(flag [, branch])
|
|
3.7. setdsturi(uri)
|
|
3.8. resetdsturi()
|
|
3.9. isdsturiset()
|
|
3.10. pv_printf(var, str)
|
|
3.11. is_myself(uri)
|
|
3.12. setdebug(level)
|
|
3.13. resetdebug()
|
|
3.14. km_append_branch([uri])
|
|
|
|
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. 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");
|
|
...
|
|
|
|
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");
|
|
...
|
|
|
|
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();
|
|
...
|
|
|
|
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())
|
|
{
|
|
...
|
|
}
|
|
...
|
|
|
|
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");
|
|
...
|
|
|
|
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")) {
|
|
...
|
|
}
|
|
...
|
|
|
|
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)");
|
|
...
|
|
|
|
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();
|
|
...
|
|
|
|
3.14. km_append_branch([uri])
|
|
|
|
This function was replaced by append_branch() from corex module,
|
|
starting with version 4.0.0.
|
|
|
|
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
|
|
|
|
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
|
|
|
|
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
|