Bb-Collaborate-V3
view release on metacpan or search on metacpan
lib/Bb/Collaborate/V3/Session/Telephony.pm view on Meta::CPAN
sessionPIN => '1234',
);
$session_telephony->update(\%telephony_data);
Updates a session's telephony characteristics.
=cut
# custom unpacker for GetTelephonyResponse
sub _get_results {
my $class = shift;
my $som = shift;
my $connection = shift;
$connection->_check_for_errors($som);
my $resp = $som->body->{GetTelephonyResponse} || $som->body->{SetTelephonyResponse};
if ($resp) {
my %rec = %{ $resp };
my $items = delete $rec{TelephonyResponseItem};
my $is_phone = 0;
if ($items) {
my $types = {moderator => 'chair', participant => 'nonChair', serverSIP => 'session', serverPhone => 'session'};
for (@$items) {
my %item = %$_;
$is_phone = 1 if $item{itemType} eq 'serverPhone';
my $type = $types->{ delete $item{itemType} };
unless ($type) {
require YAML::Syck; my $item_yaml = YAML::Syck::Dump($_);
warn "skipping telephony item: $item_yaml";
next;
}
$rec{$type . 'PIN'} = delete $item{pin} if $item{pin};
$type .= 'SIP' if $type eq 'session';
$rec{$type . 'Phone'} = delete $item{uri} if $item{uri};
if (%item) {
require YAML::Syck; my $item_yaml = YAML::Syck::Dump(\%item);
warn "unprocessed telephony item data: $item_yaml";
}
}
}
$rec{isPhone} = $is_phone;
return [ \%rec ]
}
warn "problems unpacking Telephony response";
return $class->SUPER::_get_results( $som, $connection );
}
sub update {
my $self = shift;
my $updates = shift;
my %opt = @_;
# include the entire record
my @properties = grep { defined $self->$_ } ($self->properties);
return $self->SUPER::update($updates, %opt, changed => \@properties);
}
1;
( run in 0.594 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )