Creating a Meeting

To create a meeting using the python-sage-bbb package, follow these steps:

  1. Import the necessary modules:

    from sage_bbb.services.client import BigBlueButtonClient
    
  2. Initialize the client:

    Initialize the client with your BigBlueButton server URL and security salt. Replace the placeholder values with your actual server URL and security salt.

    bbb_client = BigBlueButtonClient(
        "http://your-bbb-server.com/bigbluebutton/api/",
        "your-security-salt",
    )
    
  3. Check the connection:

    Before creating a meeting, you can check the connection to ensure everything is set up correctly.

    connection_status = bbb_client.check_connection()
    print(f"Connection Status: {connection_status}")
    
  4. Create a new meeting:

    Use the create_meeting method to create a new meeting. You can specify various parameters such as the meeting name, meeting ID, attendee and moderator passwords, and whether to enable recording.

    new_meeting = bbb_client.meetings.create_meeting(
        name="Test Meeting",
        meeting_id="random-9887584",
        attendee_pw="ap",
        moderator_pw="mp",
        record=True,  # Enable recording
        autoStartRecording=True,
        allowStartStopRecording=True
    )
    print(f"New Meeting: {new_meeting}")
    

This will create a new meeting on your BigBlueButton server. You can customize the meeting by passing additional parameters as described in the BigBlueButton API documentation.

Create Meeting Parameters

The following table lists the parameters you can use when creating a meeting:

Param Name

Type

Description

name (required)

String

A name for the meeting.

meetingID (required)

String

A meeting ID that can be used to identify this meeting by the 3rd-party application. Must be unique.

attendeePW

String

[DEPRECATED] The password for attendees.

moderatorPW

String

[DEPRECATED] The password for moderators.

welcome

String

A welcome message that gets displayed on the chat window when the participant joins.

dialNumber

String

The dial access number that participants can call in using regular phone.

voiceBridge

String

Voice conference number for the FreeSWITCH voice conference associated with this meeting.

maxParticipants

Number

The maximum number of users allowed to join the conference at the same time.

logoutURL

String

The URL that the BigBlueButton client will go to after users click the OK button on the ‘You have been logged out’ message.

record

Boolean

Setting ‘record=true’ instructs the BigBlueButton server to record the media and events in the session for later playback.

duration

Number

The maximum length (in minutes) for the meeting.

isBreakout

Boolean

Must be set to true to create a breakout room.

parentMeetingID

String

Must be provided when creating a breakout room.

sequence

Number

The sequence number of the breakout room.

freeJoin

Boolean

If set to true, the client will give the user the choice to choose the breakout rooms they want to join.

meta

String

Pass one or more metadata values when creating a meeting.

moderatorOnlyMessage

String

Display a message to all moderators in the public chat.

autoStartRecording

Boolean

Automatically start recording when the first user joins.

allowStartStopRecording

Boolean

Allow the user to start/stop recording.

webcamsOnlyForModerator

Boolean

Setting webcamsOnlyForModerator=true will cause all webcams shared by viewers to only appear for moderators.

bannerText

String

Set the banner text in the client.

bannerColor

String

Set the banner background color in the client.

muteOnStart

Boolean

Setting true will mute all users when the meeting starts.

allowModsToUnmuteUsers

Boolean

Allow moderators to unmute other users in the meeting.

lockSettingsDisableCam

Boolean

Prevent users from sharing their camera in the meeting.

lockSettingsDisableMic

Boolean

Only allow users to join in listen-only mode.

lockSettingsDisablePrivateChat

Boolean

Disable private chats in the meeting.

lockSettingsDisablePublicChat

Boolean

Disable public chat in the meeting.

lockSettingsDisableNotes

Boolean

Disable notes in the meeting.

lockSettingsHideUserList

Boolean

Prevent viewers from seeing other viewers in the user list.

lockSettingsLockOnJoin

Boolean

Apply lock settings to users when they join.

lockSettingsHideViewersCursor

Boolean

Prevent viewers from seeing other viewers’ cursor when multi-user whiteboard is on.

guestPolicy

Enum

Set the guest policy for the meeting.

endWhenNoModerator

Boolean

Automatically end the meeting when no moderators are present.

meetingLayout

Enum

Set the default layout for the meeting.

learningDashboardEnabled

Boolean

Enable the Learning Dashboard for the meeting.

allowModsToEjectCameras

Boolean

Allow moderators to close other users’ cameras.

allowRequestsWithoutSession

Boolean

Allow users to join meetings without session cookie validation.

virtualBackgroundsDisabled

Boolean

Disable virtual backgrounds for all users in the meeting.

userCameraCap

Number

Defines the max number of webcams a single user can share simultaneously.

meetingCameraCap

Number

Defines the max number of webcams a meeting can have simultaneously.

meetingExpireIfNoUserJoinedInMinutes

Number

Automatically end meeting if no user joins within a specified period after meeting creation.

meetingExpireWhenLastUserLeftInMinutes

Number

Automatically end meeting a specified number of minutes after the last user leaves.

groups

String

Pre-defined groups to automatically assign students to breakout rooms.

logo

String

URL to an image displayed above the participants list.

disabledFeatures

String

Comma-separated list of features to disable in a meeting.

disabledFeaturesExclude

String

Comma-separated list of features to exclude from being disabled.

preUploadedPresentationOverrideDefault

Boolean

Whether to override the default presentation with a pre-uploaded presentation.

notifyRecordingIsOn

Boolean

Display a modal to collect recording consent from users when recording starts.

presentationUploadExternalUrl

String

URL to an external application for uploading presentation files.

presentationUploadExternalDescription

String

Description of how to use an external application to upload presentation files.

recordFullDurationMedia

Boolean

Capture media for the full duration of the meeting if recording is enabled.

preUploadedPresentation

String

URL to a pre-uploaded presentation file.

preUploadedPresentationName

String

Name of the pre-uploaded presentation.

allowPromoteGuestToModerator

Boolean

Allow moderators to promote guests to moderators.

For more details on the create API call, refer to the BigBlueButton API documentation.