Sofa Switch Multipoint Conf Utility.

Overview

An application for conferencing together streams of PCM-16 data. This utility supports multiple simultaneous conferences.

Version:
1.0
Author:
Derek J Smithies

Architecture

There is one instance of the Manager class, which is responsible for handling the list of available conference rooms and members. The Manager will also spawn/close conference rooms as required.

The MessageFrame class is responsible for all communications with the remote controller. There is one instance of this class associated with each active call, and one instance associated with Manager. Since there is one communications module with each call, there is no need to "distribute" incoming messages from one central point to each active call.

Audio Flow

The conference utility maintains multiple conference rooms (ConferenceRoom). Inside each room, audio is shared to all members, as described in this document.

Audio flows from an external SofaSwitch entity via a UDP socket. This socket is in the Comms class. From the socket, there is a direct link to an instance of the Member class. Audio from the external entity is written to the buffer in the Member class.

Each Member maintains a list of the other members in this ConferenceRoom. Other members in the room are referred to as a list of participants, so we use the ParticipantDict class to hold the Participants.

Every 30 ms, the last piece of incoming audio from each Participant is multiplexed together, and sent to the UDP socket, and on to the external SofaSwitch entity.

Instances of the MessageFrame class

Do note that there is an instance of the MessageFrame class for each person in the conference, and is stored in the Comms class.

There is one instance of the Supervisor class, which contains one instance of the MessageFrame class. This supervisor talks directly to the Manager, to enact the required control response. On startup, this Supervisor connects to the server, and waits for control messages. Multiple preallocated MessageFrames will also connect to the server, but these are waiting to be allocated to conference member. Using preallocated instances speeds up the creation time of new conference members, and improves the reliability of this process under load.


Generated on Fri Jul 28 13:52:58 2006 for Sofa Switch Multipoint Conf. Utility by  doxygen 1.4.6