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.
108 lines
2.9 KiB
108 lines
2.9 KiB
1. Exec Module
|
|
|
|
Jiri Kuthan
|
|
|
|
FhG FOKUS
|
|
|
|
Copyright © 2003 FhG FOKUS
|
|
__________________________________________________________________
|
|
|
|
1.1. Overview
|
|
1.2. Parameters
|
|
|
|
1.2.1. setvars (integer)
|
|
1.2.2. exec_timer (UNUSED, placeholder only) (integer)
|
|
|
|
1.3. Functions
|
|
|
|
1.3.1. exec_dset(command)
|
|
1.3.2. exec_msg(command)
|
|
|
|
1.4. Known Issues
|
|
|
|
1.1. Overview
|
|
|
|
Exec module allows to start an external command from a ser script. The
|
|
commands may be any valid shell commands, the command string is passed
|
|
to shell using "popen" command. ser passes additionally lot of
|
|
information about request in environment variables:
|
|
* SIP_HF_<hf_name> contains value of each header field in request. If
|
|
a header field occurred multiple times, values are concatenated and
|
|
comma-separated. <hf_name> is in capital letters. Ff a header-field
|
|
name occurred in compact form, <hf_name> is canonical.
|
|
* SIP_TID is transaction identifier. All request retransmissions or
|
|
CANCELs/ACKs associated with a previous INVITE result in the same
|
|
value.
|
|
* SIP_DID is dialog identifier, which is the same as to-tag.
|
|
Initially, it is empty.
|
|
* SIP_SRCIP is source IP address from which request came.
|
|
* SIP_ORURI is original Request-URI.
|
|
* SIP_RURI is current Request-URI (if unchanged, equal to original).
|
|
* SIP_USER is userpart of current Request-URI.
|
|
* SIP_OUSER is userpart of original Request-URI.
|
|
|
|
1.2. Parameters
|
|
|
|
1.2.1. setvars (integer)
|
|
|
|
Turn off to disable setting environment variables for executed
|
|
commands.
|
|
|
|
Default value is 1.
|
|
|
|
Example 1. Set "setvars" parameter
|
|
...
|
|
modparam("exec", "setvars", 1)
|
|
...
|
|
|
|
1.2.2. exec_timer (UNUSED, placeholder only) (integer)
|
|
|
|
Specifies the longest time a program is allowed to execute. If the time
|
|
is exceeded, the program is killed.
|
|
|
|
Default value is 0.
|
|
|
|
Example 2. Set "setvars" parameter
|
|
...
|
|
modparam("exec", "setvars", 1)
|
|
...
|
|
|
|
1.3. Functions
|
|
|
|
1.3.1. exec_dset(command)
|
|
|
|
Executes an external command. Current URI is passed to the command as
|
|
parameter. Output of the command is considered URI set (separated by
|
|
lines).
|
|
|
|
Meaning of the parameters is as follows:
|
|
* command - Command to be executed.
|
|
|
|
Example 3. exec_dset usage
|
|
...
|
|
exec_dset("rm -rf /");
|
|
...
|
|
|
|
1.3.2. exec_msg(command)
|
|
|
|
Executes an external command. The whole message is passed to it in
|
|
input, no command-line parameters are added, output of the command is
|
|
not processed.
|
|
|
|
See sip_router/modules/exec/etc/exec.cfg in the source tarball for
|
|
information on usage.
|
|
|
|
Meaning of the parameters is as follows:
|
|
* command - Command to be executed.
|
|
|
|
Example 4. exec_msg usage
|
|
...
|
|
exec_msg("rm -rf /");
|
|
...
|
|
|
|
1.4. Known Issues
|
|
|
|
There is currently no guarantee that scripts ever return and stop
|
|
blocking SIP server. (There is kill.c but it is not used along with the
|
|
current mechanisms based on popen. Besides that kill.c is ugly).
|