OpenSER module exec

exec module allows to start an external command from an OpenSER script. The commands may be any valid shell commands--the command string is passed to shell using "popen" command. OpenSER 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.

In OpenSER 1.2.0, the commands to be executed can be composed with pseudo-variable, in this way is possible to give arguments to command.


# print From URI in file 'caller.log'
exec_msg("echo '$fu' >caller.log");


exec_msg() can be used to execute command, the output of command being ignored. exec_dset() gets each line from command output and sets destination set (R-URI and branches). exec_avp() gets each line from command output and add as AVPs.

Links to documentation of exec module:
exec module allows to start an external command from an OpenSER script. The commands may be any valid shell commands--the command string is passed to shell using "popen" command. OpenSER 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.

In OpenSER 1.2.0, the commands to be executed can be composed with pseudo-variable, in this way is possible to give arguments to command.


# print From URI in file 'caller.log'
exec_msg("echo '$fu' >caller.log");


exec_msg() can be used to execute command, the output of command being ignored. exec_dset() gets each line from command output and sets destination set (R-URI and branches). exec_avp() gets each line from command output and add as AVPs.

Links to documentation of exec module:
Created by: miconda, Last modification: Fri 16 of Feb, 2007 (10:00 UTC)
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+