SlideShare una empresa de Scribd logo
1 de 129
Descargar para leer sin conexión
GT-Mconf
Transfer of technology course




             Authors:
         Felipe Cecagno
     Leonardo Crauss Daronco
          Valter Roesler
Agenda
1. Overview + Initial demonstration
2. Architecture and Components
    ○ BigBlueButton
    ○ Mconf-Web
        ■ Activities
    ○ Android client
        ■ Activities
1. Transfer of Technology
    ○ Development
    ○ Deployment
2. Feedbacks, Statistics and Others
3. GT-Mconf in the future + Debate
1. Overview + Initial
   demonstration
Overview
GT-Mconf - "Sistema de multiconferência para
acesso Interoperável web e móvel"
(multiconference system for interoperable access between web and mobile devices)



Main objectives:
 ● Provide a complete webconference environment
 ● Integration with mobile devices
 ● Usability
 ● Open Source ("low cost")


Compared to:
 ● Adobe Connect
 ● Cisco WebEx
Demonstration
                    web portal




                                 webconferen
                                  ce system




    mobile client
2. Architecture
Architecture
                 1. BigBlueButton

     2. Mobile




                                    3. Web portal
Architecture: Our current setup
One physical machine
  Intel i7 with 4 cores, 4GB RAM, enough HD

Operating System: Ubuntu 10.04

BigBlueButton is installed in this machine using Ubuntu
packages.

This machine has also:
 ● Mconf-Web running in a virtual machine
 ● Two other development VMs
2. Architecture

1. BigBlueButton
Why BigBlueButton?
In the beginning, we were looking for an open
source webconference system with:
  ● Audio and video sharing
      ○ HD video if possible
  ● Document sharing
  ● Mobile clients
  ● Peer-to-peer or client-server
  ● Multiple clients
  ● Integrated with collaborative environments

To be used for:
 ● Virtual meetings
 ● Virtual synchronous classes
 ● Collaborative work
Why BigBlueButton?
After 1-2 months, we came up with a list of possible solutions:

 ● Isabel Videoconference
 ● Global Plaza
 ● Virtual Conference Centre (VCC)
 ● OpenMeetings
 ● MediaMosa
 ● Kaltura
 ● DimDim
 ● VMukti
 ● EVO
 ● Opencast Matterhorn
 ● Opencast Steeple
 ● Access Grid
 ● CineGrid
 ● Janet
 ● BigBlueButton*

                                      *It really was the last one in the list
Why BigBlueButton?
Not all of them are open source or for webconference...

    webconference
       is here!




                     http://www.terena.org/activities/media/
Why BigBlueButton?
Video/Web conference:
 ● Isabel
 ● OpenMeetings
 ● BigBlueButton
 ● EVO (not open source)
 ● DimDim (not open source anymore)

Media management and distribution:
 ● Global Plaza
 ● VCC
 ● MediaMosa
 ● Opencast Matterhorn
 ● Kaltura
Why BigBlueButton?
We have also considered developing a new solution

Options:
 ● HTML5
 ● Flash or a new plug-in
     ○ Google Talk's style
 ● Using code from IVA


Why we decided not to do it:
 ● Would require too much time given our budget and team
   size
 ● There's no point in starting something new if there's a good
   open source solution
Why BigBlueButton?
So why BigBlueButton?

It has most of what we need:
   ● It's webconference
        ○ The client runs in the browser (using Flash)
   ● Open source
   ● Audio/video sharing
   ● Document sharing
   ● Chat
   ● Easy to setup
   ● Can be integrated with collaborative systems
        ○ Ex: Moodle, Sakai, Drupal, etc.
Why BigBlueButton?
So why BigBlueButton?

Plus:
 ● Great support from the developers (+3 years of development)
 ● Active community (~900 members, ~11k messages)
 ● Good documentation
 ● Good code base and roadmap
BigBlueButton - Overview
Developed by Blindside Networks, based on Canada
Open source (LGPL)
  Note: uses red5phone, that's under GPL
Development started in 2007


Website:
 http://bigbluebutton.org/

Blindsite Networks:
   http://www.blindsidenetworks.com/
BigBlueButton - Architecture
Built on top of ~15 open source components
BigBlueButton - Architecture

SIP for voice                                             Client: Flash




                                                                           Server: mostly Java,
                                                                               but not only


                 Asterisk or
                FreeSWITCH




                                 Red5

            http://code.google.com/p/bigbluebutton/wiki/ArchitectureOverview
BigBlueButton - Architecture




                                                                   Modular
                                                                 architecture




       http://code.google.com/p/bigbluebutton/wiki/ArchitectureOverview
BigBlueButton API
Third-party applications can interact with BigBlueButton
through its web API

To:
 ● Create meetings
 ● Join a meeting
 ● End meetings
 ● Get info about current meetings
 ● Fetch recordings (in the next version)

Docs: http://code.google.com/p/bigbluebutton/wiki/API
BigBlueButton API
Web API

Format: API URL + method + parameters

Examples:
  http://<server>/bigbluebutton/api/ +

  ...create?meetingID=prav-123&checksum=ba87d6a8
  ...join?fullname=Ana&password=pass&checksum=ba87d6a8
  ...isMeetingRunning?meetingID=prav-123&checksum=ba87d6a8
  ...end?meetingID=prav-123&checksum=ba87d6a8
  ...getMeetingInfo?meetingID=prav-123&checksum=ba87d6a8
  ...getMeetings?random=231412&checksum=ba87d6a8
BigBlueButton API
Responses are in XML

Example:
   http://<server>/bigbluebutton/api/getMeetingInfo?meetingID=RNP-123...



<response>                                    (...cont.)
  <returncode>SUCCESS</returncode>            <participantCount>1</participantCount>
  <meetingID>RNP-123</meetingID>              <moderatorCount>1</moderatorCount>
  <attendeePW>attendee_pass</attendeePW>      <attendees>
  <moderatorPW>mod_pass</moderatorPW>              <attendee>
  <running>true</running>                              <userID>xczenpd3hhrq</userID>
  <startTime>                                          <fullName>John Doe</fullName>
       Tue Aug 13 17:30:44 UTC 2011                    <role>MODERATOR</role>
  </startTime>                                     </attendee>
  <endTime>null</endTime>                     </attendees>
  (cont...)                                </response>
BigBlueButton API
Security model

Each server has a unique 64-char string called salt
The salt is used to calculate a checksum, used in all API calls
So only authorized apps can make API calls
 ● Apps that know the server salt


  ...create?meetingID=prav-123&checksum=ba87d6a8
  ...join?fullname=Ana&password=pass&checksum=ba87d6a8
  ...isMeetingRunning?meetingID=prav-123&checksum=ba87d6a8
  ...end?meetingID=prav-123&checksum=ba87d6a8
  ...getMeetingInfo?meetingID=prav-123&checksum=ba87d6a8
  ...getMeetings?random=231412&checksum=ba87d6a8
BigBlueButton API
Workflow example
                                            Third-party app                            BigBlueButton
                                           (e.g. web portal)                                API

        User X wants to join his meeting                  authentication,
                                                          permission check, etc.

                                                               isMeetingRunning?

                                                               XML: No, not running.


                                                                      create

                                                               XML: Ok, created.



                                                                       join

                                                               XML: Ok, go to <url>
                  Redirect the user to <url>
                   He will join the session.
BigBlueButton API
Using the API, BigBlueButton was integrated to several third-
party applications:
BigBlueButton Roles
User roles and permissions in a meeting:

Viewer
 ● Users with no authority within the conference
 ● Can view the presentation, videos and chat
 ● Ex: students in a virtual classroom

Presenter
 ● The same capabilities as a participant, plus
 ● Can upload and control presentations
 ● Can share desktop

Moderator
 ● Controls the session: can kick users, switch presenter,
   mute users, and others.
BigBlueButton Roles
User roles and permissions in a meeting:

Important:

 ● Only the presenter role can be assigned/unassigned
   during the conference!

 ● Viewer and moderator roles are defined when the user
   joins the session.
Things we developed in BigBlueButton
● Configurable resolutions




                              config.xml
Things we developed in BigBlueButton
● Improvements on video windows resizing
    ○ It's possible do resize your own video window
    ○ Better usability
Things we developed in BigBlueButton
● Video windows layout (deprecated)
Things we developed in BigBlueButton
● Video dock
Things we developed in BigBlueButton
● Overlay buttons
Some technical info about BigBlueButton
● Audio codec: 16KHz wide-band Speex
● Audio bandwidth: ~48 Kb
● Video codec: H.263 (Sorenson Spark)
● Video bandwidth - depends on the configured quality
  (values between 0 and 100, we use 80)
    ○ 160x120: ~88 Kb
    ○ 320x240: ~224 Kb
    ○ 640x480: ~420 Kb
    ○ 1280x720: ~446 Kb

