MT#13007 Reload correct service for sound handles

see 13007#c98465

Change-Id: I44392cb1e45134650a1ad44edd6b24d057c817a6
changes/66/1866/3
Gerhard Jungwirth 11 years ago
parent 34c05dafbb
commit 9aad021882

@ -581,42 +581,17 @@ sub handles_edit :Chained('handles_base') :PathPart('edit') {
my $target_codec = 'WAV';
# clear audio caches
SWITCH: for ($file_result->handle->group->name) {
/^calling_card$/ && do {
try {
NGCP::Panel::Utils::Sems::clear_audio_cache($c, "appserver", $file_result->set_id, $file_result->handle->name);
} catch ($e) {
NGCP::Panel::Utils::Message->error(
c => $c,
error => "Failed to clear audio cache for " . $file_result->handle->group->name . " at appserver",
desc => $c->loc('Failed to clear audio cache.'),
);
NGCP::Panel::Utils::Navigation::back_or($c, $c->stash->{handles_base_uri});
}
last SWITCH;
};
/^(pbx|music_on_hold|voucher_recharge|play_balance|conference|digits)$/ && do {
my $service;
try {
if(!$file_result->set->contract_id) {
$service = "appserver";
NGCP::Panel::Utils::Sems::clear_audio_cache($c, $service, $file_result->set_id, $file_result->handle->name);
} else {
$service = "pbx";
NGCP::Panel::Utils::Sems::clear_audio_cache($c, $service, $file_result->set_id, $file_result->handle->name);
}
} catch ($e) {
NGCP::Panel::Utils::Message->error(
c => $c,
error => "Failed to clear audio cache for " . $file_result->handle->group->name . " on $service",
desc => $c->loc('Failed to clear audio cache.'),
);
NGCP::Panel::Utils::Navigation::back_or($c, $c->stash->{handles_base_uri});
}
last SWITCH;
};
# default
} # SWITCH
my $group_name = $file_result->handle->group->name;
try {
NGCP::Panel::Utils::Sems::clear_audio_cache($c, $file_result->set_id, $file_result->handle->name, $group_name);
} catch ($e) {
NGCP::Panel::Utils::Message->error(
c => $c,
error => "Failed to clear audio cache for " . $group_name . " at appserver",
desc => $c->loc('Failed to clear audio cache.'),
);
NGCP::Panel::Utils::Navigation::back_or($c, $c->stash->{handles_base_uri});
}
if ($file_result->handle->name eq 'music_on_hold' && !$file_result->set->contract_id) {
$target_codec = 'PCMA';

@ -26,7 +26,7 @@ sub transcode_data {
$filename, $from_codec, $resource->{codec},
);
} catch($e) {
$self->log->error("failed to transcode file: $e");
$c->log->error("failed to transcode file: $e");
$self->error($c, HTTP_UNPROCESSABLE_ENTITY, "Failed to transcode file");
return;
}
@ -175,18 +175,15 @@ sub update_item {
}
$resource->{handle_id} = $handle->id;
SWITCH: for ($handle->group->name) {
/^calling_card$/ && do {
NGCP::Panel::Utils::Sems::clear_audio_cache($c, "appserver", $set->id, $handle->name);
last SWITCH;
};
/^(pbx|music_on_hold)$/ && do {
my $service = $set->contract_id ? "pbx" : "appserver";
NGCP::Panel::Utils::Sems::clear_audio_cache($c, $service, $set->id, $handle->name);
last SWITCH;
};
# default
} # SWITCH
# clear audio caches
my $group_name = $handle->group->name;
try {
NGCP::Panel::Utils::Sems::clear_audio_cache($c, $set->id, $handle->name, $group_name);
} catch ($e) {
$c->log->error("Failed to clear audio cache for " . $group_name . " at appserver",);
$self->error($c, HTTP_UNPROCESSABLE_ENTITY, 'Failed to clear audio cache.');
last;
}
if($resource->{handle} eq 'music_on_hold' && !$set->contract_id) {
$resource->{codec} = 'PCMA';

@ -170,6 +170,26 @@ EOF
}
sub clear_audio_cache {
my ($c, $sound_set_id, $handle_name, $group_name) = @_;
my @services;
if ($group_name eq "calling_card") {
@services = ("appserver");
} elsif ($group_name eq "pbx" ) {
@services = ("pbx");
} elsif ($group_name eq "digits") {
@services = ("pbx", "appserver");
} elsif ($group_name =~ /^(|music_on_hold|voucher_recharge|play_balance|conference)$/) {
@services = ("appserver");
}
for my $service (@services) {
_clear_audio_cache_service($c, $service, $sound_set_id, $handle_name);
}
return;
}
sub _clear_audio_cache_service {
my ($c, $service, $sound_set_id, $handle_name) = @_;
my $dispatcher = NGCP::Panel::Utils::XMLDispatcher->new;

Loading…
Cancel
Save