Mconf: An Open Source Multiconference System for Web and Mobile Devices

Room videoconference systems are normally hardware based and located in meeting rooms or classrooms, as seen in Fig. 1, which shows examples of a Polycom1 equipment. Participants are expected to manually activate and call a remote number in order to begin interacting. Other solutions of room videoconference systems are Tandberg2 (which is now part of Cisco), Lifesize3 and Radvision (Scopia line)4.


Introduction
Deployment of videoconference systems have been growing rapidly for the last years, and deployments nowadays are fairly common, avoiding thousands of trips daily. Video conferencing systems can be organized into four groups: Room, Telepresence, Desktop and Web.

Groups of videoconference systems
Room videoconference systems are normally hardware based and located in meeting rooms or classrooms, as seen in Fig. 1, which shows examples of a Polycom 1 equipment. Participants are expected to manually activate and call a remote number in order to begin interacting. Other solutions of room videoconference systems are Tandberg 2 (which is now part of Cisco), Lifesize 3 and Radvision (Scopia line) 4 .
Telepresence videoconference systems are a variation of room systems in that the room environment and the equipments are set in order to produce the sensation that all participants are in the same room, as shown in Fig. 2, which shows the Cisco Telepresence System 5 . To accomplish the "presence sensation", the main approaches are: a) adjust the camera to show the remote participant in real size; b) use speakers and microphones in a way that the remote sound comes from the participant position; c) use high definition video in order to show details of the participants; d) use a complementary environment, as the same types of chairs, same color in the rooms, and same type of table on the other sides. The same vendors of room videoconference systems provide also telepresence solutions.
Desktop videoconference systems are a variation of room systems in that instead of dedicated hardware equipment to perform the videoconference, they use software and offthe-shelf webcams, as showed in Fig. 3, illustrating Vidyo 6 and Vsee 7 . With desktop systems, a user installs and launches the software on their computer. With the rapid advancement of personal computer hardware and high-definition webcams, the gap in quality between room video conferencing and desktop video conferencing is narrowing. Some other examples of desktop videoconference solutions are EVO 8 , Skype 9 , ooVoo 10 , Megameeting 11 , Ekiga 12 and Sightspeed 13 . Previously hardware-only vendors are also providing desktop systems as well, like Radvision (Scopia Desktop line) and Polycom (Polycom PVX). Desktop systems can be used as a means of performing personal videoconferences, or, when used with a LCD projector, they serve as low-end room videoconferences or even low-end telepresence videoconferences.

Fig. 3. Vidyo and Vsee Desktop videoconference systems
One example of a desktop system is IVA (Interactive Video and Audio), whose architecture is depicted in Fig. 4, showing one local "Telecentre", where the teacher and local students stand, and many "Remote Points", where the remote students stays. Telecentre and Remote Points communicate through superior quality (roughly 2 Mbps each point) to provide highquality audio and video, allowing to the teacher perform his/hers classes synchronously keeping the class pedagogical quality [Roesler, 2009] [Roesler, 2010]. The teacher sees each remote point through a 46" television, and each remote point sees the teacher through a 46" television and also the teacher´s presentation, as his/hers computer screen is also transmitted. Web-based videoconference systems, or web conference systems, run within a web browser, as seen in Fig. 5, which shows Adobe Connect 14 and BigBlueButton 15 . The advantage for users of web conferencing systems is the simplicity of deployment: users need only open a hypertext link within their browser to launch the system. Another advantage is interoperability among different operational systems: users may be running Chrome in Linux, Internet Explorer in Windows, Safari in MacOS, and so on, but everyone still has the same experience.

