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 exploring the application, make sure you have access to:
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:
This article presents a conferencing application that was written by BEA for the purposes of demonstrating the following:
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.
The application consists of three major components:
Figure 1 shows a simple diagram of the application components:
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
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 (
WebApp folder contains HTTP resources, JSPs, and JPFs to handle user authentication, conference creation, monitoring, and management from a Web UI.