MT#56691 Extend Contract Soundsets with all the announcements

The pre-call announcements and the ringback tone
are not under the subscriber administrator control.
This make difficult for PBX customers to modify those
announcements.

Due to that now all the announcement's handle are exposed
also to contract soundsets.

Change-Id: Ie6c98a6a6ed4de18b267bd553f33afc9eb72f995
mr11.3
Marco Capetta 2 years ago
parent 44ec794db2
commit da628f6e0f

@ -171,33 +171,16 @@ sub update_item {
'me.name' => $resource->{handle},
});
my $handle;
if($set->contract_id) {
my @group_names = qw/pbx music_on_hold digits custom_announcements/;
$handle_rs = $handle_rs->search({
'group.name' => { 'in' => \@group_names},
},{
join => 'group',
});
$handle = $handle_rs->first;
unless($handle) {
my $must_be_in_string = sprintf("the sound file must be in one of the customer sound set groups: %s",
join(', ', @group_names));
$c->log->error('invalid handle ' . $resource->{handle} . ' ' . $must_be_in_string);
$self->error($c, HTTP_UNPROCESSABLE_ENTITY, "Handle $must_be_in_string");
return;
}
} else {
$handle_rs = $handle_rs->search({
'group.name' => { 'not in' => ['pbx'] },
},{
join => 'group',
});
$handle = $handle_rs->first;
unless($handle) {
$c->log->error("invalid handle '$$resource{handle}', must not be in group pbx for a system sound set");
$self->error($c, HTTP_UNPROCESSABLE_ENTITY, "Handle must not be in group pbx for a system sound set");
return;
}
$handle_rs = $handle_rs->search({
'group.name' => {},
},{
join => 'group',
});
$handle = $handle_rs->first;
unless($handle) {
$c->log->error("invalid handle '$$resource{handle}'");
$self->error($c, HTTP_UNPROCESSABLE_ENTITY, "Invalid handle");
return;
}
$resource->{handle_id} = $handle->id;

@ -188,12 +188,6 @@ sub get_handles_rs {
order_by => { -asc => 'handles.name' }
});
if($set_rs->contract_id) {
$handles_rs = $handles_rs->search({
'groups.name' => { '-in' => [qw/pbx music_on_hold digits custom_announcements/] }
});
}
unless($c->config->{features}->{cloudpbx}) {
$handles_rs = $handles_rs->search({ 'groups.name' => { '!=' => 'pbx' } });
}

Loading…
Cancel
Save