Other issues related to videoconference systems
One issue with using any of the conferencing systems is lack of interoperability. In order to accomplish interoperability among different vendors, common standards must be followed. The two most prominent standards are H.323 [ITU-T H.323, 2009] and SIP (Session Initiation Protocol) [Rosenberg, 2002], and both are used worldwide to allow interoperability among different systems. The basic idea of these protocols is to have some common messages to initiate the session and exchange capabilities. Using the information exchanged, the different parties in the conference can agree in the same group of audio and video codecs, as well as the data protocol, allowing the interoperability.
Sometimes the MCU (Multipoint Control Unit) is responsible for adapting different user bandwidths and codecs, composing many user videos in a single transmission, however, this adaptation have its costs in terms of processing power and delay inserted in the videoconference.
Some videoconference systems, like Vidyo and Google plus hangout, follow a scalable video encoding. Scalable video encoders are designed to include more flexibility to multimedia systems. Basically, a scalable encoder generates a multi-layer output, e.g. an output composed by multiples streams. A special stream, called as base layer, allows the video reconstruction with minimum detail level, while the others streams, called enhancement layers, can increase the video quality in a complementary way (each layer enhances the video generated by the previous one) [Huang, 2007].
The scalable approach is well suitable to multi-rate users, as represented in Fig. 6 for three layers. A user in a low bandwidth environment (a congested 3G connection, for example), receives only one layer, getting the worst quality. Other user in a better connection can receive 2 layers, improving the quality, and a third user in a good network receives the three layers, presenting a superior quality.
The advantage of Scalable Video Coding is that the MCU (or other central element) does not need to transcode video anymore, as the video encoding is performed by the end users, so, it need only to redirect network packets, minimizing its processing demands and the network delay.

Requirements of videoconference systems
Related to the features expected in a videoconference system, the following items list some metrics to compare different systems according to the user objective. This chapter aims to describe in a simple way some technical issues and user possibilities regarding the Mconf project. As the project is open source, it is expected to bring some information and motivation to its use.
The following sections will present these three parts in more detail. Section 2 presents the Mconf system in a general way. Section 3 focuses on BigBlueButton, the web conference system integrated with Mconf. Section 4 presents the web portal. Section 5 presents the Mconf mobile application, while Section 6 brings some conclusions and future directions.

Mconf overview
This session presents an overview of the Mconf project and its main building blocks, seen in Fig Besides that, it is worth mentioning the possibility of federated service and scalability. These issues are described in the following paragraphs.
Mconf-Web has recently been integrated with a Shibboleth 23 module, providing federated login in the website. Shibboleth is a middleware architecture that allows users of different security domains to employ their security information to access a federated service.
Mconf-Web is able to obtain user identity from any identity provider that follows the Shibboleth architecture with few configurations, providing access to any user that is registered in this federation. Currently, Mconf-Web is one of the services provided for the Brazilian federation named CAFe (Federated Academic Community) 24 .
Related to scalability, one BigBlueButton server is designed to support about 25 simultaneous users with video and audio, so, a scalability strategy must take place to increase the service capacity. Of course, a powerful hardware could be used to increase the number of users, but it will not scale to 1000 users, for example.
For the audio communication, BigBlueButton uses FreeSWITCH 25 , an open source telephony platform that is used as a VoIP server. FreeSWITCH is already scalable, allowing the VoIP service to be spread across multiple FreeSWITCH servers, which would increase a lot the capacity of the web conferencing service since the voice processing is very CPU intensive. However, there isn't yet a way to scale the other components of BigBlueButton through multiple servers.
The solution being developed by Mconf includes a monitor module on BigBlueButton that generates statistics like CPU, memory and network, that are collected by the web portal. When there is a new room to be created, the web portal decides which server is more suitable to the target users, based on statistics plus geographic location and delay.
Besides that, it is possible to use this solution through a commercial or private cloud computing infrastructure. Virtual machines of web conferencing servers are enabled or disabled depending on the demand in a given moment, all of them managed automatically by the web portal scalability module.

