NAME

Elive::View::Session - Session view class

DESCRIPTION

A session is a consolidated view of meetings, meeting parameters, server parameters and participants.

METHODS

insert

Creates a new session on an Elluminate server.

    use Elive::View::Session;

    my $session_start = time();
    my $session_end = $session_start + 900;

    $session_start .= '000';
    $session_end .= '000';

    my %session_data = (
	name => 'An example session',
	facilitatorId => Elive->login->userId,
	password => 'example', # what else?
	start =>  $session_start,
	end => $session_end,
	privateMeeting => 1,
	costCenter => 'example',
	recordingStatus => 'remote',
	raiseHandOnEnter => 1,
	maxTalkers => 2,
	inSessionInvitation => 1,
	boundaryMinutes => 15,
	fullPermissions => 1,
	supervised => 1,
	seats => 2,
        participants => [qw(alice bob)],
    );

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

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

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

update

Updates a previously created session.

$session->seats(5);
$session->update;

...or equivalently...

$session->update({seats => 5});

retrieve

Retrieves a session for the given session id.

Elive::View::Session->retrieve( $session_id );

list

List all sessions that match a given critera:

my $sessions = Elive::View::Session->list( filter => "(name like '*Sample*')" );

delete

Deletes an expired or unwanted session from the Elluminate server.

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

buildJNLP check_preload add_preload remove_preload is_participant is_moderator list_preloads list_recordings

These methods are available from Elive::Entity::Meeting.

adapter allModerators boundaryMinutes costCenter deleted enableTelephony end facilitatorId followModerator fullPermissions id inSessionInvitation maxTalkers moderatorNotes moderatorTelephonyAddress moderatorTelephonyPIN name participantTelephonyAddress participantTelephonyPIN participants password privateMeeting profile raiseHandOnEnter recordingObfuscation recordingResolution recordingStatus redirectURL restrictedMeeting seats serverTelephonyAddress serverTelephonyPIN start supervised telephonyType userNotes videoWindow

These attributes are available from: Elive::Entity::Meeting, Elive::Entity::MeetingParamaters, Elive::Entity::ServerParameters, Elive::Entity::ParticipantList.

BUGS AND LIMITATIONS

Maintaining the Elive::View::Session abstraction may involve fetches from several entities. This is mostly transparent, but does have some implications for the list method:

  • You can only filter on core meeting properties (name, start, end, password, deleted, faciltatorId, privateMeeting, allModerators, restrictedMeeting and adapter).

  • Access to other properties requires a secondary fetch. This is done lazily on a per record basis and may be considerably slower. This includes access to attributes of meeting parameters, server parameter and participant list.