The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Elive::StandardV2::Session - Elluminate Session instance class

DESCRIPTION

This is the main entity class for sessions.

PROPERTIES

sessionId (Int)

Identifier of the session.

accessType (Int)

Session access type:

1 = Private - This type does not apply to ELM. If you set this to 1, the API will change it to 2.
2 = Restricted - only users specified in the chair or non-chair lists (or guests invited with the email links) may join.
3 = Public - All users within your login group may join.

If you don't specify a value, the default is taken from the Restrict Session Access setting in the Default Session Preferences, These preferences are available through the ELM user interface. For more information, see the online help available from the Elluminate Live! Manager user interface.

allowInSessionInvites (Bool)

This flag value controls whether or not the chair of this session can send invitations to join the session from within the session.

If you don't specify a value, the default is taken from the Enable In-Session Invitations setting in the Default Session Preferences.

boundaryTime (Int)

Boundary time. (Defined as the period before the start of a session in which users can join the session. Used by chairs to preload content and by non-chairs who have never joined an Elluminate Live! session before to download the jar files and configure their audio.)

Specified in minutes, to a maximum value of 1440 minutes (24 hours). If you don't specify a value, the default is taken from the Early Session Access Time setting in the Default Session Preferences.

chairList (Str)

Array of user identifiers from your system that specifies which users may join the Elluminate Live! session as chairpersons.

Each user identifier in the list may be 1 - 64 characters in length, and each identifier is case sensitive. A userId may not appear in both the chair and non-chair lists.

chairNotes (Str)

Text field that can be used to store notes specific to users with chair role. 1 to 2147483647 characters in length.

creatorId (Str)

Identifier of the session creator as specified by you in your system. Case sensitive. 1 - 32 characters in length. May not be updated.

endTime (HiResDate)

End date and time of the session in milliseconds.

groupingList (Str)

Array of unique course identifiers from your system with which to associate this Elluminate Live! session.

Each course identifier may be 1 - 32 characters in length, and each identifier is case sensitive.

sessionName (Str)

The session name. This name will appear in the Elluminate Live! session title bar. Case insensitive. 1 - 255 characters in length. Must begin with a letter or digit and may not contain <, &, '"', #, or %.

hideParticipantNames (Bool)

This flag value controls whether or not the session participant names are hidden in any session recording that may be made.

If you don't specify a value, the default is taken from the Hide Attendee Names setting in the Default Session Preferences

maxCameras (Int)

Maximum number of simultaneous video cameras to be configured in the Elluminate Live! session at session launch time.

For single server configurations, this value must be between 1 and maxAvailableCameras (as returned from the Elive::StandardV2::ServerConfiguration get() command).

For multiple server configurations, this must be between 1 and versionMaxFilmersLimit for the version you are using (as returned from the Elive::StandardV2::ServerVersions get() command).

If you don't specify a value, the default is taken from the Maximum Simultaneous Cameras setting in the Default Session Preferences.

maxTalkers (Int)

Maximum number of simultaneous talkers to be configured in the Elluminate Live! session at session launch time.

For single server configurations, this value must be between 1 and maxAvailableTalkers property (as returned from the Elive::StandardV2::ServerConfiguration get() command).

For multiple server configurations, this must be between 1 and versionMaxTalkersLimit for the version you are using (as returned from the Elive::StandardV2::ServerVersions get() command).

If you don't specify a value, the default is taken from the Maximum Simultaneous Talkers setting in the Default Session Preferences.

mustBeSupervised (Bool)

Permits chairpersons to view all private chat messages in the Elluminate Live! session. If you don't specify a value, the default is taken from the Early Session Access Time setting in the Default Session Preferences.

nonChairList

Comma-separated list of user identifiers from your system that specifies which users may join the Elluminate Live! session as non-chair participants. (That is assuming that openChair is set to false. If openChair is set to true, then all users will be chairpersons.)

Each user identifier in the list may be 1 - 64 characters in length, and each identifier is case sensitive. A userId may not appear in both the chair and non-chair lists.

nonChairNotes (Str)

Text field that can be used to store notes specific to non-chair participants. 1 to 2147483647 characters in length.

startTime (HiResDate)

Start date and time of the session in milliseconds.

This can be constructed by appending 000 to a standard unix epoch date.

openChair (Bool)

All users will join the session as a chairperson in the Elluminate Live! session.

If you don't specify a value, the default is taken from the Grant All Permissions on Entry setting in the Default Session Preferences.

permissionsOn (Bool)

All users who join the session as non-chairpersons are granted full permissions to session resources such as audio, whiteboard, etc.

If you don't specify a value, the default is taken from the Make Everyone Moderator setting in the Default Session Preferences.

