Professional Documents
Culture Documents
BBB XML Api
BBB XML Api
BBB XML Api
Table of Contents
Overview...........................................................................................................................1 Overall API Usage...............................................................................................................2 Create meeting (with your own meeting ID) e am!le".........................................................2 Create meeting (with no meeting ID) e am!le"..................................................................2 #oin meeting e am!le"....................................................................................................2 Is meeting running e am!le"............................................................................................2 API $ecurity %o&el..............................................................................................................' Con(iguration..................................................................................................................' Usage............................................................................................................................' )rror han&ling................................................................................................................* Desire& +uture +eatures.......................................................................................................* $u!!ort (or #$O, - #$O,P................................................................................................* %eeting event call.ac/s...................................................................................................0 API Calls............................................................................................................................0 $tan&ar& !arameters an& res!onses..................................................................................0 Parameters"...........................................................................................................0 1es!onse"..............................................................................................................2 %eeting wor/(low calls.....................................................................................................2 Create meeting (create)...............................................................................................2 Parameters"...........................................................................................................3 1es!onse"..............................................................................................................4 #oin meeting (5oin)......................................................................................................6 Parameters"...........................................................................................................6 1es!onse"..............................................................................................................6 Bac/7o((ice a&ministration calls.........................................................................................6 Is meeting running (is%eeting1unning)........................................................................18 Parameters"..........................................................................................................18 1es!onse"............................................................................................................18 )n& %eeting (en&%eeting)..........................................................................................18 Parameters"..........................................................................................................18 1es!onse"............................................................................................................11 9ist %eeting Atten&ees (listAtten&ees).........................................................................11 :et %eeting In(o (get%eetingIn(o)...............................................................................11
Overview
;his &ocument outlines the API that is availa.le (or integrating BigBlueButton with other a!!lications. It is currently in &ra(t stage as not all (eatures are availa.le. +eatures which are not currently im!lemente& will .e clearly mar/e& as such.
Page 1 of 11
09/21/09 04:59:03 PM
Page 2 of 11
09/21/09 04:59:03 PM
%ore &etails on these calls can .e (oun& in the FAPI CallsG section .elow.
Configuration
TODO: the securitySalt is currently set on the ApiController and needs to be able to be configured via bigbluebutton.properties (or similar) !"O#TA$T: DO $OT A%%O& '$D (S'#S TO )$O& *O(# S'C(# T* SA%T O# '%S' *O(# S'C(# T* & %% +' CO!"#O! S'D.
Usage
;he im!lementation o( this security mo&el lies in A!iController.groovy. It entails creating a chec/sum out o( the com.ination o( the entire =;;P >uery string an& a server7con(igure& security to/en. ;o use the security mo&el< you must .e a.le to create an $=A71 chec/sum out o( the >uery string plus the security salt that you con(igure& on your server. ;o &o so< (ollow these ste!s" 1. Create the entire >uery string (or your API call w thout the chec/sum !arameter. (e am!le (or create meeting API call" nameA;estB%eetingCmeetingIDAa.c12'Catten&eePDA111222Cmo&eratorPDA'''** *) 2. A!!en& the security salt to your string e am!le (or a.ove >uery string" security salt is 2'6206&*76&&47*.207.(81760(6023ea(*. $tring .ecomes"
Author: Jeremy Thomerson Page 3 of 11 09/21/09 04:59:03 PM
I( you con(igure& a security salt on your server< you MUST sen& this chec/sum with EVERY API call. $ince en& users &o not /now your security salt< they can not (a/e calls to the server< an& they can not mo&i(y your calls H since changing a single !arameter name or value .y only one character will com!letely change the chec/sum re>uire& to vali&ate the call. Im!lementations o( the $=A71 (unctionality e ist in nearly all !rogramming languages. =ere are e am!le metho&s or lin/s to e am!le im!lementations (or various languages" #ava$cri!t (&escri.es %D0 also)" htt!"--!a5home.org.u/-cry!t-m&0#ava" htt!"--commons.a!ache.org-co&ec Eou can use org.apache.commons.codec.digest.DigestUtils an& call DigestUtils.shaHex(string + salt)
Error handling
Any invali& API calls shoul& return a !ro!erly (ormatte& &ocument that contains enough in(ormation (or the user to .e a.le to &etermine what the error is. It woul& .e goo& i( this returne& a reasona.le error message as well as a &istinct error /ey (or each ty!e o( error so that en& users coul& internationaliIe their a!!lications an& !rovi&e custom messages .ase& only on the /ey that we return. i.e. 7 an invali& re>uest may return an error message o( F,o con(erence e ists with that to/en IDG .ut the error /ey returne& is sim!ly Finvali&;o/enIDG.
! JSO "
It woul& .e very nice to o!tionally allow #$O, res!onses< an& to su!!ort #$O,P. ;his might allow (or sim!ler integrations< even within static or almost7static we.!ages using #ava$cri!t as the !rimary integration language. It shoul& not .e assume& that all users will .e running custom so(tware on a server an& .e a.le to !rocess ?%9 res!onses< etc. ;his .eing sai&< even within #ava$cri!t there are sim!le ways to ma/e the API call an&
Page 4 of 11
09/21/09 04:59:03 PM
De are alrea&y announcing events such as this within BBB through Active%J to communicate .etween the 1e&0 a!!s where these events originate an& the API. It woul& !ro.a.ly not .e very &i((icult to register a&&itional listeners through the $!ring Integration con(iguration that will ma/e these =;;P calls (or us (or each event.
API Calls
Standard parameters and responses
;he (ollowing res!onse !arameters are stan&ar& to every call an& may .e returne& (rom any call.
Parameters
"aram $ame chec/sum #e,uired Optional Karies Type $tring Description $ee the F$ecurityG section (or more &etails on the usage (or this !arameter. ;his is .asically an $=A71 hash o( >uery$tring B security$alt. ;he security salt will .e con(igure& into the a!!lication at &e!loy time. I( a security salt is !resent< all calls to the API must inclu&e the chec/sum !arameter.
Page 5 of 11
09/21/09 04:59:03 PM
message
$ometimes
$tring
messageLey
$ometimes
$tring
Page ) of 11
09/21/09 04:59:03 PM
atten&eePD
O!tional
$tring
mo&eratorPD
O!tional
$tring
ma Partici!ants
O!tional MM
,um.er
Page * of 11
09/21/09 04:59:03 PM
!es"onse
"aram $ame meeting;o/en &hen #eturned Always Type $tring Description ;he internal meeting to/en assigne& .y the API (or this meeting. It can .e use& .y su.se>uent calls (or 5oining or otherwise mo&i(ying a meetingPs status. ;he meeting ID su!!lie& .y the thir& !arty a!!< or null i( none was su!!lie&. I( can .e use& in con5unction with a !asswor& in su.se>uent calls (or 5oining or otherwise mo&i(ying a meetingPs status. ;he !asswor& that will .e re>uire& (or atten&ees to 5oin the meeting. I( you &i& not su!!ly one< BBB will assign a ran&om !asswor&. ;he !asswor& that will .e re>uire& (or mo&erators to 5oin the meeting or (or certain a&ministrative actions (i.e. en&ing a meeting). I( you &i& not su!!ly one< BBB will assign a ran&om !asswor&.
meetingID
$ometimes
$tring
atten&eePD
Always
$tring
mo&eratorPD
Always
$tring
Page + of 11
09/21/09 04:59:03 PM
meetingID
O!tional
$tring
!asswor&
O!tional
$tring
re&irectImme&ia tely
O!tional
Boolean
!es"onse
"aram $ame entryU19 &hen #eturned Always Type $tring ;he 5oin will into Description U19 that the user can .e sent to in or&er to the meeting. Dhen they go to this U19< BBB setu! their client session an& re&irect them the con(erence.
Page 9 of 11
09/21/09 04:59:03 PM
Parameters
"aram $ame meeting;o/en meetingID #e,uired Optional O!tional O!tional Type $tring $tring Description ;he internal meeting to/en assigne& .y the API (or this meeting when it was create&. I( you s!eci(ie& a meeting ID when calling create< then you can use e ther the generate& meeting to/en or your s!eci(ie& meeting ID to (in& meetings. ;his !arameter ta/es your meeting ID.
!es"onse
"aram $ame running &hen #eturned Always Type $tring Description A string o( either FtrueG or F(alseG that signals whether a meeting with this ID or to/en is currently running.
Parameters
"aram $ame meeting;o/en #e,uired Optional O!tional Type $tring Description ;he internal meeting to/en assigne& .y the API (or this meeting when it was create&. ,ote that e ther the meeting;o/en or the meetingID along with one o( the !asswor&s must .e !asse& into this call in or&er to &etermine which meeting to (in&. I( you s!eci(ie& a meeting ID when calling create< then you can use e ther the generate& meeting to/en or your s!eci(ie& meeting ID to (in& meetings. ;his !arameter ta/es your meeting ID. ;he mo&erator !asswor& (or this meeting. Eou can not en& a meeting using the atten&ee !asswor&.
09/21/09 04:59:03 PM
meetingID
O!tional
$tring
!asswor&
1e>uire&
$tring
Page 10 of 11
Page 11 of 11
09/21/09 04:59:03 PM