WeSIP and Openser
The WeSIP distribution consists of an OpenSER module and an the WeSIP application server.
SEAS (SIP Express Application Stack) is the name of the connector module that links OpenSER with WeSIP. What SEAS implements is a high speed binary interface to OpenSER over a TCP connection. Think of it as a distributed FIFO. Elements interested in interfacing with OpenSER will connect to seas via TCP and register themselves as endpoints using a propietary protocol. Once registered, endpoints can send and receive messages. Messages sent over seas are previously parsed and encoded in binary format in order to save the endpoints from parsing, which increases performance significantly. To dispatch a message to an endpoint a simple as_relay_t("endpoint_name") command is used in the OpenSER configuration script. To send a message from an endpoint binary codification is expected to be performed as well.
The application server registers as an endpoint with the seas module. After the registration process takes place, it begins to receive SIP messages to be processed by one of its contained applications via the "Incoming Message Channel". As a result of the process of such messages, responses, and possibly new requests, are sent through the "Outgoing Message Channel" back to the seas module. Applications in the container are triggered upon receipt of messages depending on the application deployment descriptors. The applications are developed following the java standard SIP Servlet API 1.0 (JSR 116). Convergent applications where HTTP and SIP protocols interact can be developed as well using HTTP Servlets. HTTP Servlets and SIP servlets execute in the same context thus being able to share state data between them.