[Serusers] Summary of using SER as an app server

Franklin, Allen Allen.Franklin at concerto.com
Tue Oct 5 00:51:27 CEST 2004


I have been trying to figure out if I can use the SER server as a true app server.
I have summarized my findings, below.
The findings are quite terse (I'm writing it for my superiors) and may sound a little
harsh, but that's not my intent. I am just hoping to generate some discussion.




Summary of using SER as an app server:

Controlling SER using scripts
-----------------------------
Routing scripts can be written by a user.
Only a single script is processed by the engine.
The SER server hands every SIP message it receives to the script processing engine.
The script may add/remove/modify header fields and then tell SER what to do with the result.
The script always operates on the "current" SIP message.
The scripts must be written in a SER-developed language.
The language provides operators and functions for manipulating string values in SIP headers.
The language provides routing functions like forward() and t_relay(). 
The script engine provides hooks to allow a script to execute shell commands.
A very basic hook is provided that allows a script to call functions in a user-provided shared library,
but this hook is only useful for rewriting the URI of the "current" message.

Controlling SER through an external process
-------------------------------------------
The SER server provides an interface to its internal functions via its "Application FIFO Server".
The IPC mechanism employed is a pair of fifos (or files).
There is a set of defined FIFO commands that the app can send to SER.
There is only 1 FIFO command for initiating a transaction from an external process: t_uac() (also t_uac_dlg()).
The app blocks on a fifo read until the server matches up a reply from the last command sent,
the complete message text is returned in the read. Presumably SER will handle retransmissions.

SER does not allow scripts or app server processes to see or modify the SDP, so an app
server process could not be used to initiate a voice call.

SER does not have a SIP parser as would be found in a traditional SIP stack.




More information about the sr-users mailing list