CSE 126 Lecture 13
Multimedia Conferencing
Overview
Multimedia conferencing in its simplest form is a phone call. This type of conference has two parties and one medium (voice). The idea of multimedia conferencing extends this to multiple parties and multiple media (pronounced multimedia J ). Previous-generation multimedia conferencing systems were very large and expensive. Generally, they were given their own room and a dedicated high-bandwidth connection. Modern multimedia conferencing on the other hand is more PC based, with programs such as CU-See Me, where you can install a software program on your PC and join conferences on a common server.
Aspects of Control in Multimedia Conferencing
There are two aspects to controlling a multimedia conference:
Control
Control stages are represented with state diagrams.
Take the telephone
system as an example:
First, both the caller (one who calls) and the callee (one who is called) are in an idle state.
When the caller initiates the call, it causes a state transition in the callee, moving it to the ring state.
When the callee moves to the ring state, the caller's state is changed to the ringback state, where the caller hears that the callee is ringing.
If all goes well and the callee answers the phone, the callee enters the active state.
This causes another state transition, and the caller now moves to the active state. Now the channel is established and both can talk.
This is a simplefied scenario, with little error control (imagine the caller hanging up in various states of the diagram), but you get the idea.
Extensions
There are many extensions to a simple conferencing system. Let's take a look at some of them:

Obviously, there are a lot of extensions to consider in a conferencing system. It is important to remember that each time you add a feature to a conferencing system, it's state diagram will become vastly more complex.
Say for example that we want to create a conferencing environment for our class to be taught over. What features might this system need? Well, first we obviously need to allow multiple parties. We should also allow Asymmetric communication because we will most likely have many different levels of bandwidth and hardware used. The class should be persistent, so the "room" is always available at the specified time. During lectures, students should be able to leave and join at will (Dynamic), however during exams the class should be static. We should also allow synchronous and asynchronous attendance so that those that want to attend and participate real-time can do so, while others can just rely on a version stored somewhere that they can playback at any time. All other features are probably not necessary and would just add a large degree of complexity to the system.
Synchronization:
2-way talk (e.g. UNIX talk) is easy, synchronization is not really an issue.
Multi-party talk, even as simple as 3-way talk, is hard. How do we ensure that messages arrive to all users in the correct order if each user has a variable network speed? To solve this problem, let's take a look at the idea of Centralized Control.

In centralized control, we have a centralized conference server, which is responsible for keeping synchronization between its users. Each message sent to the server has a timestamp, and the server is responsible for ensuring that messages arrive in order, so that if User A's message has a time stamp t, user B's reply to that message must have a timestamp later than t, and so on. Serializing these timestamps is a big bottleneck. To make it scalable, consider a hierarchical system:

Here, delay increases with the number of levels in the hierarchy. Since interactive communication requires a delay less than around 100-150 ms, this limits us in the number of users we can support.