TT#58006 TT#58007 ama exporter: rewrite originating/terminating

Change-Id: I2a5b0efe9703bae0b35b72cc5277e6468b67f045
changes/38/29538/1
Rene Krenn 7 years ago
parent 194dfde5ff
commit 1a18421120

@ -31,6 +31,12 @@ use NGCP::BulkProcessor::Projects::Export::Ama::Ccs::Settings qw(
$switch_number_pattern
$switch_number_replacement
$originating_pattern
$originating_replacement
$terminating_pattern
$terminating_replacement
$terminating_open_digits_6001
);
@ -425,8 +431,8 @@ sub _export_cdrs_init_context {
push(@{$scenario->{ama}},{
start_time => $parent_cdrs->[1]->{start_time}, #?
duration => $parent_cdrs->[1]->{duration},
originating => $originating,
terminating => $terminating,
originating => _rewrite_originating($originating),
terminating => _rewrite_terminating($terminating),
unanswered => ($parent_cdrs->[1]->{call_status} ne $NGCP::BulkProcessor::Dao::Trunk::accounting::cdr::OK_CALL_STATUS ? 1 : 0),
correlation_id => substr($parent_cdrs->[0]->{id},-7),
nod => {
@ -442,8 +448,8 @@ sub _export_cdrs_init_context {
push(@{$scenario->{ama}},{
start_time => $parent_cdrs->[0]->{start_time}, #?
duration => abs($parent_cdrs->[0]->{start_time} - $parent_cdrs->[1]->{init_time}),
originating => $originating,
terminating => ($terminating_open_digits_6001 ? $terminating_open_digits_6001 : $terminating),
originating => _rewrite_originating($originating),
terminating => ($terminating_open_digits_6001 ? $terminating_open_digits_6001 : _rewrite_terminating($terminating)),
unanswered => 0,
correlation_id => substr($parent_cdrs->[0]->{id},-7),
nod => {
@ -454,8 +460,8 @@ sub _export_cdrs_init_context {
},{
start_time => $parent_cdrs->[1]->{start_time},
duration => $parent_cdrs->[1]->{duration},
originating => $originating,
terminating => $terminating,
originating => _rewrite_originating($originating),
terminating => _rewrite_terminating($terminating),
unanswered => ($parent_cdrs->[1]->{call_status} ne $NGCP::BulkProcessor::Dao::Trunk::accounting::cdr::OK_CALL_STATUS ? 1 : 0),
correlation_id => substr($parent_cdrs->[0]->{id},-7),
nod => {
@ -471,8 +477,8 @@ sub _export_cdrs_init_context {
push(@{$scenario->{ama}},{
start_time => $parent_cdrs->[0]->{start_time}, #?
duration => 0,
originating => $originating,
terminating => $terminating,
originating => _rewrite_originating($originating),
terminating => _rewrite_terminating($terminating),
unanswered => 1,
correlation_id => substr($parent_cdrs->[0]->{id},-7),
nod => {
@ -488,8 +494,8 @@ sub _export_cdrs_init_context {
push(@{$scenario->{ama}},{
start_time => $parent_cdrs->[0]->{start_time}, #?
duration => $parent_cdrs->[0]->{duration},
originating => $originating,
terminating => ($terminating_open_digits_6001 ? $terminating_open_digits_6001 : $terminating),
originating => _rewrite_originating($originating),
terminating => ($terminating_open_digits_6001 ? $terminating_open_digits_6001 : _rewrite_terminating($terminating)),
unanswered => 0,
correlation_id => substr($parent_cdrs->[0]->{id},-7),
nod => {
@ -500,8 +506,8 @@ sub _export_cdrs_init_context {
},{
start_time => $parent_cdrs->[0]->{start_time}, #?
duration => 0,
originating => $originating,
terminating => $terminating,
originating => _rewrite_originating($originating),
terminating => _rewrite_terminating($terminating),
unanswered => 1,
correlation_id => substr($parent_cdrs->[0]->{id},-7),
nod => {
@ -518,8 +524,8 @@ sub _export_cdrs_init_context {
push(@{$scenario->{ama}},{
start_time => $parent_cdrs->[1]->{start_time}, #?
duration => $correlated_cdr->{duration} - abs($correlated_cdr->{start_time} - $parent_cdrs->[1]->{start_time}),
originating => $originating,
terminating => $terminating,
originating => _rewrite_originating($originating),
terminating => _rewrite_terminating($terminating),
unanswered => ($correlated_cdr->{call_status} ne $NGCP::BulkProcessor::Dao::Trunk::accounting::cdr::OK_CALL_STATUS ? 1 : 0),
correlation_id => substr($parent_cdrs->[0]->{id},-7),
nod => {
@ -536,8 +542,8 @@ sub _export_cdrs_init_context {
push(@{$scenario->{ama}},{
start_time => $parent_cdrs->[1]->{start_time}, #?
duration => abs($correlated_cdr->{start_time} - $parent_cdrs->[1]->{init_time}),
originating => $originating,
terminating => ($terminating_open_digits_6001 ? $terminating_open_digits_6001 : $terminating),
originating => _rewrite_originating($originating),
terminating => ($terminating_open_digits_6001 ? $terminating_open_digits_6001 : _rewrite_terminating($terminating)),
unanswered => 0,
correlation_id => substr($parent_cdrs->[0]->{id},-7),
nod => {
@ -548,8 +554,8 @@ sub _export_cdrs_init_context {
},{
start_time => $parent_cdrs->[1]->{start_time}, #?
duration => $correlated_cdr->{duration} - abs($correlated_cdr->{start_time} - $parent_cdrs->[1]->{start_time}),
originating => $originating,
terminating => $terminating,
originating => _rewrite_originating($originating),
terminating => _rewrite_terminating($terminating),
unanswered => ($correlated_cdr->{call_status} ne $NGCP::BulkProcessor::Dao::Trunk::accounting::cdr::OK_CALL_STATUS ? 1 : 0),
correlation_id => substr($parent_cdrs->[0]->{id},-7),
nod => {
@ -567,10 +573,31 @@ sub _export_cdrs_init_context {
sub _rewrite_switch_number {
my ($switch_number) = @_;
if (defined $switch_number_pattern and defined $switch_number_replacement) {
$switch_number =~ s/$switch_number_pattern/$switch_number_replacement/;
return _rewrite_number($switch_number,$switch_number_pattern,$switch_number_replacement);
}
sub _rewrite_originating {
my ($originating) = @_;
return _rewrite_number($originating,$originating_pattern,$originating_replacement);
}
sub _rewrite_terminating {
my ($terminating) = @_;
return _rewrite_number($terminating,$terminating_pattern,$terminating_replacement);
}
sub _rewrite_number {
my ($number,$pattern,$replacement) = @_;
if (defined $pattern and defined $replacement) {
$number =~ s/$pattern/$replacement/;
}
return $switch_number;
return $number;
}

@ -67,6 +67,12 @@ our @EXPORT_OK = qw(
$switch_number_pattern
$switch_number_replacement
$originating_pattern
$originating_replacement
$terminating_pattern
$terminating_replacement
$terminating_open_digits_6001
);
@ -100,6 +106,10 @@ our $primary_alias_pattern = undef;
our $switch_number_pattern = undef;
our $switch_number_replacement = undef;
our $terminating_open_digits_6001 = undef;
our $originating_pattern = undef;
our $originating_replacement = undef;
our $terminating_pattern = undef;
our $terminating_replacement = undef;
sub update_settings {
@ -154,6 +164,18 @@ sub update_settings {
$switch_number_replacement = $data->{switch_number_replacement} if exists $data->{switch_number_replacement};
$originating_pattern = $data->{originating_pattern} if exists $data->{originating_pattern};
($regexp_result,$originating_pattern) = parse_regexp($originating_pattern,$configfile);
$result &= $regexp_result;
$originating_replacement = $data->{originating_replacement} if exists $data->{originating_replacement};
$terminating_pattern = $data->{terminating_pattern} if exists $data->{terminating_pattern};
($regexp_result,$terminating_pattern) = parse_regexp($terminating_pattern,$configfile);
$result &= $regexp_result;
$terminating_replacement = $data->{terminating_replacement} if exists $data->{terminating_replacement};
$terminating_open_digits_6001 = $data->{terminating_open_digits_6001} if exists $data->{terminating_open_digits_6001};
return $result;

@ -32,9 +32,15 @@ ama_terminating_digits_cdr_field = destination_user_in
ivr_duration_limit = 5
primary_alias_pattern = 431976
switch_number_pattern = 43
switch_number_pattern = ^43
switch_number_replacement =
originating_pattern = ^0
originating_replacement =
terminating_pattern = ^0
terminating_replacement =
terminating_open_digits_6001 = 4319558290
international_destination_pattern = ^(43|49)

@ -34,9 +34,15 @@ ama_terminating_digits_cdr_field = destination_user_in
ivr_duration_limit = 5
#primary_alias_pattern = 431976
switch_number_pattern = 43
switch_number_pattern = ^43
switch_number_replacement =
originating_pattern = ^0
originating_replacement =
terminating_pattern = ^0
terminating_replacement =
terminating_open_digits_6001 = 4319558290
international_destination_pattern = ^(43|49)

@ -4,9 +4,9 @@ use strict;
## no critic
use NGCP::BulkProcessor::Projects::Export::Ama::Format::Settings qw(
$domestic_destination_pattern
$international_destination_pattern
);
#$domestic_destination_pattern
use NGCP::BulkProcessor::Projects::Export::Ama::Format::Field qw($TERMINATOR);
@ -62,10 +62,10 @@ sub get_hex {
sub get_number_domestic_international {
my $number = shift; #called number (destination)
if (defined $number) {
if (defined $domestic_destination_pattern and $number =~ $domestic_destination_pattern) {
return $DOMESTIC;
} elsif (defined $international_destination_pattern and $number =~ $international_destination_pattern) {
if (defined $international_destination_pattern and $number =~ $international_destination_pattern) {
return $INTERNATIONAL;
} else {
return $DOMESTIC;
}
}
return $UNKNOWN;

@ -58,8 +58,8 @@ our $tempfile_path = $working_path . 'temp/';
our $use_tempfiles = 0;
our $domestic_destination_pattern = undef;
#our $international_destination_pattern = undef;
#our $domestic_destination_pattern = undef;
our $international_destination_pattern = undef;
our $ama_max_blocks = 1000;

Loading…
Cancel
Save