● Both audio and video communication are RTMP over TCP
2. Architecture

2. Web portal
(Mconf-Web)
Overview - Why do we need a web app?
BigBlueButton provides webconference rooms but you still
need a system to provide management tasks such as:

 ● User authentication
 ● Permission control
 ● Webconference management
    ○ Manage multiple meetings
    ○ CRUD (create, read, update, delete)

  (cont...)
Overview - Why do we need a web app?
BigBlueButton provides webconference rooms but you still
need a system to provide management tasks such as:

  (cont...)

 ● Server management
    ○ Manage multiple servers
    ○ CRUD
    ○ Monitoring and load balancing
 ● Conference scheduling
 ● Usage statistics
 ● Access to the recordings (audio, video, presentations)
 ● Pre-upload of documents
About Global Plaza
Global Plaza or VCC (Virtual Conference Centre)
Web application to provide videoconferencing as a service
  http://globalplaza.org

Developed in the European Global Project
  http://www.global-project.eu/



      "Global Plaza delivers a virtual event service for the
           Internet, which will enable you to perform
    videoconferencing, streaming, recording and electronic
    publishing of your meetings, lectures, training sessions,
           conferences, congresses or workshops."
About Global Plaza
About Global Plaza
Uses Isabel as the webconference system




                     Isabel interface example
About Global Plaza
The full "Global Plaza stack" is a bit more complicated

                         We are using only this
                       block, the web application
A bit more about Global Plaza
Main focus: events!

 ● Users can create events
 ● Events can be virtual
 ● Can be recorded (and published later)
 ● Can be streamed

Events can be:
 ● In person
     ○ You just have a date and agenda in the website.
 ● Virtual meetings
     ○ Using Isabel. Has streaming and recording.
 ● Virtual congress
     ○ Large virtual meetings, usually needs an on-site
       operator.
Why Global Plaza?
We needed a way to test BigBlueButton and it's integration with
third-party applications (as fast as possible).

We found in Global Plaza the features we needed for the first
prototype:
 ● User authentication
 ● Permission control
 ● A web environment to start and manage webconferences

Lots of people talking about it in TF-Media lists.

Among the open source solutions found, it was the closest
related to our ideas and needs.
How Mconf-Web works
Note: we will talk about Mconf-Web, that has differences from the
original Global Plaza


Mconf-Web is a fork of Global Plaza (something like a copy).


The main difference is that Mconf-Web uses BigBlueButton
instead of Isabel.
But there are many others.
How Mconf-Web works
It is a social network of users, spaces and events

Users can create and join spaces (communities)
Users can create and participate in events
Events are held inside a space
Events have a start and end date


User's events:
                                       that will be held in the
                                            space PRAV
How Mconf-Web works
Spaces can be public or private

Public spaces
 ● Viewable by anyone, even by visitors
 ● Only authorized people can alter it

Private spaces
 ● Only viewable by authorized people
 ● Nobody else will be able to see the activity inside this
   space
How Mconf-Web works
What about the webconferences?


 ● Every user has his/her webconference room

 ● Every space has it's webconference room
How Mconf-Web works
User webconference room

 ● It's a single room that the user can share with anyone he
   wants to
 ● Only the owner can start the conference
 ● The room is public, anyone with the link can join
      ○ Obs: he will be able to set it as private soon


                        The conference is
                          not running
How Mconf-Web works
Space webconference room:
                            The conference is
                                running!
How Mconf-Web works
Permissions in the webconferences


In a user's room:
  ● Only the owner is a moderator
  ● All others are viewers


In a space's room:
  ● All members are moderators
  ● All others:
      ○ Public space: are viewers
      ○ Private space: must enter a password to join
How Mconf-Web works
How to join a webconference?


Go to your home or space and click "join":




Copy and paste the conference link in the browser:

  http://mconf.inf.ufrgs.br/webconf/prav
  http://mconf.inf.ufrgs.br/webconf/leonardo-daronco
How Mconf-Web works
How to invite people to a conference?

 ● Just send them the link
    http://mconf.inf.ufrgs.br/webconf/prav


 ● Or use the invite dialog:




Can invite Mconf users
       or using emails
How Mconf-Web works
When invited:
 ● If the room is private, the user need to enter a password
 ● If the user is not logged, he needs to enter his name
Other features
Documents within a space
Other features
Wall - community messages
Other features
User's recent activity and upcoming events
Other features
Languages




We maintain "en" and "pt-br". The
   others are from Global Plaza.
          (and need to be updated)
Other features
Internal messages

              Notifications in the
                      homepage
Other features
The rest we will see during the activities...
Implementation details
Mconf-Web is developed in Ruby on Rails (version 3)


Rails is a web framework for the Ruby language
A simple example of how it compares to other languages:



       PHP                              Java                            Ruby

     CakePHP                       Spring
                                 OpenLazslo                             Rails
      Joomla!
                                Apache Struts                          Sinatra
       Drupal


        http://en.wikipedia.org/wiki/Comparison_of_Web_application_frameworks
Implementation details
Mconf-Web is developed in Ruby on Rails (version 3)


Rails has been a "trending topic" in the web development area
in the last years.

It is also usually associated to agile development
methodologies.

We started using it because of Global Plaza and we don't
regret it.
Implementation details
It's important to mention that:

     The integration with BigBlueButton was developed in
               libraries (called gems in Ruby)




                                   Any Rails
                                  application!
Implementation details
Two gems:

1. bigbluebutton-api-ruby:

Provide methods to communicate with the BBB API.
Can be used by any Ruby application (not only Rails).
Implementation details
Two gems:

2. bigbluebutton_rails:

Has the logic of all the interaction with BigBlueButton (see
next slide)
Implementation details
Two gems:

