bigbluebutton

BigBlueButton change branding dynamically on different conference without changing files every time


I have BigBlueButton hosted on one server, I need to organize multiple conferences, But I need different brandings like a logo and background color to change with every single conference, So is there any approach to do this thing with BigBlueButton?


Solution

  • You can change the background color dynamically by adding a query parameter (userdata-customStyle) in join meeting request url. You can see more parameters in the given link userdata parameters. I'm using greenlight, so I'm sharing a block of code which dynamically set the background color and add it to the query parameter of 'join meeting URL', I think this will help you.

    def join_path(room, name, options = {}, uid = nil)
        # Create the meeting, even if it's running
        start_session(room, options)
        
        # Determine the password to use when joining.
        password = options[:user_is_moderator] ? room.moderator_pw : room.attendee_pw
    
        # Generate the join URL.
        join_opts = {}
        join_opts[:userID] = uid if uid
        join_opts[:join_via_html5] = true
        join_opts[:guest] = true if options[:require_moderator_approval] && !options[:user_is_moderator]
        print "------------------------- Background color----------------------------- \n"
        if room.background_color
          bg_color = "body { background-color: "+ room.background_color.to_s
          bg_color += "!important;}"
        else
          "body { background-color: #06172A !important;}"
        end
        print bg_color
    
        join_opts[:"userdata-customStyle"] = bg_color
        
        bbb_server.join_meeting_url(room.bbb_id, name, password, join_opts)
    end