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 sesions 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;

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.

SEE ALSO

Elive::Entity::Meeting Elive::Entity::MeetingParameters Elive::Entity::ServerParameters Elive::Entity::ParticipantList