Driving a Cantata Media Server with WebLogic SIP Server and WebLogic Workshop
Pages: 1, 2, 3

SIP Servlet Best Practices

Special attention should be paid to the best practices used in the application. In the interests of time and simplicity, not all best practices are implemented here. Moreover, the SIP servlet specification is fairly young and some best practices are still in development. However, detail was paid to the following key practices:

  1. Presentation logic and business logic are separated according to the best practices of Web application development. The conference logic is provided in the ConferenceManager class in the com.bea.appserver.conferencing package. This enables both SIP and HTTP servlets to refer to the same objects, establishing SIP/HTTP convergence.
  2. Conference state is managed outside the SIP servlet, in the business logic. Since SIP servlet technology is new, and since the conference itself is presented over a VOIP session, it is tempting to forget about separating presentation and business logic. However, recognizing that the SIP servlet is part of the presentation layer is key. This enables sharing of relevant information between SIP and HTTP, such as conference PINs and conferee status. This also enables extending the application with new Web UIs or SIP call flows.
  3. The application respects the larger SIP network. Notice the deployment descriptor sip.xml file explicitly refuses to route SIP REGISTER requests, therefore acknowledging that the SIP servlet may be deployed alongside an existing registrar. In fact, the registrar and proxy functionality are provided separately. This hints that SIP servlets should be granular, modular, and logically separated to ensure optimal flexibility in service creation and deployment.

Downloads

The following items discussed in this article can be downloaded:

Summary

This article presents a sample application that illustrates converged HTTP/SIP application development with WebLogic SIP Server and WebLogic Workshop, media server interoperability with WebLogic SIP Server, and best practices around building SIP-based applications when considering multiple presentation media and divergent media standards. I hope you enjoy the sample, and I look forward to your comments.

References

Appendix: Application Use Cases

The following use cases are implemented by the application. I also include links to diagrams showing the associated SIP call flows.

Create a new conference:

Remove a conference:

A participant joins a conference:

Remove a conference participant:

  • The user logs in to the application's Web UI.
  • The user chooses to monitor all existing conferences.
  • The user chooses a conference and can now see all current conferees.
  • The user can now click on any of the conferees to disconnect conferees from the conference.

Mute a conference participant:

  • The user logs in to application's Web UI.
  • The user chooses to monitor all existing conferences.
  • The user chooses a conference and can now see all current conferees.
  • The user can now click on any of the conferees to mute conferees ( call flow 6).

Audio and video conference support:

  • Any conferee can join the conference with audio only as well as with audio and video.
  • The Cantata (or Snowshore) media server will implement voice-activated video mixing where the current speaker is displayed for the other participants.

A participant leaves a conference:

  • Any participant can decide to leave the conference at any time following the standard SIP procedures.
  • If the conference host leaves the conference, the whole conference will be terminated. (Note: There is currently no enforcement to wait for the conference host before the conference can be started.)

Jeff Bean is a Technical Manager working for the BEA Global Alliances Group. He has 9 years of IT experience as a software developer, professional services consultant, and systems engineer.

Sudhrity Mondal is a Senior Principal Architect working for BEA Global Alliances Group. He has 14 years of industry experience and specializes in enterprise integration solutions.

Marcelo Oliveira is a Software Engineer currently working for Cisco Systems in the Emerging Markets Business Unit.