diff --git a/lib/NGCP/BulkProcessor/Projects/Migration/IPGallery/Api.pm b/lib/NGCP/BulkProcessor/Projects/Migration/IPGallery/Api.pm index 93abd3e..e8cccc1 100644 --- a/lib/NGCP/BulkProcessor/Projects/Migration/IPGallery/Api.pm +++ b/lib/NGCP/BulkProcessor/Projects/Migration/IPGallery/Api.pm @@ -25,7 +25,8 @@ use NGCP::BulkProcessor::Projects::Migration::IPGallery::Settings qw( $cft_timeouts $cfna_priorities $cfna_timeouts - $cfnumber_pattern + $cfnumber_exclude_pattern + $cfnumber_trim_pattern $ringtimeout ); @@ -454,15 +455,22 @@ sub _prepare_callforward { foreach my $cf_option_set_item (@$cf_option_set_items) { if (defined $cf_option_set_item and $cf_option_set_item->{delta} ne $NGCP::BulkProcessor::Projects::Migration::IPGallery::Dao::import::FeatureOptionSetItem::deleted_delta) { - if (not defined $cfnumber_pattern or $cf_option_set_item->{optionsetitem} =~ $cfnumber_pattern) { + if (defined $cfnumber_exclude_pattern and $cf_option_set_item->{optionsetitem} =~ $cfnumber_exclude_pattern) { + _warn($context,"($context->{rownum}) " . $cf_option_set_item->{option} . " '" . $cf_option_set_item->{optionsetitem} . "' of subscriber " . $context->{cli} . ': exclude pattern match'); + } else { + my $destination = $cf_option_set_item->{optionsetitem}; + if (defined $cfnumber_trim_pattern) { + $destination =~ s/$cfnumber_trim_pattern//; + if ($cf_option_set_item->{optionsetitem} ne $destination) { + _info($context,"($context->{rownum}) " . $cf_option_set_item->{option} . " '" . $cf_option_set_item->{optionsetitem} . "' of subscriber " . $context->{cli} . ": trim pattern match, changed to to '$destination'"); + } + } push(@destinations, { - destination => $cf_option_set_item->{optionsetitem}, + destination => $destination, priority => (defined $priorities->[$i] ? $priorities->[$i] : $priorities->[-1]), timeout => (defined $timeouts->[$i] ? $timeouts->[$i] : $timeouts->[-1]), }); $i++; - } else { - _warn($context,"($context->{rownum}) " . $cf_option_set_item->{option} . " '" . $cf_option_set_item->{optionsetitem} . "' of subscriber " . $context->{cli} . ' does not match pattern for call forwards, skipping'); } } } diff --git a/lib/NGCP/BulkProcessor/Projects/Migration/IPGallery/Settings.pm b/lib/NGCP/BulkProcessor/Projects/Migration/IPGallery/Settings.pm index c0c01a7..b0d5944 100644 --- a/lib/NGCP/BulkProcessor/Projects/Migration/IPGallery/Settings.pm +++ b/lib/NGCP/BulkProcessor/Projects/Migration/IPGallery/Settings.pm @@ -113,7 +113,8 @@ our @EXPORT_OK = qw( $cft_timeouts $cfna_priorities $cfna_timeouts - $cfnumber_pattern + $cfnumber_exclude_pattern + $cfnumber_trim_pattern $ringtimeout $create_lnps_multithreading @@ -203,7 +204,8 @@ our $cft_priorities = []; our $cft_timeouts = []; our $cfna_priorities = []; our $cfna_timeouts = []; -our $cfnumber_pattern = undef; +our $cfnumber_exclude_pattern = undef; +our $cfnumber_trim_pattern = undef; our $ringtimeout = undef; our $create_lnps_multithreading = $enablemultithreading; @@ -309,8 +311,11 @@ sub update_settings { $cft_timeouts = [ split_tuple($data->{cft_timeouts}) ] if exists $data->{cft_timeouts}; $cfna_priorities = [ split_tuple($data->{cfna_priorities}) ] if exists $data->{cfna_priorities}; $cfna_timeouts = [ split_tuple($data->{cfna_timeouts}) ] if exists $data->{cfna_timeouts}; - $cfnumber_pattern = $data->{cfnumber_pattern} if exists $data->{cfnumber_pattern}; - ($regexp_result,$cfnumber_pattern) = parse_regexp($cfnumber_pattern,$configfile); + $cfnumber_exclude_pattern = $data->{cfnumber_exclude_pattern} if exists $data->{cfnumber_exclude_pattern}; + ($regexp_result,$cfnumber_exclude_pattern) = parse_regexp($cfnumber_exclude_pattern,$configfile); + $result &= $regexp_result; + $cfnumber_trim_pattern = $data->{cfnumber_trim_pattern} if exists $data->{cfnumber_trim_pattern}; + ($regexp_result,$cfnumber_trim_pattern) = parse_regexp($cfnumber_trim_pattern,$configfile); $result &= $regexp_result; $ringtimeout = $data->{ringtimeout} if exists $data->{ringtimeout}; if (not defined $ringtimeout or $ringtimeout <= 0) { diff --git a/lib/NGCP/BulkProcessor/Projects/Migration/IPGallery/settings.cfg b/lib/NGCP/BulkProcessor/Projects/Migration/IPGallery/settings.cfg index 9d6d0c4..facd7e2 100644 --- a/lib/NGCP/BulkProcessor/Projects/Migration/IPGallery/settings.cfg +++ b/lib/NGCP/BulkProcessor/Projects/Migration/IPGallery/settings.cfg @@ -58,6 +58,8 @@ cft_timeouts = 300 cfna_priorities = 1 cfna_timeouts = 300 ringtimeout = 20 +#cfnumber_exclude_pattern = +cfnumber_trim_pattern = ^05\d{2} create_lnps_multithreading = 1 #create_lnps_numofthreads = 6