BigBlueButton web conferencing
BigBlueButton is an open source web conferencing system for distance education. The BigBlueButton project started in 2007 at Carleton University (Ontario, Canada) as an effort to replace an existing commercial web conferencing system. The project has since evolved to provide the core features of synchronized presentation, chat, video, audio, and desktop sharing. Fig. 8 shows an example of its interface presenting its main windows, which are described in the figure.
The BigBlueButton client runs within the Adobe Flash Player 26 . The BigBlueButton server manages the individual sessions, keeps all users in sync, and records the sessions for later playback.

Fig. 8. Example of a BBB web conference
Users enter a BigBlueButton session in one of two roles: viewer or moderator. A viewer has the capabilities to a) interact with others through chat, b) share their webcam, c) join the audio conference, and d) raise their hand. A moderator has all the capabilities of a user, and in addition can a) mute/unmute users, b) eject a user from the conference, and c) make any user the current presenter.
The presenter has the ability to a) upload slides to the presentation area, b) control the slide view for all users, c) annotate the slide with the whiteboard, and d) share their desktop.
Compared with commercial web conferencing systems, BigBlueButton lacks some features, such as remote control of desktops; however, the project has stated its goal to focus on simplicity and ease when implementing the core features for web conferencing.

BBB architecture
BigBlueButton has a client and a server component. The client is written in Action Script. The server components are mostly written in Java. The three main components of the BigBlueButton server are the real-time server, application server, and voice conferencing server. Fig. 9 presents its main building blocks and communications. BigBlueButton implements a number of server-side applications, called bbb-apps (see in figure), that keeps the video, audio, and chat in sync between the remote BigBlueButton clients and the application server.
The application server, called bbb-web (see in figure), is a Java-based application running within an Apache Tomcat 29 . The bbb-web application handles all API calls and requests by the client to upload slides.
The voice conferencing server is built on FreeSWITCH 30 , a scalable open source crossplatform telephony platform. Incoming audio packets from the BigBlueButton client are routed to FreeSWITCH through red5phone, an open source voice over IP (VoIP) phone that uses the Session Initiation Protocol (SIP) to communicate with FreeSWITCH.

Integration of BigBlueButton with other software
The BigBlueButton project does not bundle any built-in web-based applications, such as a system for scheduling sessions; rather, it provides an API that others can use to integrate with 3rd party applications.
BigBlueButton provides an HTTP-based API that includes commands to create, join, and end a meeting. Since the API is HTTP-based, a 3 rd party application can control the BigBlueButton server with simple URL requests. Integration with a 3 rd party application requires the writing of a plug-in for the 3 rd party application (such as Moodle). Many of the most popular open source applications have a plug-in architecture specifically for integration with external systems such as BigBlueButton.
For example, Fig. 10  Using the BigBlueButton plug-in a teacher can configure properties for the BigBlueButton session. Examples of properties are the name of the link in Moodle, restricting student's access to an on-line session until a moderator (teacher) has joined, or restricting access to specific times within the Moodle calendar.
When the record property is set to true, the BigBlueButton server will record the audio, slides, and chat from a meeting for later playback within an HTML5 compatible browser (such as FireFox and Chrome), as seen in Fig. 11.

Mconf web portal
The objective of the Mconf web portal is to provide user authentication, permission control, scheduling, among others. These kinds of tasks are left in BBB to third-party applications, such as the integrations with Moodle and Joomla, for instance. Furthermore, the web portal aims to provide facilities to manage multiple servers and provide load balance, for example. Plaza is an open source web application that aims to enable virtual meetings through an event based social network. Its model fits very well the requirements imposed in Mconf. In the following of this section we will explore each of the points commented above, starting with a description of Global Plaza and then Mconf-Web.

