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