Skip to main content

Training Participation Report

Overview

This module allows the creation of a participation report based of interactive user feedback from participants.

The precondition is that the room creator is considered to be the trainer of the course for which the participation is logged.

A participation report session can be enabled by a participant logged in as the room owner, and will start as soon as at least one other participant is present who is not the room owner. After a random amount of time within a predefined range, the initial checkpoint delay, the first checkpoint is passed, and a confirmation dialog is shown to all other participants. As soon as they press the Confirm button, an entry of their presence is added to the log for that checkpoint.

Repeatedly after another random amount of time within a predefined range, the checkpoint interval, further checkpoints are passed, again bringing up the confirmation dialog and storing log entries for each confirmation received from the participants.

As soon as either no more room owner is present, no more other participant is present, or the room owner sends the disable presence logging command, a report is generated and stored as a file asset for the event.

State diagram

Signaling protocol namespace

Namespace for the signaling module: training_participation_report.

Joining the room

JoinSuccess

When joining a room, the join_success control event contains the module-specific fields described below.

Fields

FieldTypeAlwaysDescription
stateParticipationLoggingStateyesCurrent state of the participation logging procedure
ParticipationLoggingState
  • disabled: No participation logging is active, nothing to do for a client.
  • enabled: Participation logging is enabled, either waiting for the initial timeout or the participant already confirmed the last checkpoint. A client should notify the participant about this state.
  • waiting_for_confirmation: Participation logging is enabled, a checkpoint has already been passed and the newly joined participant can immediately confirm their presence.

Joined

When joining a room, the joined control event sent to all other participants does not contain module-specific data.

Commands

EnablePresenceLogging

The EnablePresenceLogging action can be sent by the room creator to enable the presence logging. Presence logging will start immediately if at least one other participant is already in the meeting. If no other participant is present yet, presence logging will start as soon as the first other participant joins.

Fields

FieldTypeRequiredDescription
actionenumyesMust be "enable_presence_logging"
initial_checkpoint_delayTimeRangenoThe range for the number of minutes before the initial checkpoint is triggered (default: { "after": 600, "within": 1200 })
checkpoint_intervalTimeRangenoThe range for the number of minutes between the subsequent checkpoint is triggered (default: { "after": 6300, "within": 1800 })
TimeRange

The TimeRange object contains these fields:

FieldTypeRequiredDescription
afterintyesThe earliest number of seconds after which the checkpoint can be created. Must be a strictly positive number.
withinintyesThe number of seconds within which the checkpoint can be created after the after value. Must be 0 or greater.

Response

The creator receives a PresenceLoggingEnabled message as a confirmation.

Can return Error of kind insufficient_permissions, presence_logging_already_enabled.

DisablePresenceLogging

The DisablePresenceLogging action can be sent by the room creator to disable presence logging.

Fields

FieldTypeRequiredDescription
actionenumyesMust be "disable_presence_logging"

Response

The creator receives a PresenceLoggingDisabled message as a confirmation.

Can return Error of kind insufficient_permissions or presence_logging_not_enabled.

ConfirmPresence

The ConfirmPresence action can be sent by a participant to confirm their presence for the log.

Fields

FieldTypeRequiredDescription
actionenumyesMust be "confirm_presence"

Response

The participant receives a PresenceConfirmationLogged message as a confirmation.

Can return Error of kind presence_logging_not_allowed_for_participant or presence_logging_not_running.

Events

PresenceLoggingEnabled

Direct response to EnablePresenceLogging, sent to the creator only.

Fields

FieldTypeRequiredDescription
messageenumyesIs "presence_logging_enabled"

PresenceLoggingDisabled

Direct response to DisablePresenceLogging, sent to the creator only.

Fields

FieldTypeRequiredDescription
messageenumyesIs "presence_logging_disabled"

PresenceLoggingStarted

Sent to all participants including the creator once the presence logging procedure has started and is waiting for the initial timeout to pass.

FieldTypeRequiredDescription
messageenumyesIs "presence_logging_started"
first_checkpointStringnoRFC 3339 timestamp of when the first checkpoint starts. Only present in the message sent to the creator.
reasonReasonnoOnly present in the message sent to the creator. See below for allowed values.

Reason

The reason field can be:

  • "autostart" when the participation logging is configured to automatically start as soon as at least the creator and one other participant are present
  • "first_participant_joined" when the creator enabled presence logging while they were alone in the room, and now the first participant joined
  • "started_manually" when the creator started presence logging while other participants were already present

PresenceLoggingEnded

Sent to all participants including the creator once the presence logging procedure ended

FieldTypeRequiredDescription
messageenumyesIs "presence_logging_ended"
reasonStringnolast_participant_left, creator_left or stopped_manually

PresenceConfirmationRequested

Sent to all participants except the room creator as a request to confirm their presence.

FieldTypeRequiredDescription
messageenumyesIs "presence_confirmation_requested"

PresenceConfirmationLogged

Sent to the frontend as a response to the ConfirmPresence message.

FieldTypeRequiredDescription
messageenumyesIs "presence_confirmation_logged"

PdfAsset

Sent to the creator as soon as the training participant report has been generated and stored in the room assets.

FieldTypeRequiredDescription
messageenumyesIs "pdf_asset"
filenamestringyesFile name of the generated meeting report
asset_idstringyesId of the created asset

Error

  • insufficient_permissions: The sending client does not have the permission to perform the requested action.
  • presence_logging_already_enabled: The creator attempted to enable presence logging when it was already enabled.
  • presence_logging_not_enabled: A frontend attempted to perform an action that requires enabled presence logging when it wasn't enabled.
  • presence_logging_not_allowed_for_participant: A participant who shouldn't confirm the presence attempted to do so.
  • storage_exceeded: Storage was exceeded for the room when attempting to store the report.
  • generate: Report generation has failed for an unspecified reason.
  • storage: Storing the report has failed for an unspecified reason. One reason may be that the storage service is not reachable or misconfigured.