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'; my $target_codec = 'WAV';
# clear audio caches # clear audio caches
SWITCH: for ($file_result->handle->group->name) { my $group_name = $file_result->handle->group->name;
/^calling_card$/ && do { try {
try { NGCP::Panel::Utils::Sems::clear_audio_cache($c, $file_result->set_id, $file_result->handle->name, $group_name);
NGCP::Panel::Utils::Sems::clear_audio_cache($c, "appserver", $file_result->set_id, $file_result->handle->name); } catch ($e) {
} catch ($e) { NGCP::Panel::Utils::Message->error(
NGCP::Panel::Utils::Message->error( c => $c,
c => $c, error => "Failed to clear audio cache for " . $group_name . " at appserver",
error => "Failed to clear audio cache for " . $file_result->handle->group->name . " at appserver", desc => $c->loc('Failed to clear audio cache.'),
desc => $c->loc('Failed to clear audio cache.'), );
); NGCP::Panel::Utils::Navigation::back_or($c, $c->stash->{handles_base_uri});
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
if ($file_result->handle->name eq 'music_on_hold' && !$file_result->set->contract_id) { if ($file_result->handle->name eq 'music_on_hold' && !$file_result->set->contract_id) {
$target_codec = 'PCMA'; $target_codec = 'PCMA';

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

@ -170,6 +170,26 @@ EOF
} }
sub clear_audio_cache { 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 ($c, $service, $sound_set_id, $handle_name) = @_;
my $dispatcher = NGCP::Panel::Utils::XMLDispatcher->new; my $dispatcher = NGCP::Panel::Utils::XMLDispatcher->new;

Loading…
Cancel
Save