Add class to make RPC calls to rtpengine. Add invokations to clear rtpengine audio cache where appropriate, whenever a file stored in DB is deleted or changed. Change-Id: I3660f9f67dfb0c68c1af80a5439982046be3b6f6mr13.2
parent
1bcc6430a4
commit
b2b5600c16
@ -0,0 +1,50 @@
|
||||
package NGCP::Panel::Utils::Rtpengine;
|
||||
|
||||
use Sipwise::Base;
|
||||
use NGCP::Panel::Utils::HTTPDispatcher;
|
||||
use NGCP::Panel::Utils::Sounds;
|
||||
use List::Util qw(any);
|
||||
|
||||
sub clear_audio_cache_files {
|
||||
my ($c, @sound_ids) = @_;
|
||||
|
||||
return unless @sound_ids;
|
||||
|
||||
my @all;
|
||||
|
||||
if (@sound_ids < 1000) {
|
||||
my @ret = NGCP::Panel::Utils::HTTPDispatcher::dispatch($c, "rtpengine", 1, 1, "POST", "text/plain",
|
||||
"media evict cache @sound_ids");
|
||||
push(@all, @ret);
|
||||
@ret = NGCP::Panel::Utils::HTTPDispatcher::dispatch($c, "rtpengine", 1, 1, "POST", "text/plain",
|
||||
"media evict db @sound_ids");
|
||||
push(@all, @ret);
|
||||
} else {
|
||||
my @ret = NGCP::Panel::Utils::HTTPDispatcher::dispatch($c, "rtpengine", 1, 1, "POST", "text/plain",
|
||||
"media evict caches");
|
||||
push(@all, @ret);
|
||||
@ret = NGCP::Panel::Utils::HTTPDispatcher::dispatch($c, "rtpengine", 1, 1, "POST", "text/plain",
|
||||
"media evict dbs");
|
||||
push(@all, @ret);
|
||||
}
|
||||
|
||||
if (any { $$_[1] != 1 } @all) {
|
||||
die "failed to clear rtpengine audio cache";
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
sub clear_audio_cache_set {
|
||||
my ($c, $set_id) = @_;
|
||||
|
||||
my $handles = NGCP::Panel::Utils::Sounds::get_file_handles(c => $c, set_id => $set_id);
|
||||
my @db_ids = map { $_->{file_id} // () } @{$handles};
|
||||
clear_audio_cache_files($c, @db_ids);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
# vim: set tabstop=4 expandtab:
|
||||
Loading…
Reference in new issue