raiseHandOnEnter (Bool)

When users join the Elluminate Live! session, they will automatically raise their hand (this is accompanied by an audible notification).

If you don't specify a value, the default is taken from the Raise Hand on Entry setting in the Default Session Preferences.

recordingModeType (Int)

The mode of recording in the Elluminate Live! session:

1 (Manual) - A chairperson must start the recording.
2 (Automatic) - The recording starts automatically when the session first starts.
3 (Disabled) - Recording is disabled.

If you don't specify a value, the default is taken from the Session Recording setting in the Default Session Preferences.

reserveSeats (Int)

Number of seats reserved for this session.

If Must reserve seats is enabled for your login group, this number will be removed from your purchased license limit for the duration of this session.

In addition, this number acts as a cap to the number of users that may join this session, regardless of the number of users in the user lists, or guests invited through the email facility.

If Must reserve seats is disabled, then this parameter is ignored. Generally, this parameter is not used.

secureSignOn (Bool)

This parameter does not apply to ELM.

recordings (Bool)

Whether the session has any recordings.

versionId (Int)

This parameter does not apply to ELM.

METHODS

insert

    use Elive::StandardV2;
    use Elive::StandardV2::Session;
    use Elive::Util;

    my $connection = Elive::StandardV2->connect(
                                'http://myserver/mysite',
                                'some_user' => 'some_pass' );

    # Sessions must start and end on the quarter hour.

    my $session_start = Elive::Util::next_quarter_hour();
    my $session_end = Elive::Util::next_quarter_hour( $session_start );

    my %session_data = (
        sessionName   => 'My Demo Session',
        creatorId     => $connection->user,
        startTime     => $session_start . '000',
        endTime       => $session_end . '000',
        openChair     => 1,
        mustBeSupervised => 0,
        permissionsOn => 1,
        nonChairList  => [qw(alice bob)],
        groupingList  => [qw(mechanics sewing)],
    );

    my $session = Elive::StandardV2::Session->insert(\%session_data);

    my $url = $session->session_url( userId => 'bob', displayName => 'Robert');
    print "bob's session link is: $url\n";

A series of sessions can be created using the recurrenceCount and recurrenceDays parameters.

    #
    # create three weekly sessions
    #
    my @sessions = Elive::StandardV2::Session->insert({
                            ...,
                            recurrenceCount => 3,
                            recurrenceDays  => 7,
                        });

update

    $session->maxCameras(5);
    $session->hideParticipantNames(0);
    $session->update;

    #
    # ...or...
    #
    $session->update({maxCameras => 5, hideParticipantNames => 0});

Updates a previous created session.

retrieve

    my $session = Elive::StandardV2::Session->retrieve( $session_id );

Retrieves a session.

list

    #
    # perl code snippet to select sessions in group 'perl_tut_1'
    # created from yesterday onwards.
    #
    my $yesterday_dt = DateTime->today->subtract( days => 1 );
    my $yesterday_msec = $yesterday_dt->epoch . '000';

    my $sessions
           = Elive::StandardV2::Session->list(filter => {
                                               groupingId => 'perl_tut_1',
                                               startTime => $yesterday_msec,
                                              });

    foreach my $session (@$sessions) {

        my $session_id = $session->sessionId;
        my $session_name = $session->sessionName;

        print "found id=$session_id, name=$session_name\n"; 

    }

Returns an array of session objects. You may filter on:

userId - Matched against chairList and nonChairList
groupingId - An Element from the groupingList
sessionId - Session identifier
creatorId - Session creator
startTime - Start of the search date/time range in milliseconds.
endTime - End of the search date/time range in milliseconds.
sessionName - The session name

delete

    $session->delete;

Deletes unwanted or completed sessions.

telephony

    my $session_telephony = $session->telephony;
    $session_telephony->update({
        chairPhone => '(03) 5999 1234',
        chairPIN   => '6342',
     });

Returns an Elive::StandardV2::SessionTelephony object for the given session. This can then be used to get or set the session's telephony characterisitics.

set_presentation

    $session->set_presentation([$presentation_1, $presentation_2]);

Associates Presentations with Sessions.

set_multimedia

    $session->set_multimedia([$multimedia_1, $multimedia_2]);

Associates Multimedias with Sessions.

session_url

    my $session_url = $session->session_url(userId => 'bob');

Returns a URL for the session. This provides authenthicated access for the given user.

attendance

    my $yesterday = DateTime->today->subtract(days => 1);

    my $attendance = $session->attendance( $yesterday->epoch.'000' );

Reports on session attendance for a given day. It returns a reference to an array of Elive::StandardV2::SessionAttendance objects.