About global plaza
Global Plaza is a web application developed in Ruby on Rails 32 , providing events as social media in the Internet [Quemada, 2010]. Global Plaza was developed in the European Global Project 33 as an open source application and is also available for use in the Internet 34 . The GLOBAL project has ended on October 31, 2010, but as an open source application Global Plaza is still available for use. In Global Plaza, the registered users can create three types of events: (a) in person, where you just have a date and agenda in the website; (b) virtual meetings, possibly with streaming and recording; and (c) virtual congress, large virtual meetings, usually needing an on-site operator. These events happen inside spaces (or communities), that are a places where people with similar interests can interact. Fig. 12 shows one space inside Global Plaza where a recorded video is being played through the web interface.
The Global Plaza application is just the web interface in a stack of applications used to provide the full set of features. For web conferencing it uses the Isabel system [Quemada, 2005], that also requires several components.
From the feature set needed by Mconf, Global Plaza provides user authentication, permission control, management of meetings (inside events), scheduling, and access to the recording. Some other features, such as usage statistics, can be easily leveraged from the framework used by Global Plaza. It is important to observe that most of these features are tightly coupled with Isabel and had to be adapted for its use with BigBlueButton.

Mconf web portal details
This section will detail the main features of Mconf web portal. Some features are inherited from Global Plaza, and the differences between Mconf-Web and Global Plaza will be discussed later.
Mconf-Web is a social network of users, spaces and events. Users can create and join spaces (communities) and can create and participate in events. All the events are held inside a community from a defined start date to an end date. Fig. 13 shows the user home page in Mconf-Web. This page has links to the most used features in the website. The label "Web conference room" shows the access point to the user´s web conference room (to start a meeting and invite people to his meeting, for example). The label "Communities" allows access to the user communities (or spaces). The label "Recent activity" shows messages, events, news and attachments related to the user. The label "Agenda" depicts the section where the user can see the upcoming events, and the label "Inbox" shows the latest internal messages which arrived. These features will be further explained in the following of this section.
A community in Mconf-Web can be public or private. A public community can be viewed by anyone, even by visitors that do not have an account in Mconf yet. But, even though everyone can view it, only authorized people can alter it (create events and post messages, for example). Private communities, however, can only be viewed by authorized people. A private community can be created by a user and the access can be given only to people from the same workplace, for instance. Nobody else is able to see the activity inside this community (even though everybody is able to know that the community exists).

Web conferences
In Mconf-Web there are two types of web conference rooms: users' rooms and communities' rooms. When a user registers in Mconf web portal, he/she automatically receives a permanent web conference room (a user room). This room can be shared with anyone the user wants to, even with people that do not have a Mconf account. The user rooms are public by default, so anyone with its link will be able to access it. But it can be made private so that only people with the defined password can join the web conference.
Every community created in Mconf also has a permanent web conference room associated (a community room). If the community is public, the room is public, otherwise the room is private and there will be a password associated to it. The permissions inside a web conference will depend on several factors, but mostly on these:  Who is the user?  Is it a user room or a community room?  Is the room public or private?
The permissions available are the ones already discussed in the BigBlueButton section (section 3): moderator, viewer and presenter. The presenter role is the only one that can be defined during the meeting using the application interface. The other roles are defined before the user joins the conference, and it's Mconf-Web that should decide if the user is a moderator or a viewer.
In a user room, the owner will always be a moderator and the only one that can start the meeting in the room. If the owner is not in the meeting, no one else will be able to join. Everybody else will have the viewer role.
An exception to this rule happens when the room is made private. When the user marks the room as private, he/she will be asked for two passwords: the viewer password and the moderator password. Any person invited must use one of these passwords to join the conference, and the password will define the role of this person. Fig. 14 exhibits the web page shown when an anonymous user tries to join a private web conference.
In a community room all members who belong to the community are moderators, so any of them can start a meeting in this room. In a public community, everybody else will be able to join and will receive a viewer role (including anonymous users). In a private community, a password will be asked when a non member tries to join the meeting and this password will define the user's role in the conference.

Fig. 14. Anonymous user invited to a private web conference
In Mconf-Web any user can start a web conference with just a few clicks, as shown in Fig. 15. After logging in the website, the user can simply click in the "join" button and the web conference will start. The same is valid for a community: after creating a community, any member can simply click in the "join" button and start the web conference.

