Elive::Entity::Meeting - Elluminate Meeting instance class
This is the main entity class for meetings.
Note: the insert() and update() methods are depreciated. For alternatives, please see Elive::Entity::Session.
insert()
update()
my $start = time() + 15 * 60; # starts in 15 minutes my $end = $start + 30 * 60; # runs for half an hour my $meeting = Elive::Entity::Meeting->insert({ name => 'Test Meeting', facilitatorId => Elive->login, start => $start . '000', end => $end . '000', password => 'secret!', privateMeeting => 1, restrictedMeeting => 1, seats => 42, }); # # Set the meeting participants # my $participant_list = $meeting->participant_list; $participant_list->participants([$smith->userId, $jones->userId]); $participant_list->update;
A series of meetings can be created using the recurrenceCount and recurrenceDays parameters.
recurrenceCount
recurrenceDays
# # create three weekly meetings # my @meetings = Elive::Entity::Meeting->insert({ ..., recurrenceCount => 3, recurrenceDays => 7, });
my $meeting = Elive::Entity::Meeting->update({ start => hires-date, end => hires-date, name => string, password => string, seats => int, privateMeeting => 0|1, restrictedMeeting => 0|1, timeZone => string });
my $meeting = Elive::Entity::Meeting->retrieve($meeting_id); $meeting->delete
Delete the meeting.
Note:
If you also want to remove the associated recordings, you'll need to delete them yourself, E.g.:
my $recordings = $meeting->list_recordings; foreach my $recording (@$recordings) { $recording->delete; } $meeting->delete;
Meetings, Meeting Parameters, Server Parameters and recordings may remain accessible via the SOAP interface for a short period of time until they are garbage collected by ELM.
You'll may need to check for deleted meetings:
my $meeting = Elive::Entity::Meeting->retrieve($meeting_id); if ($meeting && ! $meeting->deleted) { # ... }
or filter them out when listing meetings:
my $live_meetings = Elive::Entity::Meeting->list(filter => 'deleted = false');
Lists all meetings for which this user is a participant, over a given date range.
For example, to list all meetings for a particular user over the next week:
my $now = DateTime->now; my $next_week = $now->clone->add(days => 7); my $meetings = Elive::Entity::Meeting->list_user_meetings_by_date( {userId => $user_id, startDate => $now->epoch.'000', endDate => $next_week->epoch.'000'} );
my $preload = Elive::Entity::Preload->upload( 'c:\tmp\intro.wbd'); my $meeting = Elive::Entity::Meeting->retrieve($meeting_id); $meeting->add_preload($preload);
Associates a preload with the given meeting-Id, or meeting object.
my $ok = $meeting_obj->check_preload($preload);
Checks that the preload is associated with this meeting.
my $ok = $meeting_obj->is_participant($user);
Checks that the user is a meeting participant.
my $ok = $meeting_obj->is_moderator($user);
Checks that the user is a meeting moderator.
$meeting_obj->remove_preload($preload_obj); $preload_obj->delete; # if you don't want it to hang around
Disassociate a preload from a meeting.
Builds a JNLP for the meeting.
# ... use Elive; use Elive::Entity::Role; use Elive::Entity::Meeting; use CGI; my $cgi = CGI->new; # # authentication, calls to Elive->connect, etc goes here... # my $meeting_id = $cgi->param('meeting_id'); my $meeting = Elive::Entity::Meeting->retrieve($meeting_id); my $login_name = $cgi->param('user'); my $jnlp = $meeting->buildJNLP( userName => $login_name, sessionRole => ${Elive::Entity::Role::PARTICIPANT}, ); # # join this user to the meeting # print $cgi->header(-type => 'application/x-java-jnlp-file', -attachment => 'my-meeting.jnlp'); print $jnlp;
Alternatively, you can pass a user object or user-id via userId
userId
my $user = Elive::Entity::User->get_by_loginName($login_name); my $jnlp = $meeting->buildJNLP(userId => $user);
Or you can just conjure up a display name and role. The user does not have to exist as in the ELM database, or in the meeting's participant list:
my $jnlp = $meeting->buildJNLP( displayName => 'Joe Bloggs', sessionRole => ${Elive::Entity::Role::PARTICIPANT} );
Guests will by default be given a sessionRole of participant (3).
sessionRole
JNLP is the 'Java Network Launch Protocol', also commonly known as Java WebStart. To launch the meeting you can, for example, render this as a web page, or send email attachments with mime type application/x-java-jnlp-file.
application/x-java-jnlp-file
Under Windows, and other desktops, files are usually saved with extension .jnlp.
.jnlp
See also http://wikipedia.org/wiki/JNLP.
Utility method to return various website links for the meeting. This is available as both class level and object level methods.
# # Class level access. # my $url = Elive::Entity::Meeting->web_url( meeting_id => $meeting_id, action => 'join', # join|edit|... connection => $my_connection); # optional # # Object level. # my $meeting = Elive::Entity::Meeting->retrieve($meeting_id); my $url = meeting->web_url(action => 'join');
my $meeting = Elive::Entity::Meeting->retrieve($meeting_id); my $meeting_parameters = $meeting->parameters;
Utility method to return the meeting parameters associated with a meeting. See also Elive::Entity::MeetingParameters.
my $meeting = Elive::Entity::Meeting->retrieve($meeting_id); my $server_parameters = $meeting->server_parameters;
Utility method to return the server parameters associated with a meeting. See also Elive::Entity::ServerParameters.
my $meeting = Elive::Entity::Meeting->retrieve($meeting_id); my $participant_list = $meeting->participant_list; my $participants = $participant_list->participants;
Utility method to return the participant_list associated with a meeting. See also Elive::Entity::ParticipantList.
my $preloads = $meeting_obj->list_preloads;
Lists all preloads associated with the meeting. See also Elive::Entity::Preload.
my $recordings = $meeting_obj->list_recordings;
Lists all recordings associated with the meeting. See also Elive::Entity::Recording.
Elive::Entity::Session
Elive::Entity::Preload
Elive::Entity::Recording
Elive::Entity::MeetingParameters
Elive::Entity::ServerParameters
Elive::Entity::ParticipantList
To install Elive, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Elive
CPAN shell
perl -MCPAN -e shell install Elive
For more information on module installation, please visit the detailed CPAN module installation guide.