diff --git a/lib/NGCP/BulkProcessor/Projects/Export/Ama/Ccs/CDR.pm b/lib/NGCP/BulkProcessor/Projects/Export/Ama/Ccs/CDR.pm index 569d7a82..b57f377b 100644 --- a/lib/NGCP/BulkProcessor/Projects/Export/Ama/Ccs/CDR.pm +++ b/lib/NGCP/BulkProcessor/Projects/Export/Ama/Ccs/CDR.pm @@ -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; } diff --git a/lib/NGCP/BulkProcessor/Projects/Export/Ama/Ccs/Settings.pm b/lib/NGCP/BulkProcessor/Projects/Export/Ama/Ccs/Settings.pm index 3c664c87..77275ce1 100644 --- a/lib/NGCP/BulkProcessor/Projects/Export/Ama/Ccs/Settings.pm +++ b/lib/NGCP/BulkProcessor/Projects/Export/Ama/Ccs/Settings.pm @@ -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; diff --git a/lib/NGCP/BulkProcessor/Projects/Export/Ama/Ccs/settings.cfg b/lib/NGCP/BulkProcessor/Projects/Export/Ama/Ccs/settings.cfg index c08a203b..2a7f1dba 100644 --- a/lib/NGCP/BulkProcessor/Projects/Export/Ama/Ccs/settings.cfg +++ b/lib/NGCP/BulkProcessor/Projects/Export/Ama/Ccs/settings.cfg @@ -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) \ No newline at end of file diff --git a/lib/NGCP/BulkProcessor/Projects/Export/Ama/Ccs/settings.debug.cfg b/lib/NGCP/BulkProcessor/Projects/Export/Ama/Ccs/settings.debug.cfg index a6c3d153..231cea09 100644 --- a/lib/NGCP/BulkProcessor/Projects/Export/Ama/Ccs/settings.debug.cfg +++ b/lib/NGCP/BulkProcessor/Projects/Export/Ama/Ccs/settings.debug.cfg @@ -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) \ No newline at end of file diff --git a/lib/NGCP/BulkProcessor/Projects/Export/Ama/Format/Fields/DomesticInternational.pm b/lib/NGCP/BulkProcessor/Projects/Export/Ama/Format/Fields/DomesticInternational.pm index 3bb08de8..b619f0b3 100644 --- a/lib/NGCP/BulkProcessor/Projects/Export/Ama/Format/Fields/DomesticInternational.pm +++ b/lib/NGCP/BulkProcessor/Projects/Export/Ama/Format/Fields/DomesticInternational.pm @@ -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; diff --git a/lib/NGCP/BulkProcessor/Projects/Export/Ama/Format/Settings.pm b/lib/NGCP/BulkProcessor/Projects/Export/Ama/Format/Settings.pm index c3e4719d..17dd0352 100644 --- a/lib/NGCP/BulkProcessor/Projects/Export/Ama/Format/Settings.pm +++ b/lib/NGCP/BulkProcessor/Projects/Export/Ama/Format/Settings.pm @@ -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;