Other features
Mconf-Web has still some other features not specifically related to web conferencing but that add value to the application and can improve the user experience.
One of these features is the document sharing, where users can share any kind of documents inside a community. These documents can be accessed by any member of the community and, if the community is public, they can be accessed by anyone. Documents can also be tagged and versioned, so that it is easier to search for them later on. Fig. 16 shows the documents sharing page.

Fig. 16. Documents sharing page
Communities have also a wall board and a notice board, where any kind of text messages can be posted and all members will be notified. In the user's homepage, there's a digest of the recent activity that includes the latest documents shared, messages and news posted, and events created. The user also has a calendar that shows the next events, as illustrated in Fig. 17.

Fig. 17. User's recent activity and calendar
The website has also an internal messaging system, that works similarly to an email system and that users can use to communicate with each other.
Mconf-Web is fully available in English and Portuguese (BR) and partially translated to Spanish, French and German.

Main differences between Mconf-Web and global plaza
The most important difference between Mconf-Web and Global Plaza is the use of BigBlueButton as a replacement for Isabel. BigBlueButton is very different from Isabel and follows a different approach to reach the same goal: provide a web conference environment. Mconf uses BigBlueButton due to all its features already detailed in the section 3 and due to its open source nature and great community support and activity.
BigBlueButton has many advantages over Isabel, so this can be considered not only as a different approach but as an evolution in the web application specially for the open source community.
One downside of this replacement is that some features in Global Plaza had to be disabled before they were adapted to be used with BigBlueButton. This is the case of the streaming and recording features. BigBlueButton has only recently included recording in its core and this still needs to be integrated in the web application in the near future.
As already mentioned, the project supporting Global Plaza has ended in the end of 2010, so it's development has been greatly reduced since then. It is originally developed using the version 2.3.4 of Ruby on Rails, an old version that was since 2010 replaced by the version 3. So other of the most important differences included by Mconf-web was the migration to Ruby version 3.
The migration for Ruby on Rails 3 was especially important for the libraries developed to integrate the web application with BigBlueButton. These libraries will be detailed in the following sections, but it is important to consider that they were developed in the latest version of the framework so that they can be used with any other web application that uses the same framework.
The way a user can create and participate in web conferences has also been vastly modified. Global Plaza is a very event-centered application, and users need to create an event to be able to hold a web conference. Everything revolves around events.
In Mconf-Web, web conferences are easier to be held. The user can create a web conference from his homepage or from a community very easily, while events are only a mean to schedule a web conference inside a community.
Besides that, several things were also changed in the application's interface in order to make it simpler and easier to be used.

Implementation details
The most important thing that should be added regarding the implementation is that all the integration between the framework Rails and BigBlueButton was developed in two libraries (called "gems" in Ruby). With these libraries, the front end application (in this case Global Plaza) can be replaced by any other Rails application and all the integration with BigBlueButton would still be functional. In other words, it is now easy to start a new front end application and integrate it with BigBlueButton. Fig. 18 shows how the application, the gems and BigBlueButton interact with each other. The gems were built in two levels: (1) a basic library for Ruby that simply performs HTTP calls to contact BigBlueButton's API; and (2) a library for Rails that is targeted for web applications and contains common data models and controlling logic to interact with BigBlueButton.

Fig. 18. A front end Rails application and the gems to interact with BigBlueButton
The basic gem (1) is called "bigbluebutton-api-ruby" 35 and can be used by any Ruby application (it is not necessary to be a Rails application). It contains methods to perform every API call possible in BigBlueButton and utility functions to adapt the response (XML files) to be friendlier to a Ruby application.
The other gem is called "bigbluebutton_rails" 36 and is specific for Rails. It implements several features that a web application needs to use BigBlueButton. The most important features are:  Provides data models to manipulate BigBlueButton servers and conference rooms;  Allows multiple servers and multiple conference rooms;  Full API access using bigbluebutton-api-ruby;  Easy way to join conferences: simply create a room and call a defined URL;  Possibility to create private rooms, that require a password to join;  Deals with visitors (users that are not logged), allowing (or forbidding) them to join rooms;  Server activity monitor;  Includes default views (web pages) used in the interaction with BigBlueButton (create rooms and servers, join a room, invite people to join, and others).

