Audio Conferencing System in Java

Project Specification

System architecture

 

System components

Server

Data distribution

Data distribution is the basic functionality of the server. Server located at the same host as http server is the central point of the system. It collects audio packets form all the users and distributes them accordingly. Server does not have any knowledge about the data content, packet structure is completely transparent. This way it is possible to enhance functionality by adding additional data distribution. The destinations of distributed packets are controlled by the session management components: user control and session control.

User control

Server needs the information about users connected. Each user entering the system notifies server about that. By just entering the user does not become participant of any session and cannot receive or send any data.

Session control

A user may join any of the existing sessions and send/receive audio to/from all the participants. He or she can also create a new session. Initially all the sessions are open i.e. every user willing to join a session is accepted. Later some restrictions may be applied.

Client

Server control API

Server control API is Java programming interface for the server control. It should support following operations:

To be able to perform those operations effectively control API must provide functions to retrieve the list of existing session and the list of session participants.

Server control GUI

As an example of the server access, the Graphical User Interface (GUI) must be created. It should visualize and facilitates the operation described in the previous section.

Playing path

Playing path components process the received audio packets decompressing, multiplexing and sending them to the speaker. All those operations are supported by the Java language. Decompression algorithms supported are ADPCM and GSM.

Capturing path

Capturing path is the most difficult part since it is not supported by the Java language. Therefore, it must be implemented separately as a machine dependent component. Initially it must be done for PC Windows 95/NT platform. It can be integrated with a browser as a Netscape plugin or Internet Explorer ActiveX object. Captured audio has to be compressed and sent to the server.

Other issues

Flexibility

The Java audio conferencing system will be integrated with a variety of other collaborative applications (e.g. 2D Chat). The stand-alone version is only one of the possible usage. Therefore, all the components must be designed and implemented in the clear, encapsulated fashion and well documented.

Existing components

Several of the system components were already implemented and may be used in development of the final version. Those are:

 


Written by Tomasz Stachowiak January 29, 1998