Skip to content

Mconf Live API

Leonardo Crauss Daronco edited this page Nov 12, 2015 · 10 revisions

Mconf-Live is a software based on BigBlueButton, which makes its API very similar to (and compatible with) BigBlueButton's API. The current version of the API is built on top of the API of BigBlueButton 0.9, therefore it supports everything from this version of BigBlueButton. You can find more about BigBlueButton's API in this page.

However, there are a few changes made on Mconf-Live's API over BigBlueButton's API. These changes are described below.

create

What changed: Parameters were added to the response.

Response:

Change Param Name When Returned Type Description
Added voiceBridge (within <meeting>) Always Number The voice bridge configured when the meeting was created (param voiceBridge).
Added dialNumber (within <meeting>) Always String The dial number configured when the meeting was created (param dialNumber).

Example Response:

<response>
  <returncode>SUCCESS</returncode>
  <meetingID>Demo Meeting</meetingID>
  <attendeePW>ap</attendeePW>
  <moderatorPW>mp</moderatorPW>
  <createTime>1411067830029</createTime>
  <voiceBridge>74518</voiceBridge> <!-- Added -->
  <dialNumber>613-555-1234</dialNumber> <!-- Added -->
  <createDate>Thu Sep 18 19:17:10 UTC 2014</createDate>
  <hasUserJoined>true</hasUserJoined>
  <duration>0</duration>
  <hasBeenForciblyEnded>false</hasBeenForciblyEnded>
  <messageKey/>
  <message/>
</response>

getMeetings

What changed: Parameters were added to the response.

Response:

Change Param Name When Returned Type Description
Added voiceBridge (within <meeting>) Always Number The voice bridge configured when the meeting was created (param voiceBridge).
Added dialNumber (within <meeting>) Always String The dial number configured when the meeting was created (param dialNumber).
Added participantCount (within <meeting>) Always Number Number of participants in a meeting. It's the same participantCount returned in getMeetingInfo.
Added listenerCount (within <meeting>) Always Number Number of participants listening to a meeting (using the listen only mode). It's the same listenerCount returned in getMeetingInfo.
Added voiceParticipantCount (within <meeting>) Always Number Number of participants in the audio conference of a meeting. It's the same voiceParticipantCount returned in getMeetingInfo.
Added videoCount (within <meeting>) Always Number Number of participants sharing video in a meeting.

Example Response:

<response>
  <returncode>SUCCESS</returncode>
  <meetings>
    <meeting>
      <meetingID>Demo Meeting</meetingID>
      <meetingName>Demo Meeting</meetingName>
      <createTime>1411067830029</createTime>
      <createDate>Thu Sep 18 19:17:10 UTC 2014</createDate>
      <voiceBridge>74518</voiceBridge> <!-- Added -->
      <dialNumber>613-555-1234</dialNumber> <!-- Added -->
      <attendeePW>ap</attendeePW>
      <moderatorPW>mp</moderatorPW>
      <hasBeenForciblyEnded>false</hasBeenForciblyEnded>
      <running>true</running>
      <participantCount>2</participantCount> <!-- Added -->
      <listenerCount>1</listenerCount> <!-- Added -->
      <voiceParticipantCount>1</voiceParticipantCount> <!-- Added -->
      <videoCount>1</videoCount> <!-- Added -->
      <duration>0</duration>
      <hasUserJoined>true</hasUserJoined>
    </meeting>
  </meetings>
</response>

getMeetingInfo

What changed: Parameters were added to the response.

Response:

Change Param Name When Returned Type Description
Added internalMeetingID Always String The internal identifier of this meeting. Can be used to access a video stream directly from Red5, for example.
Added listenerCount Always Number Number of participants listening to a meeting (using the listen only mode). It's the same listenerCount returned in getMeetings.
Added voiceParticipantCount Always Number Number of participants in the audio conference of a meeting. It's the same voiceParticipantCount returned in getMeetings.
Added isPresenter (within <attendee>) Always Boolean True if the attendee is the current presenter. There can only be one presenter at a time in a meeting.
Added isListeningOnly (within <attendee>) Always Boolean True if the attendee is listening to the voice conference using the listen only mode.
Added hasJoinedVoice (within <attendee>) Always Boolean True if the attendee has joined to the audio conference and shares audio with other attendees.
Added videoStreams (within <attendee>) Always Group Has child elements if the attendee is sharing a webcam.
Added streamName (within <videoStreams>) Always String Stream name being shared by an attendee. One attendee can share one or more video streams.

Example Response:

<response>
  <returncode>SUCCESS</returncode>
  <meetingName>Demo Meeting</meetingName>
  <meetingID>Demo Meeting</meetingID>
  <internalMeetingID> <!-- Added -->
    183f0bf3a0982a127bdb8161e0c44eb696b3e75c-1411067830029
  </internalMeetingID>
  <createTime>1411067830029</createTime>
  <createDate>Thu Sep 18 19:17:10 UTC 2014</createDate>
  <voiceBridge>74518</voiceBridge>
  <dialNumber>613-555-1234</dialNumber>
  <attendeePW>ap</attendeePW>
  <moderatorPW>mp</moderatorPW>
  <running>true</running>
  <duration>0</duration>
  <hasUserJoined>true</hasUserJoined>
  <recording>false</recording>
  <hasBeenForciblyEnded>false</hasBeenForciblyEnded>
  <startTime>1411067830152</startTime>
  <endTime>0</endTime>
  <participantCount>2</participantCount>
  <listenerCount>1</listenerCount> <!-- Added -->
  <voiceParticipantCount>1</voiceParticipantCount> <!-- Added -->
  <maxUsers>20</maxUsers>
  <moderatorCount>1</moderatorCount>
  <attendees>
    <attendee>
      <userID>r4osda8xzlsg</userID>
      <fullName>stu</fullName>
      <role>VIEWER</role>
      <isPresenter>false</isPresenter> <!-- Added -->
      <isListeningOnly>false</isListeningOnly> <!-- Added -->
      <hasJoinedVoice>true</hasJoinedVoice> <!-- Added -->
      <videoStreams> <!-- Added -->
        <streamName>320x240-r4osda8xzlsg-1411067854724</streamName>
      </videoStreams>
      <customdata/>
    </attendee>
    <attendee>
      <userID>jgkgwilgigcf</userID>
      <fullName>mod</fullName>
      <role>MODERATOR</role>
      <isPresenter>true</isPresenter> <!-- Added -->
      <isListeningOnly>true</isListeningOnly> <!-- Added -->
      <hasJoinedVoice>false</hasJoinedVoice> <!-- Added -->
      <videoStreams/> <!-- Added -->
      <customdata/>
    </attendee>
  </attendees>
  <metadata/>
  <messageKey/>
  <message/>
</response>

join

What changed: Parameters were added to the API call.

Parameters:

Change Param Name When Returned Type Description
Added guest Optional Boolean If guest is "true" (case insensitive), the user will have to wait until the moderator (any moderator of the meeting) approves or rejects her participation. If omitted, the user won't be a guest (default behavior). The roles defined by password are not affected: a guest could be a moderator or a viewer - the role will take place after the meeting moderator approves her participation.

Example Requests:

http://yourserver.com/bigbluebutton/api/join?meetingID=test01&password=mp&fullName=John&guest=true&checksum=1234

getRecordings

What changed: Parameters were added to the API call.

Parameters:

Change Param Name When Returned Type Description
Added meta Optional String You can pass one or more metadata values to filter the recordings returned. If multiple metadata values are passed, will only return recordings that match all of them. The format of these parameters is the same as the metadata passed to the create call. For more information see this page

Example Requests:

http://yourserver.com/bigbluebutton/api/getRecordings?meta_presenter=joe&meta_category=education&checksum=1234

getStats

What changed: New API call that returns basic stats about the meetings held in the server.

Parameters:

Param Name Required / Optional Type Description
meetingID Optional String A meeting ID for get the stats. It can be a set of meetingIDs separate by commas. If the meeting ID is not specified, it will get all the stored stats. The semantics for this parameters is the same as in the getRecordings call (see this page).

Example Requests:

http://yourserver.com/bigbluebutton/api/getStats?checksum=1234
http://yourserver.com/bigbluebutton/api/getStats?meetingID=Meeting1&checksum=1234
http://yourserver.com/bigbluebutton/api/getStats?meetingID=Meeting1,Meeting2,Meeting3&checksum=1234

Example Response:

<response>
  <returncode>SUCCESS</returncode>
  <stats>
    <meeting>
      <meetingID>test01</meetingID>
      <meetingName>Test</meetingName>
      <recordID>183f0bf3a0982a127bdb8161e0c44eb696b3e75c-1337964901471</recordID>
      <startTime>1401206434944</startTime>
      <endTime>1401206455564</endTime>
      <participants>
        <participant>
          <userID>josy6efffm6e</userID>
          <userName>John Doe</userName>
          <joinTime>1401206434944</joinTime>
          <leftTime>1401206455459</leftTime>
        </participant>
        <participant>
          <userID>9wvp7mz15zpa</userID>
          <userName>Dexter Morgan</userName>
          <joinTime>1401206434944</joinTime>
          <leftTime>1401206455459</leftTime>
        </participant>
      </participants>
    </meeting>
  </stats>
</response>