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

NAME

Elive::Entity::Meeting - Elluminate Meeting instance class

DESCRIPTION

This is the main entity class for meetings.

METHODS

insert

Note: the insert() and update() methods are depreciated. For alternatives, please see Elive::Entity::Session.

    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.

    #
    # create three weekly meetings
    #
    my @meetings = Elive::Entity::Meeting->insert({
                            ...,
                            recurrenceCount => 3,
                            recurrenceDays  => 7,
                        });

update

    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
       });

delete

    my $meeting = Elive::Entity::Meeting->retrieve($meeting_id);
    $meeting->delete

Delete the meeting.

Note:

Meeting recordings are not deleted.

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;
With Elluminate 9.5 onwards, deleted meeting may remain retrievable, but with the deleted property to true.

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');

list_user_meetings_by_date

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'}
       );

add_preload

    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.

check_preload

    my $ok = $meeting_obj->check_preload($preload);

Checks that the preload is associated with this meeting.

is_participant

    my $ok = $meeting_obj->is_participant($user);

Checks that the user is a meeting participant.

is_moderator

    my $ok = $meeting_obj->is_moderator($user);

Checks that the user is a meeting moderator.

remove_preload

    $meeting_obj->remove_preload($preload_obj);
    $preload_obj->delete;  # if you don't want it to hang around

Disassociate a preload from a meeting.

buildJNLP

    # ...
    use Elive;
    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 $user = Elive::Entity::User->get_by_loginName($login_name);

    my $jnlp = $meeting->buildJNLP(version => $version,
                                   user => $user,
                                   displayName => join(' ', $user->firstName, $user->lastName),
                                  );
    #
    # join this user to the meeting
    #

    print $cgi->header(-type       => 'application/x-java-jnlp-file',
                       -attachment => 'my-meeting.jnlp');

    print $jnlp;

Builds a JNLP for the meeting.

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.

Under Windows, and other desktops, files are usually saved with extension JNLP.

See also http://wikipedia.org/wiki/JNLP.

web_url

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');

parameters

    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.

server_parameters

    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.

participant_list

    my $meeting = Elive::Entity::Meeting->retrieve([$meeting_id]);
    my $participant_list = $meeting->participant_list;
    my $participants = $meeting->participants;

Utility method to return the participant_list associated with a meeting. See also Elive::Entity::ParticipantList.

list_preloads

    my $preloads = $meeting_obj->list_preloads;

Lists all preloads associated with the meeting. See also Elive::Entity::Preload.

list_recordings

    my $recordings = $meeting_obj->list_recordings;

Lists all recordings associated with the meeting. See also Elive::Entity::Recording.

SEE ALSO

Elive::Entity::Session

Elive::Entity::Preload

Elive::Entity::Recording

Elive::Entity::MeetingParameters

Elive::Entity::ServerParameters

Elive::Entity::ParticipantList