Adding an XML API to BBB for interaction with outside scheduling application

31 views
Skip to first unread message

Jeremy Thomerson

unread,
Sep 10, 2009, 1:34:58 AM9/10/09
to bigblueb...@googlegroups.com
Hello devs,

  I have an existing web application for conferencing that handles all of the scheduling, starting and joining meetings, and the business logic behind all of that.  Earlier this year we added web conferencing to it, using DimDim.  However, we are investigating switching to BigBlueButton instead.

  In our application, when we want to start or join a meeting, we pass the pertinent information to DimDim and it passes us back information that we can use to create a URL to join the meeting.  I could not find any similar functionality in BBB - it seemed that to enter a meeting, you were required to use the bbb-web forms for signing in, etc.

  So, I created a prototype of an XML API that allows you to create a meeting or look up the session token for a meeting (for the host and attendees respectively).  It also provides a simple signin action that allows an application to redirect their user to this action, which will use the query params and set up the session variables.  Then it redirects them into bbb via client.html, just like bbb-web does.

  Please look at the attached patches to see what I am talking about and provide feedback.  This is my first experience with Groovy, having mostly written apps in Java.  And of course I'm brand new to BBB.  So, there could definitely be some cleanup.  And there will need to be more security / error checking added.  But, as a proof of concept, it works, and in one day of coding, writing this and modifying my application, I was able to swap out DimDim with BBB.

Looking forward to your thoughts on this.

Jeremy Thomerson

PS - the bbb-client patch was necessary because the client never pulled the join xml from conference-session/enter - like it does on demo.bigbluebutton.org.  It was pulling the mock XML file.  This seems like a bug that should be committed regardless of what you think of the bbb-web patch.
bbb-web-portal.patch
bbb-client-portal.patch

ko

unread,
Sep 17, 2009, 8:26:12 AM9/17/09
to BigBlueButton-dev
Hello Jeremy,

I am totally new to BBB but need to evaluate an integration into an
existing website. I'd like to know how to make use of your patch. For
instance, if I want to create a meeting, can I code a little piece of
HTML that POSTs all the needed parameters to a BBB installation
running your patch? If so, how should the piece of HTML look like?

Thanks in advance and thanks for your patch!

Richard Alam

unread,
Sep 17, 2009, 12:18:56 PM9/17/09
to bigblueb...@googlegroups.com
Hi,

We are integrating Jeremy's patch into the codebase.

Also, we are starting on creating proper APIs. One I'm working on is
creating dynamic conference which is what you and Jeremy probably
wanted.

Here is what I have in mind:

1. User 1 sends a request to BBB-WEB to create a conference (e.g. 85115)
2. BBB-WEB returns tokens (moderator and viewer) to User 1
3. User 2 sends a join request to BBB-WEB passing in one of the tokens
in step 2 and his/her name
4. BBB-WEB builds a session for User 2 then gets redirected to
client/BigBlueButton.html
5. The BBB-CLIENT then send a request to BBB-WEB to "enter" the conference
6. BBB-WEB send back an xml with the relevant information to enter the
conference

Let us know what you think and ask if it needs more clarification.
Hard to explain things in writing :)

Let us also know what API's you need with an example use case so we
can incorporate it.

Richard
--
---
BigBlueButton
http://www.bigbluebutton.org
http://code.google.com/p/bigbluebutton

Jeremy Thomerson

unread,
Sep 22, 2009, 6:57:09 PM9/22/09
to bigblueb...@googlegroups.com
Is there any reason that we can't apply the client patch so that the default is not join-mock.xml?  I am constantly having to manually edit that when running in my dev environment because it reads from the source directory rather than /var/www/bigbluebutton

Jeremy

Richard Alam

unread,
Sep 22, 2009, 9:37:22 PM9/22/09
to bigblueb...@googlegroups.com
Having join-mock.xml by default makes it easier to do the client
development as it bypasses login. We can just launch the browser from
FlexBuilder and logs in automatically.

We can certainly change it to the proper value but those who want to
launch the client from FB will have to edit config.xml to put in the
join-mock.xml. And if they are not careful when checking in, then we
are back to this problem :)

Let me think of a better way. Or if others have an idea, please let us know.

Thanks.

Richard

Jeremy Thomerson

unread,
Sep 22, 2009, 10:28:35 PM9/22/09
to bigblueb...@googlegroups.com
Ah - I figured there was a reason similar to that.  We'll figure out a better way at some point - no rush.

JT

Jeremy Thomerson

unread,
Sep 23, 2009, 1:27:32 AM9/23/09
to bigblueb...@googlegroups.com
Konrad (and anyone else interested in integrating BBB with a third party application),

  That patch was a simple proof of concept that really isn't that great.  However, we have started development on a real API that will support third party applications.  I am hoping to have a working version committed into my development branch by the end of the week.

  I created a draft spec for the API.  Please review it and let me know if you feel like it would meet all of your integration needs.  The earlier we can discuss changes to it and get them into the spec, the easier it will be since I hope to have the first version ready this week, and I will be integrating it into my own production app at the same time.

The spec can be viewed here: http://bigbluebutton.googlecode.com/files/bbb-xml-api.pdf
I will upload changes to the spec as they are made.  That spec will also become the documentation for integrating with the API in the future.

Thank you,
Jeremy Thomerson
Reply all
Reply to author
Forward
0 new messages