SailFin : SIP and JavaEE convergence demo
Using the converged container, the SIP component and the JavaEE components (eg., MDB) can share the resources, and the SIP functionality can be used inside the MDB.
The flash demo embedded in this blog illustrates how the SailFin converged container is used for SIP and MDB convergence.
This is what the sample application is all about : The customer can apply for a credit card online. After applying for the credit card, the customer is supposed to receive a phone call (on his SIP phone) from the bank executive. During the conversation, the bank executive will be able to access the details submitted by the customer. The sample is written in a way that, if there is only one bank executive, the simultaneous applications submitted by the different customers will be queued in the JMS Queue (SJSMQ) and processed one by one.
The sample has two web interfaces, one for the customer to apply for the credit card online, and another for the bank executive to access the customer details during the phone conversation.
In terms of the implementation, there is a Java EE application (EAR file) containing the Web component, Message Driven Bean, and a SIP component. The web component serves as the front end for Customer and Bank executive. SIP component serves as a B2B User Agent. The MDB sequentially processes the customer requests placed in the JMS Queue (SJSMQ) and initiates a phone call between the customer and bank executive.
The sample does not demonstrate the convergence between the SIP and HTTP, instead it demonstrates the convergence between SIP and EJB.
Though this sample has not been tried with the cluster topology, it is possible for the MDB running in instanceA to access the SipApplicationSession (& its child sessions) created by the JSP running in instanceB. This is possible using the high availability feature (implemented using in-memory session replication) provided by the SailFin server.