[Users] Exec module: Use output of an external command within SER?
Daniel-Constantin Mierla
daniel at voice-system.ro
Thu Oct 6 13:48:32 CEST 2005
Hello,
On 10/06/05 12:29, Joachim Fabini wrote:
>Hi,
>
>A newbie question:
>Is there a way for OpenSER to use SIP headers (other than the URI
>set) that have been modified/processed by an external command
>(exec_dst, exec_msg)?
>Reading the documentation and mailing list archives revealed some
>questions similar to mine but no answer.
>
>The problem is: Delegate the change of one or more SIP message
>headers (or the whole SIP message) to an external application via
>exec module.
>
>Two straight-forward solutions:
>1. exec_rmsg() - for "replace message". A merge of the functionality
> of exec_dst() and exec_msg(), i.e. OpenSER uses the output of
> exec_rmsg(command) to replace the current SIP message. This is
> imho an extremly flexible solution but slightly difficult to
> implement as it requires at least parsing the command's output
> - similar to a message received by OpenSER.
>
>2. The command executed by exec_msg() can modify the environment
> variables SIP_HF_<hf_name> and OpenSER reuses these values after
> the exec() returned control to SER.
> Setvars could be used to switch between the current, read-only
> meaning of env-variables (e.g., modparam("exec", "setvars", 1))
> and a read-write behavior (e.g. modparam("exec", "setvars", 2).
>
> This solution does not require any special handling except that
> OpenSER must read back the content of all environment variables
> which were passed to the command. Probably quite easy to implement
> but has the drawback that no new header fields can be added.
> Imho no major limitation as users can add their (dummy) header
> fields prior to invoking the command via exec()
>
>Or is there any other existing/planned procedure for SER to use the
>output of external commands for rewriting an existing SIP message.
>
>
Other possibilities would be to pass the data through database (write in
a table and from there load via avpops) or via fifo interface (write
data to fifo file, then store it in share memory and afterwards reuse it
from there -- this requires development).
Daniel
>tia
>best regards
>--Joachim
>
>
>_______________________________________________
>Users mailing list
>Users at openser.org
>http://openser.org/cgi-bin/mailman/listinfo/users
>
>
>
More information about the Users
mailing list