TT#13277 Implement panel interface for call rec

Allows you to see/delete recorded calls and listen to the streams.

Change-Id: I57d02796990a127eaae82ed60c960a0f89343e59
changes/96/12196/1
Andreas Granig 8 years ago
parent 844741de04
commit 528614f96e

@ -0,0 +1,69 @@
package NGCP::Schema::Result::recording_calls;
use Scalar::Util qw(blessed);
use parent 'DBIx::Class::Core';
our $VERSION = '2.007';
__PACKAGE__->load_components(
"InflateColumn::DateTime",
"Helper::Row::ToJSON",
"+NGCP::Schema::InflateColumn::DateTime::EpochMilli",
);
__PACKAGE__->table("provisioning.recording_calls");
__PACKAGE__->add_columns(
"id",
{
data_type => "integer",
extra => { unsigned => 1 },
is_auto_increment => 1,
is_nullable => 0,
},
"call_id",
{
data_type => "varchar",
size => 250,
default_value => "",
is_nullable => 0,
},
"start_timestamp",
{
data_type => "decimal",
is_nullable => 0,
size => [13, 3],
inflate_datetime => 'epoch_milli'
},
"end_timestamp",
{
data_type => "decimal",
is_nullable => 0,
size => [13, 3],
inflate_datetime => 'epoch_milli'
},
"status",
{
data_type => "enum",
default_value => "recording",
extra => { list => ["recording", "completed", "confirmed"] },
is_nullable => 0,
},
);
__PACKAGE__->set_primary_key("id");
__PACKAGE__->has_many(
"recording_streams",
"NGCP::Schema::Result::recording_streams",
{ "foreign.call" => "self.id" },
{ cascade_copy => 0, cascade_delete => 0 },
);
__PACKAGE__->has_many(
"recording_metakeys",
"NGCP::Schema::Result::recording_metakeys",
{ "foreign.call" => "self.id" },
{ cascade_copy => 0, cascade_delete => 0 },
);
1;

@ -0,0 +1,52 @@
package NGCP::Schema::Result::recording_metakeys;
use Scalar::Util qw(blessed);
use parent 'DBIx::Class::Core';
our $VERSION = '2.007';
__PACKAGE__->load_components(
"Helper::Row::ToJSON",
);
__PACKAGE__->table("provisioning.recording_metakeys");
__PACKAGE__->add_columns(
"id",
{
data_type => "integer",
extra => { unsigned => 1 },
is_auto_increment => 1,
is_nullable => 0,
},
"call",
{
data_type => "integer",
extra => { unsigned => 1 },
is_nullable => 0,
},
"key",
{
data_type => "char",
size => 255,
default_value => "",
is_nullable => 0,
},
"value",
{
data_type => "char",
size => 255,
default_value => "",
is_nullable => 0,
},
);
__PACKAGE__->set_primary_key("id");
__PACKAGE__->belongs_to(
"recording_call",
"NGCP::Schema::Result::recording_calls",
{ id => "call" },
{ cascade_copy => 0, cascade_delete => 0 },
);
1;

@ -0,0 +1,109 @@
package NGCP::Schema::Result::recording_streams;
use Scalar::Util qw(blessed);
use parent 'DBIx::Class::Core';
our $VERSION = '2.007';
__PACKAGE__->load_components(
"InflateColumn::DateTime",
"Helper::Row::ToJSON",
"+NGCP::Schema::InflateColumn::DateTime::EpochMilli",
);
__PACKAGE__->table("provisioning.recording_streams");
__PACKAGE__->add_columns(
"id",
{
data_type => "integer",
extra => { unsigned => 1 },
is_auto_increment => 1,
is_nullable => 0,
},
"call",
{
data_type => "integer",
extra => { unsigned => 1 },
is_nullable => 0,
},
"local_filename",
{
data_type => "varchar",
size => 250,
default_value => "",
is_nullable => 0,
},
"full_filename",
{
data_type => "varchar",
size => 250,
default_value => "",
is_nullable => 0,
},
"file_format",
{
data_type => "varchar",
size => 10,
default_value => "",
is_nullable => 0,
},
"output_type",
{
data_type => "enum",
default_value => "single",
extra => { list => ["single", "mixed"] },
is_nullable => 0,
},
"stream_id",
{
data_type => "integer",
extra => { unsigned => 1 },
is_nullable => 0,
},
"start_timestamp",
{
data_type => "decimal",
is_nullable => 0,
size => [13, 3],
inflate_datetime => 'epoch_milli'
},
"end_timestamp",
{
data_type => "decimal",
is_nullable => 0,
size => [13, 3],
inflate_datetime => 'epoch_milli'
},
"sample_rate",
{
data_type => "integer",
default_value => 0,
extra => { unsigned => 1 },
is_nullable => 0,
},
"channels",
{
data_type => "integer",
default_value => 0,
extra => { unsigned => 1 },
is_nullable => 0,
},
"ssrc",
{
data_type => "integer",
default_value => 0,
extra => { unsigned => 1 },
is_nullable => 0,
},
);
__PACKAGE__->set_primary_key("id");
__PACKAGE__->belongs_to(
"recording_call",
"NGCP::Schema::Result::recording_calls",
{ id => "call" },
{ cascade_copy => 0, cascade_delete => 0 },
);
1;
Loading…
Cancel
Save