Mobile devices integration in Mconf
This session will discuss the development details of the Mconf Android client. There are two possibilities of interaction using Android devices, shown in Fig. 19 and Fig. 20: the first one is through a web browser, and the system works like in a regular PC, using Adobe Flash Player (shown in Fig. 19a); the other way is through the Android native application (shown in Fig. 19b and Fig. 20). There are two Android native applications, named Mconf-mobile and BBB-Android, which are described in section 5.2. The Android operational system was chosen because of its big growth and popularity, in addition to a non-bureaucratic development and easy distribution for the applications.
The BigBlueButton web application used on PCs also runs on Android 2.2 and above, since these Android versions support the Adobe Flash Platform. However, there are several usability limitations when adapting the user interface to a (often small) touch screen display. It would be an option to develop a new flash based client adapting the user interface to mobile devices, but since audio and video capture is still not supported by Adobe Flash Player on Android, it would be impossible to develop a client with all the desired features, so, the group in Mconf two Android native applications were developed (see section 5.2).
Most features are the same in the web-based application and the Android application, however, a few are still in development on the native application, such as the presentation, the whiteboard and the possibility to display several participant videos in the same screen. These capabilities will be gradually added in order to cover all the features existent on the web application, with the advantage of having audio and video capture since the beginning.
Another advantage of the adopted approach is that the native application can be distributed in the official Android marketplace, what is not possible with a web application. The native Android application developed is compatible with Android 2.0 and above, and the details will be presented hereafter.

Architecture
The Mconf for Android is built upon many open source applications and libraries. Also, the support for mobile devices doesn't require any modification on the server side. The solution architecture is presented in Fig. 21.

Sipdroid 37
Considering that the BigBlueButton system uses a VoIP server to handle the audio streams, the strategy of integrating an existing VoIP open source solution to the application was adopted. The Sipdroid is one of the most popular SIP phones on Android Market, and the access to the source code has enabled the Sipdroid to be transformed in a library, which could be consumed by another Android application or library.
Speex 38 , the default audio codec of BigBlueButton, is among the audio codecs supported by Sipdroid. It is implemented in C and compiled through the Android NDK.
This integration of Sipdroid with Mconf has enabled the addition of the audio interaction feature with a very low development cost.

Flazr 39
All the RTMP (Real Time Messaging Protocol) [Adobe, 2009] communication between the application and the Red5 40 server is done through the Flazr library, a Java open source implementation of protocols used for multimedia streaming. This library implements important parts of the RTMP protocol, such as the initial handshake and handlers for messages of control, audio, video, and also Remote Procedure Calls.
However, the library does not support Remote Shared Objects (RSO), an indispensable requirement for the complete communication with the server. For example, information such as join and leave of participants, video transmitting or the "raise hand" features are actions broadcasted through the participantsSO object. Public chat message exchanges are broadcasted through the chatSO object.
Then, an extension of the library was developed to add support for RSO. The implementation of the shared objects management and multiplexing/demultiplexing of messages were based on the Red5 source code and the RTMP protocol specification.

BBB-Java
The BBB-Java is a library developed in the Mconf project to be used by the Android client. This library implements the communication logic between a generic Java application and a BigBlueButton server. The library is loosely coupled with the Android application, in order to enable and encourage the development of new third party applications integrated to the web conference system. Also, the library can be used to create robot applications, which would help to perform stress and behavior tests.

