51 lines
1.4 KiB
51 lines
1.4 KiB
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:
|