Uploaded image for project: 'OpenOLAT'
  1. OpenOLAT
  2. OO-4818

BigBlueButton Recording Handler Infrastructure

    XMLWordPrintable

    Details

      Description

      The current handling of BBB recordings is refactored to a BBBNativeRecordingHandler that is based on a new interface to support different ways of dealing with recordings: 

       

      • Interface Definition for the BBBRecordingHandler Interface
        • Method to query for available recordings of a specific meeting
        • Method to launch the playback of a recording (e.g. link, button, controller )
        • Method to delete a recording permanently (if possible)
        • Method to add BBB meeting metatdata that is optimized for the later recording generation process
      • Implement the BBBNativeRecordingHandlers as the default implementation
        • Query for available recordings via BBB recording API
        • Launch playback via BBB recording URL
        • Delete recording via BBB delete API
        • Map available metadata as DC metadata

       

       

      Example code for metadata (prototype)

      // Title of the episode
      uriBuilder.optionalParameter("meta_dc-title", meeting.getName());			
      // Media package and event identifier
      uriBuilder.optionalParameter("meta_dc-identifier", meeting.getMeetingId());			
      
      
      // Series identifier of which the event is part of
      RepositoryEntry re = meeting.getEntry();
      BusinessGroup bg = meeting.getBusinessGroup();
      String context = "";
      if (re != null) {
      	context = "RepositoryEntry::" + re.getKey();			
      } else if (bg != null){
      	context = "BusinessGroup::" + bg.getKey();
      }
      String subIdent= meeting.getSubIdent();
      if (StringHelper.containsNonWhitespace(subIdent)) {
      	context += "::" + subIdent.trim();
      }
      uriBuilder.optionalParameter("meta_dc-isPartOf", context);						
      
      
      // The primary language
      if (re != null && StringHelper.containsNonWhitespace(re.getMainLanguage())) {
      	uriBuilder.optionalParameter("meta_dc-language", re.getMainLanguage().trim());			
      }
      // Description of the event
      if (StringHelper.containsNonWhitespace(meeting.getDescription())) {
      	uriBuilder.optionalParameter("meta_dc-description", re.getDescription());						
      }
      // Location of the event
      uriBuilder.optionalParameter("meta_dc-spatial", "OpenOlat-BigBlueButton");
      // Date of the event
      Date meetingCreation =  (meeting.getStartDate() != null ? meeting.getStartDate() : meeting.getCreationDate());
      uriBuilder.optionalParameter("meta_dc-created", Formatter.formatDatetime(meetingCreation));											
      
      

        Attachments

          Activity

            People

            Assignee:
            srosse Stéphane Rossé
            Reporter:
            gnaegi Florian Gnägi
            Tester:
            Mandy Menzel
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 1 day
                1d