Driving a Cantata Media Server with WebLogic SIP Server and WebLogic Workshop


Media server control is vital to most SIP-based VOIP applications. This article describes a sample conferencing application built using BEA WebLogic Workshop that leverages BEA WebLogic SIP Server to drive an MSCML-enabled media server from Cantata. Using this basic voice/video conferencing application we can showcase the primitives behind media server control, providing examples that show how to develop SIP servlets using WebLogic Workshop, how to integrate those SIP servlets with Java Page Flows created with WebLogic Workshop, and how to share data between SIP servlets and HTTP servlets.

Before You Get Started

Before exploring the application, make sure you have access to:

  • A Snowshore software media server downloadable from Cantata. The media server is responsible for mixing multiple audio and video streams that make up the conference. In this example, I use the software media server provided by Cantata. The free version of the software media server comes with a two-port license, which allows a single SIP client and WebLogic SIP Server. If you register with Cantata, you can obtain an unlimited port media server under a 90-day evaluation trial license. You can find more information here.
  • Multiple systems running SIP clients. Each SIP client is going to serve as a conference participant. Free and cheap SIP clients are available from Counterpath, Paradial, and others, but any SIP client should work. In this example, I use the Counterpath EyeBeam client, available for purchase here. A free client is also available.
  • WebLogic Workshop version 8.1
  • WebLogic SIP Server version 2.1

After obtaining access to the media server and identifying multiple systems to serve as SIP conference parties, it is time to set up and to configure WebLogic Workshop and WebLogic SIP Server. Documentation for installing and configuring WebLogic Workshop for use of WebLogic is available here.


Media server control is vital to any SIP-based VOIP application that involves more than two parties communicating in a peer-to-peer fashion. While WebLogic SIP Server can be used for the call control and session management aspects of an application that uses SIP, the actual media itself needs to be brokered by a media server. The following is a list of the kind of tasks a media server typically performs:

  • Voice and video conferencing, including mixing of multiple audio streams and switching between active video streams
  • Playing and recording audio
  • DTMF (Dual Tone MultiFrequency) capture and recognition
  • IVR, including VoiceXML parsing and browsing

This article presents a conferencing application that was written by BEA for the purposes of demonstrating the following:

  • Achieving interoperability with a Cantata (or Snowshore) Media Server using MSCML to play announcements, perform DTMF digit collection, establish conferences, and control conferences
  • Building WebLogic SIP Server applications using WebLogic Workshop
  • HTTP and SIP servlets working together in the same container, sharing business logic

The application provides a Web front end that allows an admin user to create a conference. After the conference is created, people can call in to this conference using the SIP ID generated by the application. The caller is prompted for a PIN, also generated by the application, and optionally sent via email to the users. The PIN is entered using DTMF, processed by the media server, evaluated by the application, and, if correct, the user is added to the conference. While the conference is in session, participants can be muted, unmuted, and terminated by way of the Web UI. This shows the sharing of information between SIP and HTTP contexts, a key differentiator of WebLogic SIP Server.

Since video conferencing is also supported by the media server, participants in the conference can switch to video at any time.

The full set of use cases can be found in the appendix.

Application Architecture

The application consists of three major components:

  • The Web application, which provides the HTTP conferencing interface. This is present in the "WebApp" folder of the project.
  • The SIP application, which provides the call flow logic of managing the conference and communicating with the media server. This is present in the "conference" folder of the project.
  • The Conference Manager, the common business logic shared by the Web and SIP applications.
  • The SIP proxy/registrar application, which handles SIP REGISTER methods and proxies incoming requests. This is a jar file that is provided for you.
  • The Cantata media server.

Figure 1 shows a simple diagram of the application components:

Figure 1
Figure 1. The conference participants speak SIP to the Proxy registrar and RTP to the media server (click the image for a full-size screen shot)

Note that in Figure 1 the requests are proxied to the conferencing application, which manages the sessions with the media server. The conference administrator configures the conference via HTTP using the Web application. State is shared between the Web application and the conferencing application using the Conference Manager

Web application

The installation instructions describe how to create a SIP domain using a WebLogic Workshop Template, which enables development of SIP servlets in WebLogic Workshop. This allows you to build a converged HTTP/SIP application using HTTP Java Page Flows (JPFs) and SIP servlets running in the same application. The HTTP presentation layer of this application is implemented with JPFs. The SIP presentation layer is implemented with SIP servlets.

The Java Page Flows and JSPs in the application define a Web UI for handling user authentication, conference creation, monitoring, and management. Each UI function has a corresponding JPF that manages control flow between the JSPs involved.

For the purposes of logical separation, the WebLogic Workshop project is divided into two relevant folders: the Web application folder ( WebApp) and the conferencing folder ( confapp). The WebApp folder contains HTTP resources, JSPs, and JPFs to handle user authentication, conference creation, monitoring, and management from a Web UI.

Pages: 1, 2, 3

Next Page ยป