BBB-Android-Core
BBB-Android-Core is another developed library which implements the session handle after the user joins a meeting, and it uses BBB-Java to interact with the BigBlueButton server. This library is written mainly in Java, using the Android Software Development Kit (SDK), and a small fraction of CPU intensive code was developed in C/C++ over the Native Development Kit (NDK).
An optimized compilation of the FFmpeg 41 library was used to handle video encoding and decoding, and it was compiled only with the H.263 codec enabled (the default video codec of BigBlueButton). FFmpeg is a library written in C which implements many audio and video codecs.

Mobile applications
In Mconf two web conference client applications for mobile devices were developed. One is called Mconf-Mobile, and the other is BBB-Android. Both are depicted in Fig. 22.
Mconf-Mobile is an application integrated with the Mconf web portal. It implements the login screen of the session, and using it the user authenticates and looks for the meetings he has permission to join. After joining a meeting, the session is handled by the BBB-Android-Core library.
BBB-Android is an application for direct use with BigBlueButton. Through it, the user can join, as participant or moderator, any running meetings, and also create new meetings. The main difference between BBB-Android and Mconf-Mobile is that BBB-Android connects directly to a BigBlueButton instance, without any interaction with the web portal. Because of that, it is necessary to know previously the server address, differently from Mconf-Mobile, where the user has to know simply the web portal URL.

Main functionalities
This section presents the main functionalities of the Android application.

Chat
Just like the BigBlueButton web client, the Android application provides chat interaction through public and private message exchange. The public chat is implemented as a sliding bar on the main screen, and the private chat is accessed pressing on the participant name with whom the user wants to start a conversation.

Audio
When the user joins the voice conference, two buttons are presented on the main screen in order to enable the user to interact: the buttons Lock speak and Push to talk, as seen in Fig. 23. Lock speak means that the microphone is always open, and push to talk means that the microphone is only open when the user is pressing this button. They are essential for a good quality interaction, because the high microphone sensitivity on mobile devices can result in noise and acoustic echo problems.

Video
When a participant is publishing his video to the session, a webcam icon appears in the main screen, as seen for "Felipe Cecagno" in Fig. 24. The Android application enables the user to playback any participant's video being published, as well as capturing and publishing its own video camera. If the user puts the mobile in horizontal mode, it shows the video in full screen.
If a user joins a session with the moderator permission, he/she will be able to perform some management actions, such as turning any participant into presenter, muting or unmuting a noisy participant, lowering hand of a participant that wants to talk or even kicking out a participant from the session.
These kind of features suggest a new use case for the application: a professor using the white board to explain the lesson for a group of students connected remotely doesn't need to stay in front of his computer during the lecture, but can use the mobile device as a remote control to manage the conference.

Conclusion and future directions
This article presented two main contributions: a) one survey of videoconference systems and trends in the area; b) technical and implementation details about the Mconf project, which involves a complete web conference solution, contemplating the triptych web portal / web conference environment / mobile devices.
Initially, the survey presented different deployments of videoconference systems and some trends, as scalable video, high definition and usability. Mconf provides a tool with good quality, scalability, simplicity, mobile access and recording. Scalability is provided by balancing the various web conference rooms among different servers, monitoring constantly the servers' activity to better choose the best one to start the new room. This is the principle of cloud computing, and it is very suitable to this application. One issue is the cloud delay, and the server must be chosen taking also the delay into consideration. Security is provided through the use of Federated login and data encryption. Federated login is a reality nowadays, simplifying greatly the permission handling.
There is a long road ahead, however, and the main future developments are:


To create an HTML5 client, in order to have web conference in other mobile platforms such as iOS and Windows Phone;  To simplify the web portal, allowing the user to know who is available in each community and create easily a web conference with them;

Acknowledgment
We would like to express our sincere gratitude to RNP (Research National Network) for sponsoring the Mconf project.
Also we would like to thank BBB Foundation for bringing such a helpful tool for the world, and for being very active and effective regarding BBB development.