Bb::Collaborate::V3::Session - Collaborate session instance class
This is the main entity class for sessions.
Identifier of the session.
Session access type:
Notes:
SAS Use of this parameter should be avoided as this controls SAS Native Mode session and recording access. The default value for this parameter is 2 (Restricted) and is appropriate for API use.
ELM 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 Collaborate Manager user interface.
Restrict Session Access
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 Allow in-Session invites setting in the Meeting Defaults.
Allow in-Session invites
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 a Collabroate session before to download any 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 Boudary Time setting in the Meeting Defaults.
Boudary Time
Array of user identifiers from your system that specifies which users may join the Collaborate session as chairpersons.
Each user identifier in the list may be 1 - 64 characters in length, and each identifier is case sensitive and can include UTF-8 characters.
A userId may not appear in both the chair and non-chair lists.
Note: See also the register_atttendee method, which can be used to add a user to the chair or non-chair list when joining.
register_atttendee
Text field that can be used to store notes specific to users with chair role. 1 to 2147483647 characters in length.
Identifier of the session creator as specified by you in your system. Case sensitive. 1 - 32 characters in length. Can include UTF-8 characters.
End date and time of the session in milliseconds.
Array of unique course identifiers from your system with which to associate this Collaborate session.
Each course identifier may be 1 - 32 characters in length, each identifier is case sensitive and can include UTF-8 characters.
The session name. This name will appear in the Collaborate session title bar. Case insensitive. 1 - 255 characters in length. Must begin with a letter or digit and may not contain <, &, '"', #, or %.
<
&
#
%
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 Names in Recordings setting in the Meeting Defaults.
Hide Names in Recordings
Maximum number of simultaneous video cameras to be configured in the Collaborate session at session launch time.
For single server configurations, this value must be between 1 and maxAvailableCameras (as returned from the Bb::Collaborate::V3::Server::Configuration get() method).
maxAvailableCameras
get()
For multiple server configurations, this must be between 1 and versionMaxFilmersLimit for the version you are using (as returned from the Bb::Collaborate::V3::Server::Version list() method).
list()
If you don't specify a value, the default is taken from the Max Cameras setting in the Meeting Defaults.
Max Cameras
Maximum number of simultaneous talkers to be configured in the Collaborate session at session launch time.
For single server configurations, this value must be between 1 and maxAvailableTalkers property (as returned from the Bb::Collaborate::V3::Server::Configuration get() method).
maxAvailableTalkers
For multiple server configurations, this must be between 1 and versionMaxTalkersLimit for the version you are using (as returned from the Bb::Collaborate::V3::Server::Version get() method).
versionMaxTalkersLimit
If you don't specify a value, the default is taken from the Max Talkers setting in the Meeting Defaults.
Max Talkers
Permits chairpersons to view all private chat messages in the Collaborate session.
If you don't specify a value, the default is taken from the Session is supervised setting in the Meeting Defaults.
Session is supervised
Comma-separated list of user identifiers from your system that specifies which users may join the Collaborate 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.)
openChair
Text field that can be used to store notes specific to non-chair participants. 1 to 2147483647 characters in length.
Start date and time of the session in milliseconds.
This can be constructed by appending 000 to a standard unix epoch date.
000
All users will join the session as a chairperson in the Collaborate session.
If you don't specify a value, the default is taken from the Permissions granted on enter setting in the Meeting Defaults.
Permissions granted on enter
All users who join the session as non-chairpersons are granted full permissions to session resources such as audio, whiteboard, etc.
When users join the Collaborate 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 enter setting in the Meeting Defaults.
Raise hand on enter
The mode of recording in the Collaborate session:
If you don't specify a value, the default is taken from the Mode setting in the Meeting Defaults.
Mode
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.
Must reserve seats
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.
The parameter used to indicate that a session created through the API should use the extended authentication provided by the secure sign-on functionality.
Whether the session has any recordings.
The version of Blackboard Collaborate to use for this session. Valid values are retrieved from the Bb::Collaborate::V3::Server::Versions get() or list() methods. If this parameter is not supplied the session will use the 'default' version.
use Bb::Collaborate::V3; use Bb::Collaborate::V3::Session; use Elive::Util; my $connection = Bb::Collaborate::V3->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 = Bb::Collaborate::V3::Session->insert(\%session_data); my $url = $session->session_url( userId => 'bob', displayName => 'Robert'); print "bob's session link is: $url\n";
register_attendee calls the UpdateSessionAttendees request. This ensures that the user is registered on either the chairList or nonChairList and returns a url for joining the session.
register_attendee
UpdateSessionAttendees
chairList
nonChairList
my %late_comer = (userId => 'fred', displayName => 'Fred Nurk', isChair => 1); my $url2 = $session->register_attendee( \%late_comer );
A series of sessions can be created using the recurrenceCount and recurrenceDays parameters.
recurrenceCount
recurrenceDays
# # create three weekly sessions # my @sessions = Bb::Collaborate::V3::Session->insert({ ..., recurrenceCount => 3, recurrenceDays => 7, });
$session->maxCameras(5); $session->hideParticipantNames(0); $session->update; # # ...or... # $session->update({maxCameras => 5, hideParticipantNames => 0});
Updates an existing session.
my $session = Bb::Collaborate::V3::Session->retrieve( $session_id );
Retrieves a session.
# # 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 = Bb::Collaborate::V3::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
groupingId
groupingList
sessionId
creatorId
startTime
endTime
sessionName
$session->delete;
Deletes unwanted or completed sessions.
my $session_telephony = $session->telephony; $session_telephony->update({ chairPhone => '(03) 5999 1234', chairPIN => '6342', });
Returns an Bb::Collaborate::V3::Session::Telephony object for the given session. This can then be used to get or set the session's telephony characterisitics.
$session->set_presentation($presentation);
Associates a seession with presentation content.
$session->set_multimedia([$multimedia_1, $multimedia_2]);
Associates a session with multimedia content.
my $multimedia = $meeting_obj->list_multimedia;
Lists all multimedia associated with the session.
See also Bb::Collaborate::V3::Multimedia.
my $presentation = $meeting_obj->list_presentation;
Lists all presentation associated with the session.
See also Bb::Collaborate::V3::Presentation.
my $presentation_list = $session->list_presentation; foreach my $presentation_item (@$presentation_list) { $session->remove_presentation( $presentation_item ); }
Disassociate the given presentation item from the session
my $multimedia_list = $session->list_multimedia; foreach my $multimedia_item (@$multimedia_list) { $session->remove_multimedia( $multimedia_item ); }
Disassociate the given multimedia item from the session
my $recordings = $meeting_obj->list_recordings;
Lists all recording associated with the session.
See also Bb::Collaborate::V3::Recording.
my $session_url = $session->session_url(userId => 'bob');
Returns a URL for the session. This provides authenthicated access for the given user.
my $session_url = $session->set_api_callback_url($url);
This method calls the SetApiCallbackUrl command, which is used to specify a callback URL that will be notified every time a room closes.
SetApiCallbackUrl
If a session is launched multiple times, there will be multiple rooms (instances of the session). When each room closes, the callback URL will be called. If the session is only launched once, the URL will be called once.
my %attendee = (userId => 'fred', displayName => 'Fred Nurk', isChair => 0); my $attendee_url = $session->register_attendee( \%attendee ); # or to call from the class level $attendee_url = Bb::Collaborate::V3::Session->register_attendee( \%attendee, sessionId => 123456 ); print "Please go to: $attendee_url";
Ensures that the user is in the chair or non-chair list for this session and returns a join URL for the session.
The user may be added and/or promoted/demoted between the chairList and nonChairList as required.
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 Bb::Collaborate::V3::Session::Attendance objects.
To install Bb::Collaborate::V3, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Bb::Collaborate::V3
CPAN shell
perl -MCPAN -e shell install Bb::Collaborate::V3
For more information on module installation, please visit the detailed CPAN module installation guide.