Integrate big blue button with tutor instance?

Hi. I want to integrate Big Blue button with tutor instance of open edx. Can any one guide me how to do this?

Sure thing. You can configure BBB as an LTI tool.

See these documentations:
https://docs.bigbluebutton.org/2.2/lti.html
https://edx.readthedocs.io/projects/edx-partner-course-staff/en/latest/exercises_tools/lti_component.html#enabling-lti-components-for-a-course

Best of luck.

You may watch this video too

Hi. I have integrated Big Blue Button with tutor. But it is showing “Attendee” for all learners. How can I show student’s name?

In my setting updating lti-consumer did not solve the “attendee” problem and I edited lti.py using sudo nano /edx/app/edxapp/venvs/edxapp/lib/python3.5/site-packages/lti_consumer/lti.py for sending the parameters, see the following;

    if callable(self.xblock.runtime.get_real_user):
        real_user_object = self.xblock.runtime.get_real_user(self.xblock.runtime.anonymous_student_id)
        self.xblock.user_email = getattr(real_user_object, "email", "")
        self.xblock.user_username = getattr(real_user_object, "username", "")
        user_preferences = getattr(real_user_object, "preferences", None)
        user_full_name = "Attendee"
        try:
            user_full_name = real_user_object.profile.name
        except Exception as e :
            print("lti exception {}".format(str(e)))

        if user_preferences is not None:
            language_preference = user_preferences.filter(key='pref-lang')
            if len(language_preference) == 1:
                self.xblock.user_language = language_preference[0].value

    if self.xblock.ask_to_send_username and self.xblock.user_username:
        lti_parameters["lis_person_sourcedid"] = self.xblock.user_username
    if self.xblock.ask_to_send_email and self.xblock.user_email:
        lti_parameters["lis_person_contact_email_primary"] = self.xblock.user_email
    if self.xblock.user_language:
        lti_parameters["launch_presentation_locale"] = self.xblock.user_language
    if self.xblock.ask_to_send_username and self.xblock.user_username:
        lti_parameters["lis_person_name_full"] = user_full_name
1 Like

Thank you for reply. It worked.

Hi everybody,
i want to integrate bbb with tutur instance , should i install bbb on a server or just install bbb-lti module.
thank you in advance

Hi @d-demirci , I tried to implement your solution on the latest Tutor version wich uses edx Koa (which was not released at the time of your post). The file that you mention is a bit different now (it is called lti_xblock.py instead of lti.py) and the code changed a bit but not too much so your solution seemed easy to replicate. For example callable(self.xblock.runtime.get_real_user) is now callable(self.runtime.get_real_user). The problem is that your modifications create a bug on the platform and after investigating the logs, I found that what creates the problem is that
the condition if callable(self.runtime.get_real_user) is always false because self.runtime.get_real_user turns out to be None and so it is not callable: TypeError: 'NoneType' object is not callable. I am not an expert of the edX code so it is not clear to me why self.runtime.get_real_user is None, it is surprising. Do you have any explanation and/or ideas on how to overcome this issue?

Alternatively, I found that now additional parameters like lis_person_name_full can be passed to the LTI Tool using “processors” (according to the documentation: GitHub - edx/xblock-lti-consumer). There is even an XBlock that already implements useful processors (GitHub - appsembler/tahoe-lti: Tahoe LTI Customizations: Additional team and user fields.). But in my case the processors have absolutely no effect and I do not know why (I suspect it may be related to the first problem of my message, but I did not make any change to the default configuration of Tutor so I am surprised). See also my post on the forum: Use appsembler/tahoe-lti with Tutor

@sajid have you upgraded your Tutor platform to the latest version? Did you encounter the same problems as I did and if so did you manage to overcome them?