2. bigbluebutton_rails:                                Features
                                        (mostly copied from "Why do
                                        we need a web application?")
 ● Webconference management
    ○ Manage multiple meetings
    ○ CRUD (create, read, update, delete)
 ● Server management
    ○ Manage multiple servers
    ○ CRUD
 ● Server monitoring
 ● Pre-upload of documents
 ● Helps verifying user permissions
 ● And several others...
Implementation details
Two gems:

2. bigbluebutton_rails:                                     Future
                                                 (lots of possibilities)

 ● Load balancing
 ● Limit the number of users per meeting
 ● Access to the recordings (audio, video, presentations)
 ● Server administration
     ○ Change configs in the server
     ○ Restart the server
     ○ Check if everything is OK
 ● Usage statistics
 ● And several others...
Implementation details
With these libraries, we can change our front end application
and still reuse all the integration with BigBlueButton.

And we can also integrate Mconf/BigBlueButton into other
applications.
(the libraries would work somehow like a Moodle module)
Differences: Mconf-Web and Global Plaza
Migration to Rails 3 - it was using Rails 2.3.
  This was specially important for our gems.

Replaced Isabel by BigBlueButton.

In Global Plaza, only events have webconference rooms.
In Mconf-Web:
   Users have personal rooms
   Spaces have rooms

Lots of changes in the interface.
We are trying to make it simpler and easier to use.
  With that we removed some features that we don't need.
  Or that are not ready yet for BigBlueButton.
2. Architecture

2. Web portal:
   Activities
2. Architecture

3. Mobile Client
(Mconf-Mobile)
Overview
● Goal: transparent interaction between desktop and mobile
  users


● Developing a native Android application
● First iniciative on building a mobile client
Architecture
● flazr is a Java library which handles the RTMP
  communication
    ○ Support to Remote Shared Objects developed by our
      team

● bbb-java is a client side Java API to interact with the
  BigBlueButton server

● bbb-android-core is a native Android library
   ○ Mostly developed in Java - some code in C++
   ○ Some code from the IVA project
   ○ Integrated with Sipdroid to provide voice functionalities
   ○ Uses FFmpeg for video encoding and decoding
Main functionalities
 ● View meeting informations
Main functionalities
                                  11
 ● User status updates
    1. Viewer                              12
                                  1
    2. Moderator                       3
    3. Is transmitting video                           10
    4. Presenter token            2            4
    5. Has raised hand                             5
    6. Muted
    7. Unmuted
    8. Speaking
                                  6
    9. New public chat message
   10. New private chat message                    8
   11. App notifications          7        9
   12. Connection status
Main functionalities
 ● Raise / lower hand
Main functionalities
 ● Public and private chat
Main functionalities
 ● Voice interaction
    ○ Tap to speak
Main functionalities
 ● Voice interaction
    ○ Audio configuration
Main functionalities
 ● Administrative actions
    ○ Assign presenter
    ○ Kick user
    ○ Lower hand
    ○ Mute / unmute
Main functionalities
 ● Video visualization (one at a time)
Main functionalities
 ● Video capture and publish
BBB-Android and Mconf-Mobile
BBB-Android accesses directly the BigBlueButton server by a
JSP demo application
 ● Can join freely all the running meetings, also as a
   moderator
 ● Needs to know the server address

Mconf-Mobile accesses the web portal
 ● Same permissions as in the web portal
 ● Can join only his own rooms, rooms from spaces that the
   user is member and rooms from public spaces
 ● Just needs to know the mconf.inf.ufrgs.br (or mconf.org)
BBB-Android and Mconf-Mobile
BBB-Android and Mconf-Mobile

Compatible with Android 2.0 and above (~96,7%* of the
devices)

Constantly tested on:
 ● Samsung Galaxy S (Android 2.2)
 ● Samsung Galaxy Tab (Android 2.2.1)
 ● Motorola Milestone (Android 2.0.1)

Recommended: Android 2.2 or above




* http://developer.android.com/resources/dashboard/platform-versions.html on
August 2011
BBB-Android and Mconf-Mobile

We maintain both English and Portuguese (BR) languages
 ● It is automatically detected by the device
 ● Easy to translate to others
Mconf-Mobile + Web portal
BBB-Android + Web portal
Join a meeting
 ● clicking on a hyperlink (in the device browser)
BBB-Android + Web portal
Join a meeting
 ● scanning a QR Code
BBB-Android security model
On BigBlueButton 0.71a:
 ● JSP application removes the need of the security salt (!)

On BigBlueButton 0.8 (under development):
 ● JSP application requires a checksum with a unique security
   salt per server
 ● Salt must be small enough to be entered in the device,
   probably a 5-char string
Mobile JSP application
Supports the calls above:
 ● getMeetings
 ● createMeeting
 ● join
2. Architecture

3. Mobile Client:
    Activities
3. Transfer of technology
3. Transfer of technology

1. Development
Development tools
Google Code (http://code.google.com/p/mconf/)
 ● Wiki
 ● Issue tracker
 ● Downloads

Github (https://github.com/mconf)
 ● Public source code repository
 ● 15 projects under the Mconf organization
Developing Mconf-Mobile
 ● Eclipse + ADT Plugin
    ○ Emulator
    ○ Debugger
    ○ "Live debugging" on a device
 ● Android SDK
 ● Android NDK


* All multiplatform tools
Developing BigBlueButton
 ● Development virtual machine of BigBlueButton
 ● Eclipse
    ○ Remote System Explorer Plugin
    ○ AS Development Tools Plugin
 ● Adobe Flash Player - Debugger
 ● SSH + Apache Ant


* All multiplatform tools
3. Transfer of technology

 2. Deployment
Deployment
Mconf-Mobile is easy: you install it in your phone and that's it!

But Mconf-Web and BigBlueButton require a server setup.
Deployment
Ideally, Mconf-Web will be in a standalone machine and
manage several BigBlueButton instances.




                                              We can have several
                                               servers if needed
Deployment: BigBlueButton
The latest version is 0.71a (February 2011).
Version 0.8 will be out soon.



BigBlueButton runs on Ubuntu 10.04 (latest LTS version).

You can also install it in other Linux distributions, but it's
harder.
There are guides to Debian and FreeBSD:
http://code.google.com/p/bigbluebutton/wiki/InstallationBigBlueButtonDebian
http://code.google.com/p/bigbluebutton/wiki/InstallingBigBlueButtonFreeBSD
Deployment: BigBlueButton
As an open source software, BigBlueButton can be installed
from source. But this is the hardest way to do it.
http://code.google.com/p/bigbluebutton/wiki/InstallingBigBlueButton

There are also easier options:

 ● Using the Virtual Machine: you have the entire development
   and production environments. Great for development and
   testing, but not the best solution for deployment.

 ● Installing from packages:
     ○ Just three apt commands
      http://code.google.com/p/bigbluebutton/wiki/InstallationUbuntu
Deployment: BigBlueButton
BigBlueButton also has a very useful script called "bbb-conf"

It can:
   ● Start/stop/restart the server
   ● Check for errors
   ● Change the IP or domain name

http://code.google.com/p/bigbluebutton/wiki/BBBConf
Deployment: BigBlueButton
We have a script called mconf-bbb-conf that helps a
developer to setup a BigBlueButton environment from the
Mconf repository

It includes:
   ● the source code
   ● the right configurations to use Speex

Also it deploys the source code to be used in the development
virtual machine

Example:
  mconf-bbb-conf mconf.inf.ufrgs.br:80

https://github.com/mconf/installation-scripts
Deployment: BigBlueButton
Tipically you don't want to have the development environment
installed in a production environment

bbb-deploy is an Apache Ant script to deploy BigBlueButton
from a development environment (most probably the
development virtual machine) to a production server

It does:
   ● deploy in one command and no interaction
   ● backup the old production version
   ● restore an old version

https://github.com/mconf/installation-scripts/tree/master/bbb-
deploy
Deployment: Mconf-Web
It's a Rails application and can be deployed as any other Rails
application.

We use it on Ubuntu (10.04 or newer).
But it should work on any operating system that has support to
Ruby on Rails (almost all of them have).
Deployment: Mconf-Web
To deploy a Rails application you need:

 ● The source code
 ● A web server
 ● An application server



                      Rails application

                           Passenger

                            Apache
Deployment: Mconf-Web
How-to:

 ● Install Apache
 ● Install the Ruby environment
 ● Install Passenger
 ● Install the Apache-Passenger module

 ● Copy the application code to a configured path



More information at:
http://code.google.com/p/mconf/wiki/MconfWebDeploymentManual
Deployment: Mconf-Web
We have also a script called "mconf-web-conf" that can help
the setup of a production server

Example:
  mconf-web-conf --install-packages production
  mconf-web-conf --install-ruby
  mconf-web-conf --setup-prod


Details at:
http://code.google.com/p/mconf/wiki/MconfWebDeploymentWithScript
Deployment: Mconf-Web
Also...

We use a library called Capistrano to help the deployment:


                                         Your development
                                             machine




Not required, but
 recommended.
Deployment: Mconf VM
We've made a virtual machine with:
 ● Mconf-Web
 ● BigBlueButton + customizations
 ● Both enabled to be accessed by Mconf-Mobile


It can be used to:
   ● Have a fast testing version of Mconf
   ● Have a pre-configured development environment


More information at:
http://code.google.com/p/mconf/wiki/MconfVM
Deployment: Cloud
Another possibility is to deploy Mconf in the cloud.


BigBlueButton has already been used in the Amazon EC2
cloud. There's information about it in their wiki + mailing lists.



Mconf-Web can also be deployed in infrastructure clouds like
Amazon's, but we have not tested yet.

Also, Mconf-Web can be deployed in application clouds, such
as Heroku (http://www.heroku.com/)
Deployment: Security
HTTPS for Mconf-Web
 ● Not hard to implement
 ● Requires configuration in the web server
 ● Requires some development on Mconf-Mobile


RTMPS for BigBlueButton
 ● There's people talking about it in the mailing lists
 ● It seems possible, but we don't know how hard it is
Deployment: Scalability
One BigBlueButton server supports around 80 voice users and
20 webcams*




* This is the result of the lastest stress test and is very dependent on the machine where
BigBlueButton is installed (Xeon 3450 quad core 2.66 Ghz with hyperthreading).
Deployment: Scalability
How to improve it:

 ● Use several servers in a cluster
    ○ The easier solution but not the best
    ○ Individual rooms will still be limited to the capacity of 1
      server

 ● Use several audio servers
    ○ BBB uses FreeSWITCH for voice, that can be scaled

 ● Use several video servers
    ○ It requires allowing several Red5 instances to run in
      parallel
4. Feedbacks, statistics and others
Feedbacks and statistics
Mconf @ Google Code (wiki + issues)

Visitors
Feedbacks and statistics
Mconf @ Google Code (wiki + issues)
Feedbacks and statistics
mconf.inf.ufrgs.br

Current statistics:
 ● 138 users
 ● 49 spaces
 ● ~1200 visits
Feedbacks and statistics
BBB-Android in numbers

Version 0.2
 ● Released on May 6th
 ● 162 downloads

Version 0.3beta (used on WRNP 2011)
 ● Released on May 28th
 ● 351 downloads

Version 0.4
 ● Released on August 25th

Version 0.5
 ● Will be released on Android Market soon
Feedbacks and statistics
BigBlueButton
 ● +3 years of development
 ● Community with ~900
   members, ~11k messages
 ● Increasing worldwide interest
   in the software



     Interest in BBB during the last
        Terena's TF-Media meeting
BigBlueButton Developer Summit
The Mconf Team was invited to give a presentation about the
Mconf-Mobile project in an online developer summit
on August 28th

http://bigbluebutton.eventbrite.com/
Feedbacks and statistics
We also had some good feedbacks from the BigBlueButton
developers, including:
  ● Messages in the
    mailing lists
  ● Blog posts
  ● References in
    presentations
5. GT-Mconf in the future +
         Debate
Future - 2nd year proposal
1. Escalabilidade / Monitoramento
2. Integração com padrões de videoconferência
3. Suporte a iPhone OS
4. Melhorias no núcleo do BBB
5. Melhorias no aplicativo Android
6. Melhorias no Portal WEB
7. Status de usuário
Thank you
Time to debate...




                         GT-Mconf
                    Transfer of technology course
                              Authors:
                          Felipe Cecagno
                      Leonardo Crauss Daronco
                           Valter Roesler
 
 
Some technical info about BigBlueButton
Video stream flow (end-to-end)
 ● Video capture (Flash plugin)
 ● Video publishing - RTMP over TCP to the video server
   (Flash plugin)
 ● Stream forward (Red5 server)
 ● Video receiving (Flash plugin)
 ● Video playback (Flash plugin)
Some technical info about BigBlueButton
Audio stream flow (end-to-end)
 ● Audio capture (red5phone)
 ● Audio publishing - RTMP over TCP to the video server
   (red5phone)
 ● Audio forward from Red5 to FreeSWITCH (or Asterisk)
 ● Audio forward from FreeSWITCH (or Asterisk) to Red5
 ● Audio receiving (red5phone)
 ● Audio playback (red5phone)

Más contenido relacionado

La actualidad más candente

Chromium ui framework(shared)
Chromium ui framework(shared)Chromium ui framework(shared)
Chromium ui framework(shared)gnomekr
 
CiklumJavaSat15112011:Andrew Mormysh-GWT features overview
CiklumJavaSat15112011:Andrew Mormysh-GWT features overviewCiklumJavaSat15112011:Andrew Mormysh-GWT features overview
CiklumJavaSat15112011:Andrew Mormysh-GWT features overviewCiklum Ukraine
 
Amp by Google: The Present And Future Of Quick Content Delivery
Amp by Google: The Present And Future Of Quick Content DeliveryAmp by Google: The Present And Future Of Quick Content Delivery
Amp by Google: The Present And Future Of Quick Content DeliveryRaunak Hajela
 
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax PluginsHnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax Pluginsdominion
 
Headless browser: puppeteer and git client : GitKraken
Headless browser: puppeteer and git client : GitKrakenHeadless browser: puppeteer and git client : GitKraken
Headless browser: puppeteer and git client : GitKrakenSheikhMoonwaraAnjumM
 
OVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source TreeOVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source TreeChang W. Doh
 
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And DxlBp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxldominion
 
Building a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologiesBuilding a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologiesn_adam_stanley
 
Html5 features: location, history and offline apps
Html5 features: location, history and offline appsHtml5 features: location, history and offline apps
Html5 features: location, history and offline appsKonstantin Delchev
 

La actualidad más candente (10)

Chromium ui framework(shared)
Chromium ui framework(shared)Chromium ui framework(shared)
Chromium ui framework(shared)
 
CiklumJavaSat15112011:Andrew Mormysh-GWT features overview
CiklumJavaSat15112011:Andrew Mormysh-GWT features overviewCiklumJavaSat15112011:Andrew Mormysh-GWT features overview
CiklumJavaSat15112011:Andrew Mormysh-GWT features overview
 
Amp by Google: The Present And Future Of Quick Content Delivery
Amp by Google: The Present And Future Of Quick Content DeliveryAmp by Google: The Present And Future Of Quick Content Delivery
Amp by Google: The Present And Future Of Quick Content Delivery
 
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax PluginsHnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
 
Headless browser: puppeteer and git client : GitKraken
Headless browser: puppeteer and git client : GitKrakenHeadless browser: puppeteer and git client : GitKraken
Headless browser: puppeteer and git client : GitKraken
 
OVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source TreeOVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source Tree
 
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And DxlBp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
 
Chromium wayland
Chromium waylandChromium wayland
Chromium wayland
 
Building a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologiesBuilding a Next Generation Mobile Browser using Web technologies
Building a Next Generation Mobile Browser using Web technologies
 
Html5 features: location, history and offline apps
Html5 features: location, history and offline appsHtml5 features: location, history and offline apps
Html5 features: location, history and offline apps
 

Destacado

LibreOffice ヘルプを翻訳してみよう
LibreOffice ヘルプを翻訳してみようLibreOffice ヘルプを翻訳してみよう
LibreOffice ヘルプを翻訳してみようKazumi Ohhashi
 
La casa presentation
La casa presentationLa casa presentation
La casa presentationtranduyen76
 
Tele3113 wk2tue
Tele3113 wk2tueTele3113 wk2tue
Tele3113 wk2tueVin Voro
 
Getting Started
Getting StartedGetting Started
Getting StartedDiveon
 
Tele3113 wk1wed
Tele3113 wk1wedTele3113 wk1wed
Tele3113 wk1wedVin Voro
 
Presentació curs mitjà xixona 2014
Presentació curs mitjà xixona 2014Presentació curs mitjà xixona 2014
Presentació curs mitjà xixona 2014Josep Miquel
 
Mailing Day СПБ 2012 // Интеграция Email и Social Media // CPA Network Russia...
Mailing Day СПБ 2012 // Интеграция Email и Social Media // CPA Network Russia...Mailing Day СПБ 2012 // Интеграция Email и Social Media // CPA Network Russia...
Mailing Day СПБ 2012 // Интеграция Email и Social Media // CPA Network Russia...Kira Zhestkova
 
Portfolio 2013
Portfolio 2013 Portfolio 2013
Portfolio 2013 suehoeft
 
Tele3113 wk5wed
Tele3113 wk5wedTele3113 wk5wed
Tele3113 wk5wedVin Voro
 
Transforming Our Voices - Social Media & BC Government (2010)
Transforming Our Voices - Social Media & BC Government (2010)Transforming Our Voices - Social Media & BC Government (2010)
Transforming Our Voices - Social Media & BC Government (2010)Ashley Spilak
 
非技術者のためのオープンソース入門 LibreOffice コミュニティで質問してみよう
非技術者のためのオープンソース入門 LibreOffice コミュニティで質問してみよう非技術者のためのオープンソース入門 LibreOffice コミュニティで質問してみよう
非技術者のためのオープンソース入門 LibreOffice コミュニティで質問してみようKazumi Ohhashi
 
Chapter11 economics
Chapter11 economicsChapter11 economics
Chapter11 economicsVin Voro
 
Chapter3 marketing
Chapter3 marketingChapter3 marketing
Chapter3 marketingVin Voro
 
মাধ্যমিক শিক্ষায় সাব ক্লাস্টারভিত্তিক উন্নয়ন চিন্তা
মাধ্যমিক শিক্ষায় সাব ক্লাস্টারভিত্তিক উন্নয়ন চিন্তামাধ্যমিক শিক্ষায় সাব ক্লাস্টারভিত্তিক উন্নয়ন চিন্তা
মাধ্যমিক শিক্ষায় সাব ক্লাস্টারভিত্তিক উন্নয়ন চিন্তাAbul Bashar
 

Destacado (20)

LibreOffice ヘルプを翻訳してみよう
LibreOffice ヘルプを翻訳してみようLibreOffice ヘルプを翻訳してみよう
LibreOffice ヘルプを翻訳してみよう
 
Tekno dakwah design
Tekno dakwah   designTekno dakwah   design
Tekno dakwah design
 
La casa presentation
La casa presentationLa casa presentation
La casa presentation
 
Tele3113 wk2tue
Tele3113 wk2tueTele3113 wk2tue
Tele3113 wk2tue
 
Lect02
Lect02Lect02
Lect02
 
Getting Started
Getting StartedGetting Started
Getting Started
 
Tele3113 wk1wed
Tele3113 wk1wedTele3113 wk1wed
Tele3113 wk1wed
 
Monterey Slides
Monterey SlidesMonterey Slides
Monterey Slides
 
Presentació curs mitjà xixona 2014
Presentació curs mitjà xixona 2014Presentació curs mitjà xixona 2014
Presentació curs mitjà xixona 2014
 
Mailing Day СПБ 2012 // Интеграция Email и Social Media // CPA Network Russia...
Mailing Day СПБ 2012 // Интеграция Email и Social Media // CPA Network Russia...Mailing Day СПБ 2012 // Интеграция Email и Social Media // CPA Network Russia...
Mailing Day СПБ 2012 // Интеграция Email и Social Media // CPA Network Russia...
 
Portfolio 2013
Portfolio 2013 Portfolio 2013
Portfolio 2013
 
Tele3113 wk5wed
Tele3113 wk5wedTele3113 wk5wed
Tele3113 wk5wed
 
Transforming Our Voices - Social Media & BC Government (2010)
Transforming Our Voices - Social Media & BC Government (2010)Transforming Our Voices - Social Media & BC Government (2010)
Transforming Our Voices - Social Media & BC Government (2010)
 
Lect16
Lect16Lect16
Lect16
 
非技術者のためのオープンソース入門 LibreOffice コミュニティで質問してみよう
非技術者のためのオープンソース入門 LibreOffice コミュニティで質問してみよう非技術者のためのオープンソース入門 LibreOffice コミュニティで質問してみよう
非技術者のためのオープンソース入門 LibreOffice コミュニティで質問してみよう
 
Chapter11 economics
Chapter11 economicsChapter11 economics
Chapter11 economics
 
Chapter3 marketing
Chapter3 marketingChapter3 marketing
Chapter3 marketing
 
Quang thai new
Quang thai newQuang thai new
Quang thai new
 
মাধ্যমিক শিক্ষায় সাব ক্লাস্টারভিত্তিক উন্নয়ন চিন্তা
মাধ্যমিক শিক্ষায় সাব ক্লাস্টারভিত্তিক উন্নয়ন চিন্তামাধ্যমিক শিক্ষায় সাব ক্লাস্টারভিত্তিক উন্নয়ন চিন্তা
মাধ্যমিক শিক্ষায় সাব ক্লাস্টারভিত্তিক উন্নয়ন চিন্তা
 
Anna col
Anna colAnna col
Anna col
 

Similar a GT-Mconf - Transfer of Technology Course

Sprint 45 review
Sprint 45 reviewSprint 45 review
Sprint 45 reviewManageIQ
 
Brisbane MuleSoft Meetup 2023-03-22 - Anypoint Code Builder and Splunk Loggin...
Brisbane MuleSoft Meetup 2023-03-22 - Anypoint Code Builder and Splunk Loggin...Brisbane MuleSoft Meetup 2023-03-22 - Anypoint Code Builder and Splunk Loggin...
Brisbane MuleSoft Meetup 2023-03-22 - Anypoint Code Builder and Splunk Loggin...BrianFraser29
 
Interconnection Automation For All - Extended - MPS 2023
Interconnection Automation For All - Extended - MPS 2023Interconnection Automation For All - Extended - MPS 2023
Interconnection Automation For All - Extended - MPS 2023Chris Grundemann
 
Automation in iOS development
Automation in iOS developmentAutomation in iOS development
Automation in iOS developmentCong Nguyen
 
Serverless Data Architecture at scale on Google Cloud Platform
Serverless Data Architecture at scale on Google Cloud PlatformServerless Data Architecture at scale on Google Cloud Platform
Serverless Data Architecture at scale on Google Cloud PlatformMeetupDataScienceRoma
 
Mconf - BigBlueButton Summit
Mconf - BigBlueButton SummitMconf - BigBlueButton Summit
Mconf - BigBlueButton Summitmconf
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Pythonwesley chun
 
Freedomotic v5.5 Changelog
Freedomotic v5.5 ChangelogFreedomotic v5.5 Changelog
Freedomotic v5.5 Changelogfreedomotic
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Pythonwesley chun
 
Introduction to serverless computing on Google Cloud
Introduction to serverless computing on Google CloudIntroduction to serverless computing on Google Cloud
Introduction to serverless computing on Google Cloudwesley chun
 
WebKit and Blink: Open Development Powering the HTML5 Revolution (LinuxCon No...
WebKit and Blink: Open Development Powering the HTML5 Revolution (LinuxCon No...WebKit and Blink: Open Development Powering the HTML5 Revolution (LinuxCon No...
WebKit and Blink: Open Development Powering the HTML5 Revolution (LinuxCon No...Igalia
 
Griffon for the Enterprise
Griffon for the EnterpriseGriffon for the Enterprise
Griffon for the EnterpriseJames Williams
 
201507_NeoHsu_Portfolio
201507_NeoHsu_Portfolio201507_NeoHsu_Portfolio
201507_NeoHsu_PortfolioNeo Hsu
 
Intro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdfIntro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdfWeaveworks
 
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWebinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWeaveworks
 
Web.dev extended : What's new in Web [GDG Taichung]
Web.dev extended : What's new in Web [GDG Taichung]Web.dev extended : What's new in Web [GDG Taichung]
Web.dev extended : What's new in Web [GDG Taichung]Chieh Kai Yang
 

Similar a GT-Mconf - Transfer of Technology Course (20)

Sprint 45 review
Sprint 45 reviewSprint 45 review
Sprint 45 review
 
Brisbane MuleSoft Meetup 2023-03-22 - Anypoint Code Builder and Splunk Loggin...
Brisbane MuleSoft Meetup 2023-03-22 - Anypoint Code Builder and Splunk Loggin...Brisbane MuleSoft Meetup 2023-03-22 - Anypoint Code Builder and Splunk Loggin...
Brisbane MuleSoft Meetup 2023-03-22 - Anypoint Code Builder and Splunk Loggin...
 
Interconnection Automation For All - Extended - MPS 2023
Interconnection Automation For All - Extended - MPS 2023Interconnection Automation For All - Extended - MPS 2023
Interconnection Automation For All - Extended - MPS 2023
 
Building APIs with Mule and Spring Boot
Building APIs with Mule and Spring BootBuilding APIs with Mule and Spring Boot
Building APIs with Mule and Spring Boot
 
Automation in iOS development
Automation in iOS developmentAutomation in iOS development
Automation in iOS development
 
Serverless Data Architecture at scale on Google Cloud Platform
Serverless Data Architecture at scale on Google Cloud PlatformServerless Data Architecture at scale on Google Cloud Platform
Serverless Data Architecture at scale on Google Cloud Platform
 
Mconf - BigBlueButton Summit
Mconf - BigBlueButton SummitMconf - BigBlueButton Summit
Mconf - BigBlueButton Summit
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
 
Sprint 66
Sprint 66Sprint 66
Sprint 66
 
Freedomotic v5.5 Changelog
Freedomotic v5.5 ChangelogFreedomotic v5.5 Changelog
Freedomotic v5.5 Changelog
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
 
Google Home and Google Assistant Workshop: Build your own serverless Action o...
Google Home and Google Assistant Workshop: Build your own serverless Action o...Google Home and Google Assistant Workshop: Build your own serverless Action o...
Google Home and Google Assistant Workshop: Build your own serverless Action o...
 
Introduction to serverless computing on Google Cloud
Introduction to serverless computing on Google CloudIntroduction to serverless computing on Google Cloud
Introduction to serverless computing on Google Cloud
 
WebKit and Blink: Open Development Powering the HTML5 Revolution (LinuxCon No...
WebKit and Blink: Open Development Powering the HTML5 Revolution (LinuxCon No...WebKit and Blink: Open Development Powering the HTML5 Revolution (LinuxCon No...
WebKit and Blink: Open Development Powering the HTML5 Revolution (LinuxCon No...
 
Griffon for the Enterprise
Griffon for the EnterpriseGriffon for the Enterprise
Griffon for the Enterprise
 
201507_NeoHsu_Portfolio
201507_NeoHsu_Portfolio201507_NeoHsu_Portfolio
201507_NeoHsu_Portfolio
 
Intro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdfIntro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdf
 
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWebinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
 
Web.dev extended : What's new in Web [GDG Taichung]
Web.dev extended : What's new in Web [GDG Taichung]Web.dev extended : What's new in Web [GDG Taichung]
Web.dev extended : What's new in Web [GDG Taichung]
 

Último

2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 

Último (20)

2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 

GT-Mconf - Transfer of Technology Course

  • 1. GT-Mconf Transfer of technology course Authors: Felipe Cecagno Leonardo Crauss Daronco Valter Roesler
  • 2. Agenda 1. Overview + Initial demonstration 2. Architecture and Components ○ BigBlueButton ○ Mconf-Web ■ Activities ○ Android client ■ Activities 1. Transfer of Technology ○ Development ○ Deployment 2. Feedbacks, Statistics and Others 3. GT-Mconf in the future + Debate
  • 3. 1. Overview + Initial demonstration
  • 4. Overview GT-Mconf - "Sistema de multiconferência para acesso Interoperável web e móvel" (multiconference system for interoperable access between web and mobile devices) Main objectives: ● Provide a complete webconference environment ● Integration with mobile devices ● Usability ● Open Source ("low cost") Compared to: ● Adobe Connect ● Cisco WebEx
  • 5. Demonstration web portal webconferen ce system mobile client
  • 7. Architecture 1. BigBlueButton 2. Mobile 3. Web portal
  • 8. Architecture: Our current setup One physical machine Intel i7 with 4 cores, 4GB RAM, enough HD Operating System: Ubuntu 10.04 BigBlueButton is installed in this machine using Ubuntu packages. This machine has also: ● Mconf-Web running in a virtual machine ● Two other development VMs
  • 10. Why BigBlueButton? In the beginning, we were looking for an open source webconference system with: ● Audio and video sharing ○ HD video if possible ● Document sharing ● Mobile clients ● Peer-to-peer or client-server ● Multiple clients ● Integrated with collaborative environments To be used for: ● Virtual meetings ● Virtual synchronous classes ● Collaborative work
  • 11. Why BigBlueButton? After 1-2 months, we came up with a list of possible solutions: ● Isabel Videoconference ● Global Plaza ● Virtual Conference Centre (VCC) ● OpenMeetings ● MediaMosa ● Kaltura ● DimDim ● VMukti ● EVO ● Opencast Matterhorn ● Opencast Steeple ● Access Grid ● CineGrid ● Janet ● BigBlueButton* *It really was the last one in the list
  • 12. Why BigBlueButton? Not all of them are open source or for webconference... webconference is here! http://www.terena.org/activities/media/
  • 13. Why BigBlueButton? Video/Web conference: ● Isabel ● OpenMeetings ● BigBlueButton ● EVO (not open source) ● DimDim (not open source anymore) Media management and distribution: ● Global Plaza ● VCC ● MediaMosa ● Opencast Matterhorn ● Kaltura
  • 14. Why BigBlueButton? We have also considered developing a new solution Options: ● HTML5 ● Flash or a new plug-in ○ Google Talk's style ● Using code from IVA Why we decided not to do it: ● Would require too much time given our budget and team size ● There's no point in starting something new if there's a good open source solution
  • 15. Why BigBlueButton? So why BigBlueButton? It has most of what we need: ● It's webconference ○ The client runs in the browser (using Flash) ● Open source ● Audio/video sharing ● Document sharing ● Chat ● Easy to setup ● Can be integrated with collaborative systems ○ Ex: Moodle, Sakai, Drupal, etc.
  • 16. Why BigBlueButton? So why BigBlueButton? Plus: ● Great support from the developers (+3 years of development) ● Active community (~900 members, ~11k messages) ● Good documentation ● Good code base and roadmap
  • 17. BigBlueButton - Overview Developed by Blindside Networks, based on Canada Open source (LGPL) Note: uses red5phone, that's under GPL Development started in 2007 Website: http://bigbluebutton.org/ Blindsite Networks: http://www.blindsidenetworks.com/
  • 18. BigBlueButton - Architecture Built on top of ~15 open source components
  • 19. BigBlueButton - Architecture SIP for voice Client: Flash Server: mostly Java, but not only Asterisk or FreeSWITCH Red5 http://code.google.com/p/bigbluebutton/wiki/ArchitectureOverview
  • 20. BigBlueButton - Architecture Modular architecture http://code.google.com/p/bigbluebutton/wiki/ArchitectureOverview
  • 21. BigBlueButton API Third-party applications can interact with BigBlueButton through its web API To: ● Create meetings ● Join a meeting ● End meetings ● Get info about current meetings ● Fetch recordings (in the next version) Docs: http://code.google.com/p/bigbluebutton/wiki/API
  • 22. BigBlueButton API Web API Format: API URL + method + parameters Examples: http://<server>/bigbluebutton/api/ + ...create?meetingID=prav-123&checksum=ba87d6a8 ...join?fullname=Ana&password=pass&checksum=ba87d6a8 ...isMeetingRunning?meetingID=prav-123&checksum=ba87d6a8 ...end?meetingID=prav-123&checksum=ba87d6a8 ...getMeetingInfo?meetingID=prav-123&checksum=ba87d6a8 ...getMeetings?random=231412&checksum=ba87d6a8
  • 23. BigBlueButton API Responses are in XML Example: http://<server>/bigbluebutton/api/getMeetingInfo?meetingID=RNP-123... <response> (...cont.) <returncode>SUCCESS</returncode> <participantCount>1</participantCount> <meetingID>RNP-123</meetingID> <moderatorCount>1</moderatorCount> <attendeePW>attendee_pass</attendeePW> <attendees> <moderatorPW>mod_pass</moderatorPW> <attendee> <running>true</running> <userID>xczenpd3hhrq</userID> <startTime> <fullName>John Doe</fullName> Tue Aug 13 17:30:44 UTC 2011 <role>MODERATOR</role> </startTime> </attendee> <endTime>null</endTime> </attendees> (cont...) </response>
  • 24. BigBlueButton API Security model Each server has a unique 64-char string called salt The salt is used to calculate a checksum, used in all API calls So only authorized apps can make API calls ● Apps that know the server salt ...create?meetingID=prav-123&checksum=ba87d6a8 ...join?fullname=Ana&password=pass&checksum=ba87d6a8 ...isMeetingRunning?meetingID=prav-123&checksum=ba87d6a8 ...end?meetingID=prav-123&checksum=ba87d6a8 ...getMeetingInfo?meetingID=prav-123&checksum=ba87d6a8 ...getMeetings?random=231412&checksum=ba87d6a8
  • 25. BigBlueButton API Workflow example Third-party app BigBlueButton (e.g. web portal) API User X wants to join his meeting authentication, permission check, etc. isMeetingRunning? XML: No, not running. create XML: Ok, created. join XML: Ok, go to <url> Redirect the user to <url> He will join the session.
  • 26. BigBlueButton API Using the API, BigBlueButton was integrated to several third- party applications:
  • 27. BigBlueButton Roles User roles and permissions in a meeting: Viewer ● Users with no authority within the conference ● Can view the presentation, videos and chat ● Ex: students in a virtual classroom Presenter ● The same capabilities as a participant, plus ● Can upload and control presentations ● Can share desktop Moderator ● Controls the session: can kick users, switch presenter, mute users, and others.
  • 28. BigBlueButton Roles User roles and permissions in a meeting: Important: ● Only the presenter role can be assigned/unassigned during the conference! ● Viewer and moderator roles are defined when the user joins the session.
  • 29. Things we developed in BigBlueButton ● Configurable resolutions config.xml
  • 30. Things we developed in BigBlueButton ● Improvements on video windows resizing ○ It's possible do resize your own video window ○ Better usability
  • 31. Things we developed in BigBlueButton ● Video windows layout (deprecated)
  • 32. Things we developed in BigBlueButton ● Video dock
  • 33. Things we developed in BigBlueButton ● Overlay buttons
  • 34. Some technical info about BigBlueButton ● Audio codec: 16KHz wide-band Speex ● Audio bandwidth: ~48 Kb ● Video codec: H.263 (Sorenson Spark) ● Video bandwidth - depends on the configured quality (values between 0 and 100, we use 80) ○ 160x120: ~88 Kb ○ 320x240: ~224 Kb ○ 640x480: ~420 Kb ○ 1280x720: ~446 Kb ● Both audio and video communication are RTMP over TCP
  • 35. 2. Architecture 2. Web portal (Mconf-Web)
  • 36. Overview - Why do we need a web app? BigBlueButton provides webconference rooms but you still need a system to provide management tasks such as: ● User authentication ● Permission control ● Webconference management ○ Manage multiple meetings ○ CRUD (create, read, update, delete) (cont...)
  • 37. Overview - Why do we need a web app? BigBlueButton provides webconference rooms but you still need a system to provide management tasks such as: (cont...) ● Server management ○ Manage multiple servers ○ CRUD ○ Monitoring and load balancing ● Conference scheduling ● Usage statistics ● Access to the recordings (audio, video, presentations) ● Pre-upload of documents
  • 38. About Global Plaza Global Plaza or VCC (Virtual Conference Centre) Web application to provide videoconferencing as a service http://globalplaza.org Developed in the European Global Project http://www.global-project.eu/ "Global Plaza delivers a virtual event service for the Internet, which will enable you to perform videoconferencing, streaming, recording and electronic publishing of your meetings, lectures, training sessions, conferences, congresses or workshops."
  • 40. About Global Plaza Uses Isabel as the webconference system Isabel interface example
  • 41. About Global Plaza The full "Global Plaza stack" is a bit more complicated We are using only this block, the web application
  • 42. A bit more about Global Plaza Main focus: events! ● Users can create events ● Events can be virtual ● Can be recorded (and published later) ● Can be streamed Events can be: ● In person ○ You just have a date and agenda in the website. ● Virtual meetings ○ Using Isabel. Has streaming and recording. ● Virtual congress ○ Large virtual meetings, usually needs an on-site operator.
  • 43. Why Global Plaza? We needed a way to test BigBlueButton and it's integration with third-party applications (as fast as possible). We found in Global Plaza the features we needed for the first prototype: ● User authentication ● Permission control ● A web environment to start and manage webconferences Lots of people talking about it in TF-Media lists. Among the open source solutions found, it was the closest related to our ideas and needs.
  • 44. How Mconf-Web works Note: we will talk about Mconf-Web, that has differences from the original Global Plaza Mconf-Web is a fork of Global Plaza (something like a copy). The main difference is that Mconf-Web uses BigBlueButton instead of Isabel. But there are many others.
  • 45. How Mconf-Web works It is a social network of users, spaces and events Users can create and join spaces (communities) Users can create and participate in events Events are held inside a space Events have a start and end date User's events: that will be held in the space PRAV
  • 46. How Mconf-Web works Spaces can be public or private Public spaces ● Viewable by anyone, even by visitors ● Only authorized people can alter it Private spaces ● Only viewable by authorized people ● Nobody else will be able to see the activity inside this space
  • 47. How Mconf-Web works What about the webconferences? ● Every user has his/her webconference room ● Every space has it's webconference room
  • 48. How Mconf-Web works User webconference room ● It's a single room that the user can share with anyone he wants to ● Only the owner can start the conference ● The room is public, anyone with the link can join ○ Obs: he will be able to set it as private soon The conference is not running
  • 49. How Mconf-Web works Space webconference room: The conference is running!
  • 50. How Mconf-Web works Permissions in the webconferences In a user's room: ● Only the owner is a moderator ● All others are viewers In a space's room: ● All members are moderators ● All others: ○ Public space: are viewers ○ Private space: must enter a password to join
  • 51. How Mconf-Web works How to join a webconference? Go to your home or space and click "join": Copy and paste the conference link in the browser: http://mconf.inf.ufrgs.br/webconf/prav http://mconf.inf.ufrgs.br/webconf/leonardo-daronco
  • 52. How Mconf-Web works How to invite people to a conference? ● Just send them the link http://mconf.inf.ufrgs.br/webconf/prav ● Or use the invite dialog: Can invite Mconf users or using emails
  • 53. How Mconf-Web works When invited: ● If the room is private, the user need to enter a password ● If the user is not logged, he needs to enter his name
  • 55. Other features Wall - community messages
  • 56. Other features User's recent activity and upcoming events
  • 57. Other features Languages We maintain "en" and "pt-br". The others are from Global Plaza. (and need to be updated)
  • 58. Other features Internal messages Notifications in the homepage
  • 59. Other features The rest we will see during the activities...
  • 60. Implementation details Mconf-Web is developed in Ruby on Rails (version 3) Rails is a web framework for the Ruby language A simple example of how it compares to other languages: PHP Java Ruby CakePHP Spring OpenLazslo Rails Joomla! Apache Struts Sinatra Drupal http://en.wikipedia.org/wiki/Comparison_of_Web_application_frameworks
  • 61. Implementation details Mconf-Web is developed in Ruby on Rails (version 3) Rails has been a "trending topic" in the web development area in the last years. It is also usually associated to agile development methodologies. We started using it because of Global Plaza and we don't regret it.
  • 62. Implementation details It's important to mention that: The integration with BigBlueButton was developed in libraries (called gems in Ruby) Any Rails application!
  • 63. Implementation details Two gems: 1. bigbluebutton-api-ruby: Provide methods to communicate with the BBB API. Can be used by any Ruby application (not only Rails).
  • 64. Implementation details Two gems: 2. bigbluebutton_rails: Has the logic of all the interaction with BigBlueButton (see next slide)
  • 65. Implementation details Two gems: 2. bigbluebutton_rails: Features (mostly copied from "Why do we need a web application?") ● Webconference management ○ Manage multiple meetings ○ CRUD (create, read, update, delete) ● Server management ○ Manage multiple servers ○ CRUD ● Server monitoring ● Pre-upload of documents ● Helps verifying user permissions ● And several others...
  • 66. Implementation details Two gems: 2. bigbluebutton_rails: Future (lots of possibilities) ● Load balancing ● Limit the number of users per meeting ● Access to the recordings (audio, video, presentations) ● Server administration ○ Change configs in the server ○ Restart the server ○ Check if everything is OK ● Usage statistics ● And several others...
  • 67. Implementation details With these libraries, we can change our front end application and still reuse all the integration with BigBlueButton. And we can also integrate Mconf/BigBlueButton into other applications. (the libraries would work somehow like a Moodle module)
  • 68. Differences: Mconf-Web and Global Plaza Migration to Rails 3 - it was using Rails 2.3. This was specially important for our gems. Replaced Isabel by BigBlueButton. In Global Plaza, only events have webconference rooms. In Mconf-Web: Users have personal rooms Spaces have rooms Lots of changes in the interface. We are trying to make it simpler and easier to use. With that we removed some features that we don't need. Or that are not ready yet for BigBlueButton.
  • 69. 2. Architecture 2. Web portal: Activities
  • 70. 2. Architecture 3. Mobile Client (Mconf-Mobile)
  • 71. Overview ● Goal: transparent interaction between desktop and mobile users ● Developing a native Android application ● First iniciative on building a mobile client
  • 72. Architecture ● flazr is a Java library which handles the RTMP communication ○ Support to Remote Shared Objects developed by our team ● bbb-java is a client side Java API to interact with the BigBlueButton server ● bbb-android-core is a native Android library ○ Mostly developed in Java - some code in C++ ○ Some code from the IVA project ○ Integrated with Sipdroid to provide voice functionalities ○ Uses FFmpeg for video encoding and decoding
  • 73. Main functionalities ● View meeting informations
  • 74. Main functionalities 11 ● User status updates 1. Viewer 12 1 2. Moderator 3 3. Is transmitting video 10 4. Presenter token 2 4 5. Has raised hand 5 6. Muted 7. Unmuted 8. Speaking 6 9. New public chat message 10. New private chat message 8 11. App notifications 7 9 12. Connection status
  • 75. Main functionalities ● Raise / lower hand
  • 76. Main functionalities ● Public and private chat
  • 77. Main functionalities ● Voice interaction ○ Tap to speak
  • 78. Main functionalities ● Voice interaction ○ Audio configuration
  • 79. Main functionalities ● Administrative actions ○ Assign presenter ○ Kick user ○ Lower hand ○ Mute / unmute
  • 80. Main functionalities ● Video visualization (one at a time)
  • 81. Main functionalities ● Video capture and publish
  • 82. BBB-Android and Mconf-Mobile BBB-Android accesses directly the BigBlueButton server by a JSP demo application ● Can join freely all the running meetings, also as a moderator ● Needs to know the server address Mconf-Mobile accesses the web portal ● Same permissions as in the web portal ● Can join only his own rooms, rooms from spaces that the user is member and rooms from public spaces ● Just needs to know the mconf.inf.ufrgs.br (or mconf.org)
  • 84. BBB-Android and Mconf-Mobile Compatible with Android 2.0 and above (~96,7%* of the devices) Constantly tested on: ● Samsung Galaxy S (Android 2.2) ● Samsung Galaxy Tab (Android 2.2.1) ● Motorola Milestone (Android 2.0.1) Recommended: Android 2.2 or above * http://developer.android.com/resources/dashboard/platform-versions.html on August 2011
  • 85. BBB-Android and Mconf-Mobile We maintain both English and Portuguese (BR) languages ● It is automatically detected by the device ● Easy to translate to others
  • 87. BBB-Android + Web portal Join a meeting ● clicking on a hyperlink (in the device browser)
  • 88. BBB-Android + Web portal Join a meeting ● scanning a QR Code
  • 89. BBB-Android security model On BigBlueButton 0.71a: ● JSP application removes the need of the security salt (!) On BigBlueButton 0.8 (under development): ● JSP application requires a checksum with a unique security salt per server ● Salt must be small enough to be entered in the device, probably a 5-char string
  • 90. Mobile JSP application Supports the calls above: ● getMeetings ● createMeeting ● join
  • 91. 2. Architecture 3. Mobile Client: Activities
  • 92. 3. Transfer of technology
  • 93. 3. Transfer of technology 1. Development
  • 94. Development tools Google Code (http://code.google.com/p/mconf/) ● Wiki ● Issue tracker ● Downloads Github (https://github.com/mconf) ● Public source code repository ● 15 projects under the Mconf organization
  • 95. Developing Mconf-Mobile ● Eclipse + ADT Plugin ○ Emulator ○ Debugger ○ "Live debugging" on a device ● Android SDK ● Android NDK * All multiplatform tools
  • 96. Developing BigBlueButton ● Development virtual machine of BigBlueButton ● Eclipse ○ Remote System Explorer Plugin ○ AS Development Tools Plugin ● Adobe Flash Player - Debugger ● SSH + Apache Ant * All multiplatform tools
  • 97. 3. Transfer of technology 2. Deployment
  • 98. Deployment Mconf-Mobile is easy: you install it in your phone and that's it! But Mconf-Web and BigBlueButton require a server setup.
  • 99. Deployment Ideally, Mconf-Web will be in a standalone machine and manage several BigBlueButton instances. We can have several servers if needed
  • 100. Deployment: BigBlueButton The latest version is 0.71a (February 2011). Version 0.8 will be out soon. BigBlueButton runs on Ubuntu 10.04 (latest LTS version). You can also install it in other Linux distributions, but it's harder. There are guides to Debian and FreeBSD: http://code.google.com/p/bigbluebutton/wiki/InstallationBigBlueButtonDebian http://code.google.com/p/bigbluebutton/wiki/InstallingBigBlueButtonFreeBSD
  • 101. Deployment: BigBlueButton As an open source software, BigBlueButton can be installed from source. But this is the hardest way to do it. http://code.google.com/p/bigbluebutton/wiki/InstallingBigBlueButton There are also easier options: ● Using the Virtual Machine: you have the entire development and production environments. Great for development and testing, but not the best solution for deployment. ● Installing from packages: ○ Just three apt commands http://code.google.com/p/bigbluebutton/wiki/InstallationUbuntu
  • 102. Deployment: BigBlueButton BigBlueButton also has a very useful script called "bbb-conf" It can: ● Start/stop/restart the server ● Check for errors ● Change the IP or domain name http://code.google.com/p/bigbluebutton/wiki/BBBConf
  • 103. Deployment: BigBlueButton We have a script called mconf-bbb-conf that helps a developer to setup a BigBlueButton environment from the Mconf repository It includes: ● the source code ● the right configurations to use Speex Also it deploys the source code to be used in the development virtual machine Example: mconf-bbb-conf mconf.inf.ufrgs.br:80 https://github.com/mconf/installation-scripts
  • 104. Deployment: BigBlueButton Tipically you don't want to have the development environment installed in a production environment bbb-deploy is an Apache Ant script to deploy BigBlueButton from a development environment (most probably the development virtual machine) to a production server It does: ● deploy in one command and no interaction ● backup the old production version ● restore an old version https://github.com/mconf/installation-scripts/tree/master/bbb- deploy
  • 105. Deployment: Mconf-Web It's a Rails application and can be deployed as any other Rails application. We use it on Ubuntu (10.04 or newer). But it should work on any operating system that has support to Ruby on Rails (almost all of them have).
  • 106. Deployment: Mconf-Web To deploy a Rails application you need: ● The source code ● A web server ● An application server Rails application Passenger Apache
  • 107. Deployment: Mconf-Web How-to: ● Install Apache ● Install the Ruby environment ● Install Passenger ● Install the Apache-Passenger module ● Copy the application code to a configured path More information at: http://code.google.com/p/mconf/wiki/MconfWebDeploymentManual
  • 108. Deployment: Mconf-Web We have also a script called "mconf-web-conf" that can help the setup of a production server Example: mconf-web-conf --install-packages production mconf-web-conf --install-ruby mconf-web-conf --setup-prod Details at: http://code.google.com/p/mconf/wiki/MconfWebDeploymentWithScript
  • 109. Deployment: Mconf-Web Also... We use a library called Capistrano to help the deployment: Your development machine Not required, but recommended.
  • 110. Deployment: Mconf VM We've made a virtual machine with: ● Mconf-Web ● BigBlueButton + customizations ● Both enabled to be accessed by Mconf-Mobile It can be used to: ● Have a fast testing version of Mconf ● Have a pre-configured development environment More information at: http://code.google.com/p/mconf/wiki/MconfVM
  • 111. Deployment: Cloud Another possibility is to deploy Mconf in the cloud. BigBlueButton has already been used in the Amazon EC2 cloud. There's information about it in their wiki + mailing lists. Mconf-Web can also be deployed in infrastructure clouds like Amazon's, but we have not tested yet. Also, Mconf-Web can be deployed in application clouds, such as Heroku (http://www.heroku.com/)
  • 112. Deployment: Security HTTPS for Mconf-Web ● Not hard to implement ● Requires configuration in the web server ● Requires some development on Mconf-Mobile RTMPS for BigBlueButton ● There's people talking about it in the mailing lists ● It seems possible, but we don't know how hard it is
  • 113. Deployment: Scalability One BigBlueButton server supports around 80 voice users and 20 webcams* * This is the result of the lastest stress test and is very dependent on the machine where BigBlueButton is installed (Xeon 3450 quad core 2.66 Ghz with hyperthreading).
  • 114. Deployment: Scalability How to improve it: ● Use several servers in a cluster ○ The easier solution but not the best ○ Individual rooms will still be limited to the capacity of 1 server ● Use several audio servers ○ BBB uses FreeSWITCH for voice, that can be scaled ● Use several video servers ○ It requires allowing several Red5 instances to run in parallel
  • 116. Feedbacks and statistics Mconf @ Google Code (wiki + issues) Visitors
  • 117. Feedbacks and statistics Mconf @ Google Code (wiki + issues)
  • 118. Feedbacks and statistics mconf.inf.ufrgs.br Current statistics: ● 138 users ● 49 spaces ● ~1200 visits
  • 119. Feedbacks and statistics BBB-Android in numbers Version 0.2 ● Released on May 6th ● 162 downloads Version 0.3beta (used on WRNP 2011) ● Released on May 28th ● 351 downloads Version 0.4 ● Released on August 25th Version 0.5 ● Will be released on Android Market soon
  • 120. Feedbacks and statistics BigBlueButton ● +3 years of development ● Community with ~900 members, ~11k messages ● Increasing worldwide interest in the software Interest in BBB during the last Terena's TF-Media meeting
  • 121. BigBlueButton Developer Summit The Mconf Team was invited to give a presentation about the Mconf-Mobile project in an online developer summit on August 28th http://bigbluebutton.eventbrite.com/
  • 122. Feedbacks and statistics We also had some good feedbacks from the BigBlueButton developers, including: ● Messages in the mailing lists ● Blog posts ● References in presentations
  • 123. 5. GT-Mconf in the future + Debate
  • 124. Future - 2nd year proposal 1. Escalabilidade / Monitoramento 2. Integração com padrões de videoconferência 3. Suporte a iPhone OS 4. Melhorias no núcleo do BBB 5. Melhorias no aplicativo Android 6. Melhorias no Portal WEB 7. Status de usuário
  • 125. Thank you Time to debate... GT-Mconf Transfer of technology course Authors: Felipe Cecagno Leonardo Crauss Daronco Valter Roesler
  • 126.  
  • 127.  
  • 128. Some technical info about BigBlueButton Video stream flow (end-to-end) ● Video capture (Flash plugin) ● Video publishing - RTMP over TCP to the video server (Flash plugin) ● Stream forward (Red5 server) ● Video receiving (Flash plugin) ● Video playback (Flash plugin)
  • 129. Some technical info about BigBlueButton Audio stream flow (end-to-end) ● Audio capture (red5phone) ● Audio publishing - RTMP over TCP to the video server (red5phone) ● Audio forward from Red5 to FreeSWITCH (or Asterisk) ● Audio forward from FreeSWITCH (or Asterisk) to Red5 ● Audio receiving (red5phone) ● Audio playback (red5phone)