Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-82872

Extend meeting_events with subplugins

XMLWordPrintable

    • MOODLE_405_STABLE
    • MOODLE_405_STABLE
    • Hide

      Requirements

      1. Moodle is visible from outside
      2. A BigBlueButton server is setup to enable analytics events:

      Setup

      1. Login as admin.
      2. Go to Site administration > Plugins > Manage activities and enable the BigBlueButton plugin.
      3. Go to BBB settings and configure the BigBlueButton server URL and BigBlueButton shared secret.
      4. Go to Site administration > Plugins > BigBlueButton > Experimental Settings and enable Register live sessions (bigbluebuttonbn_meetingevents_enabled)
      5. Go to Site administration > Development > and enable DEBUG_DEVELOPER.
      6. Install the subplugin https://github.com/jfederico/moodle-bbbext_b3dummy_broker_meeting_events and make sure it is enabled:

        git clone https://github.com/jfederico/moodle-bbbext_b3dummy_broker_meeting_events mod/bigbluebuttonbn/extension/b3dummy_broker_meeting_events

      7. Create a course and enrol a student
      8. Create a BigBlueButton activity in the course.

       

      Testing the extensions can implement meeting_events_addons

      1. Go to the course and access the BigBlueButton activity
      2. Join the meeting
      3. End the meeting for all
      4. Wait a little bit (for the events to be processed by the BBB server)
      5. Go to the Logs page for the BigBlueButton activity (More > Logs)
      6. Check no error is displayed and Meeting joined and Meeting left events are displayed
      7. Open the server error logs (for instance, for Apache in Ubuntu, use "tail -f /var/log/apache2/error.log")
      8. Check that in server error logs there is a JSON document with the summary of events sent by BBB using the analytics_callback_url. Something like:

        [bbbext_b3dummy_broker_meeting_events] process_action data: {"version":"1.0","meeting_id":"721afd392857f10a290801e972f0197c9be6ab9f-2-6[0]","internal_meeting_id":"fa0c581662c944a833a3a201d14d0afb8df3e738-1727348309095","custom":{},"data":{"metadata":{"bbb_context_label":"MDL-82872 BBB","bbb_origin_server_name":"a95b-93-176-135-223.ngrok-free.app","bbb_recording_description":"","analytics_callback_url":"https://a95b-93-176-135-223.ngrok-free.app/m/integration_main-tmp/mod/bigbluebuttonbn/bbb_broker.php?action=meeting_events&bigbluebuttonbn=6","bbb_origin":"Moodle","bbb_context_name":"MDL-82872 BBB","bbb_origin_server_common_name":"","bbb_recording_name":"BBB2","bbb_origin_version":"4.5dev+ (Build: 20240924)","meeting_name":"BBB2","bbb_recording_tags":"","bbb_context_id":"2","is_breakout":"false","meeting_id":"721afd392857f10a290801e972f0197c9be6ab9f-2-6[0]","bbb_origin_tag":"moodle-mod_bigbluebuttonbn (2024071900)","bbb_context":"MDL-82872 BBB"},"duration":31,"start":"2024-09-26T10:58:29.000+00:00","finish":"2024-09-26T10:59:00.000+00:00","attendees":[{"ext_user_id":"2","name":"Admin User","moderator":true,"userdata":{"bbb_preferred_camera_profile":"low","bbb_override_default_locale":"en"},"joins":["2024-09-26T10:58:34.000+00:00"],"leaves":["2024-09-26T10:59:00.000+00:00"],"duration":26,"recent_talking_time":"","engagement":{"chats":0,"talks":0,"raisehand":0,"emojis":0,"poll_votes":0,"talk_time":0,"webcam_time":0},"sessions":[{"joins":[{"timestamp":"2024-09-26T10:58:34.000+00:00","userid":"w_ykvhjqjn8n6p","ext_userid":"2","event":"join","remove":false}],"lefts":[]}]}],"files":["default.pdf"],"polls":[]}}

      Show
      Requirements Moodle is visible from outside A BigBlueButton server is setup to enable analytics events: To set up the BBB server, you can register at https://registration-portal.blindsidenetworks.com/ to obtain credentials. Setup Login as admin. Go to Site administration > Plugins > Manage activities and enable the BigBlueButton plugin. Go to BBB settings and configure the BigBlueButton server URL and BigBlueButton shared secret. Go to Site administration > Plugins > BigBlueButton > Experimental Settings and enable Register live sessions (bigbluebuttonbn_meetingevents_enabled) Go to Site administration > Development > and enable DEBUG_DEVELOPER. Install the subplugin https://github.com/jfederico/moodle-bbbext_b3dummy_broker_meeting_events and make sure it is enabled: git clone https: //github.com/jfederico/moodle-bbbext_b3dummy_broker_meeting_events mod/bigbluebuttonbn/extension/b3dummy_broker_meeting_events Create a course and enrol a student Create a BigBlueButton activity in the course.   Testing the extensions can implement meeting_events_addons Go to the course and access the BigBlueButton activity Join the meeting End the meeting for all Wait a little bit (for the events to be processed by the BBB server) Go to the Logs page for the BigBlueButton activity (More > Logs) Check no error is displayed and Meeting joined and Meeting left events are displayed Open the server error logs (for instance, for Apache in Ubuntu, use "tail -f /var/log/apache2/error.log") Check  that in server error logs there is a JSON document with the summary of events sent by BBB using the analytics_callback_url. Something like: [bbbext_b3dummy_broker_meeting_events] process_action data: { "version" : "1.0" , "meeting_id" : "721afd392857f10a290801e972f0197c9be6ab9f-2-6[0]" , "internal_meeting_id" : "fa0c581662c944a833a3a201d14d0afb8df3e738-1727348309095" , "custom" :{}, "data" :{ "metadata" :{ "bbb_context_label" : "MDL-82872 BBB" , "bbb_origin_server_name" : "a95b-93-176-135-223.ngrok-free.app" , "bbb_recording_description" : "" , "analytics_callback_url" : "https://a95b-93-176-135-223.ngrok-free.app/m/integration_main-tmp/mod/bigbluebuttonbn/bbb_broker.php?action=meeting_events&bigbluebuttonbn=6" , "bbb_origin" : "Moodle" , "bbb_context_name" : "MDL-82872 BBB" , "bbb_origin_server_common_name" : "" , "bbb_recording_name" : "BBB2" , "bbb_origin_version" : "4.5dev+ (Build: 20240924)" , "meeting_name" : "BBB2" , "bbb_recording_tags" : "" , "bbb_context_id" : "2" , "is_breakout" : "false" , "meeting_id" : "721afd392857f10a290801e972f0197c9be6ab9f-2-6[0]" , "bbb_origin_tag" : "moodle-mod_bigbluebuttonbn (2024071900)" , "bbb_context" : "MDL-82872 BBB" }, "duration" : 31 , "start" : "2024-09-26T10:58:29.000+00:00" , "finish" : "2024-09-26T10:59:00.000+00:00" , "attendees" :[{ "ext_user_id" : "2" , "name" : "Admin User" , "moderator" : true , "userdata" :{ "bbb_preferred_camera_profile" : "low" , "bbb_override_default_locale" : "en" }, "joins" :[ "2024-09-26T10:58:34.000+00:00" ], "leaves" :[ "2024-09-26T10:59:00.000+00:00" ], "duration" : 26 , "recent_talking_time" : "" , "engagement" :{ "chats" : 0 , "talks" : 0 , "raisehand" : 0 , "emojis" : 0 , "poll_votes" : 0 , "talk_time" : 0 , "webcam_time" : 0 }, "sessions" :[{ "joins" :[{ "timestamp" : "2024-09-26T10:58:34.000+00:00" , "userid" : "w_ykvhjqjn8n6p" , "ext_userid" : "2" , "event" : "join" , "remove" : false }], "lefts" :[]}]}], "files" :[ "default.pdf" ], "polls" :[]}}

      Problem:

      The BigBlueButton (BBB) Plugin in Moodle is currently equipped to receive and process analytics data via the meeting_events endpoint, which is triggered by the analytics_callback_url parameter in BBB. While this setup allows Moodle to capture data when a meeting concludes, the plugin's current design focuses primarily on processing data for completion tracking purposes. This narrow focus results in the incomplete processing and storage of the rich set of analytics data provided by BBB.

      Furthermore, the existing data storage format is optimized mainly for the internal use of the plugin, limiting its applicability for broader analytical purposes or integration with other systems.

      As BBB evolves, generating more comprehensive and traceable data, the current implementation of the plugin only leverages a fraction of this information, leaving significant potential untapped.

      Solution:

      To address these limitations, the proposal is to extend the BBB plugin's analytics_callback functionality through hooks. This would allow subplugins to access and process the full range of analytics data received, beyond just completion tracking. Subplugins could be developed to handle this data in various ways, such as generating detailed reports, forwarding data to external processors, or integrating with external data stores.

      This enhancement would unlock new possibilities for data utilization, making the rich analytics provided by BBB fully accessible and useful within Moodle and beyond.

       

      Proof of concept:

      The proof of concept was done with this dummy plugin https://github.com/jfederico/moodle-bbbext_b3dummy_broker_meeting_events

        1. bbb_notworking.gif
          bbb_notworking.gif
          1.73 MB
        2. image-2024-09-19-17-12-12-176.png
          image-2024-09-19-17-12-12-176.png
          58 kB
        3. MDL-82872_bbblogs_error.png
          MDL-82872_bbblogs_error.png
          175 kB
        4. MDL-82872_bigbluebuttonbn_db.png
          MDL-82872_bigbluebuttonbn_db.png
          46 kB
        5. MDL-82872_logstorestandardlog_db.png
          MDL-82872_logstorestandardlog_db.png
          111 kB
        6. MDL-82872.png
          MDL-82872.png
          444 kB

            jfederico Jesus Federico
            jfederico Jesus Federico
            Laurent David Laurent David
            Sara Arjona (@sarjona) Sara Arjona (@sarjona)
            Ron Carl Alfon Yu Ron Carl Alfon Yu
            Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated:
              Resolved:

                Estimated:
                Original Estimate - 0 minutes
                0m
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 2 weeks, 3 days, 3 hours, 19 minutes
                2w 3d 3h 19m

                  Error rendering 'clockify-timesheets-time-tracking-reports:timer-sidebar'. Please contact your Jira administrators.