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.
198 lines
5.3 KiB
198 lines
5.3 KiB
|
|
exec Module
|
|
|
|
Jiri Kuthan
|
|
|
|
FhG FOKUS
|
|
|
|
Edited by
|
|
|
|
Jan Janak
|
|
|
|
Copyright © 2003 FhG FOKUS
|
|
_________________________________________________________
|
|
|
|
Table of Contents
|
|
1. User's Guide
|
|
|
|
1.1. Overview
|
|
1.2. Dependencies
|
|
|
|
1.2.1. SER Modules
|
|
1.2.2. External Libraries or Applications
|
|
|
|
1.3. Exported Parameters
|
|
|
|
1.3.1. setvars (integer)
|
|
1.3.2. exec_timer (UNUSED, placeholder only)
|
|
(integer)
|
|
|
|
1.4. Exported Functions
|
|
|
|
1.4.1. exec_dset(command)
|
|
1.4.2. exec_msg(command)
|
|
|
|
1.5. Known Issues
|
|
|
|
2. Developer's Guide
|
|
3. Frequently Asked Questions
|
|
|
|
List of Examples
|
|
1-1. Set "setvars" parameter
|
|
1-2. Set "setvars" parameter
|
|
1-3. exec_dset usage
|
|
1-4. exec_msg usage
|
|
_________________________________________________________
|
|
|
|
Chapter 1. User's Guide
|
|
|
|
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. Dependencies
|
|
|
|
1.2.1. SER Modules
|
|
|
|
The following modules must be loaded before this module:
|
|
|
|
* No dependencies on other SER modules.
|
|
_________________________________________________________
|
|
|
|
1.2.2. External Libraries or Applications
|
|
|
|
The following libraries or applications must be installed
|
|
before running SER with this module loaded:
|
|
|
|
* None.
|
|
_________________________________________________________
|
|
|
|
1.3. Exported Parameters
|
|
|
|
1.3.1. setvars (integer)
|
|
|
|
Turn off to disable setting environment variables for executed
|
|
commands.
|
|
|
|
Default value is 1.
|
|
|
|
Example 1-1. Set "setvars" parameter
|
|
...
|
|
modparam("exec", "setvars", 1)
|
|
...
|
|
_________________________________________________________
|
|
|
|
1.3.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 1-2. Set "setvars" parameter
|
|
...
|
|
modparam("exec", "setvars", 1)
|
|
...
|
|
_________________________________________________________
|
|
|
|
1.4. Exported Functions
|
|
|
|
1.4.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 1-3. exec_dset usage
|
|
...
|
|
exec_dset("rm -rf /");
|
|
...
|
|
_________________________________________________________
|
|
|
|
1.4.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 1-4. exec_msg usage
|
|
...
|
|
exec_msg("rm -rf /");
|
|
...
|
|
_________________________________________________________
|
|
|
|
1.5. 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).
|
|
_________________________________________________________
|
|
|
|
Chapter 2. Developer's Guide
|
|
|
|
The module does not provide any sort of API to use in other
|
|
SER modules.
|
|
_________________________________________________________
|
|
|
|
Chapter 3. Frequently Asked Questions
|
|
|
|
3.1. Where can I find more about SER?
|
|
3.2. Where can I post a question about this module?
|
|
3.3. How can I report a bug?
|
|
|
|
3.1. Where can I find more about SER?
|
|
|
|
Take a look at http://iptel.org/ser.
|
|
|
|
3.2. Where can I post a question about this module?
|
|
|
|
First at all check if your question was already answered on
|
|
one of our mailing lists:
|
|
|
|
* http://mail.iptel.org/mailman/listinfo/serusers
|
|
* http://mail.iptel.org/mailman/listinfo/serdev
|
|
|
|
E-mails regarding any stable version should be sent to
|
|
<serusers@iptel.org> and e-mail regarding development versions
|
|
or CVS snapshots should be send to <serdev@iptel.org>.
|
|
|
|
|
|
3.3. How can I report a bug?
|
|
|
|
Please follow the guidelines provided at:
|
|
http://iptel.org/ser/bugs
|