TT#63528 CCS importer: clear CFU for subs with "1:1" routing type

Change-Id: I27d19da4629041127ff2fa5317f5b62de06e89fa
changes/75/31875/2
Rene Krenn 7 years ago
parent 81fb90a0f8
commit e7ed4d79c6

@ -7,35 +7,35 @@ enablemultithreading = 1
jobservers = 127.0.0.1:4730
##NGCP MySQL connectivity - "accounting" db:
accounting_host = 192.168.0.29
accounting_host = 192.168.0.212
accounting_port = 3306
accounting_databasename = accounting
accounting_username = root
accounting_password =
##NGCP MySQL connectivity - "billing" db:
billing_host = 192.168.0.29
billing_host = 192.168.0.212
billing_port = 3306
billing_databasename = billing
billing_username = root
billing_password =
##NGCP MySQL connectivity - "provisioning" db:
provisioning_host = 192.168.0.29
provisioning_host = 192.168.0.212
provisioning_port = 3306
provisioning_databasename = provisioning
provisioning_username = root
provisioning_password =
##NGCP MySQL connectivity - "kamailio" db:
kamailio_host = 192.168.0.29
kamailio_host = 192.168.0.212
kamailio_port = 3306
kamailio_databasename = kamailio
kamailio_username = root
kamailio_password =
##NGCP MySQL connectivity - default db for distributed transactions (XA) to connect to:
xa_host = 192.168.0.29
xa_host = 192.168.0.212
xa_port = 3306
xa_databasename = ngcp
xa_username = root

@ -8,10 +8,12 @@ webpassword_length = 8
webusername_length = 8
sippassword_length = 16
sipusername_length = 8
provision_subscriber_count = 1000
provision_subscriber_count = 5
#1000
providers_yml = providers.yml
generate_cdr_multithreading = 1
#generate_cdr_numofthreads = 2
generate_cdr_count = 10
generate_cdr_count = 50000
#10

@ -116,6 +116,7 @@ our @EXPORT_OK = qw(
provision_ccs_subscribers
$UPDATE_CCS_PREFERENCES_MODE
$SET_CCS_CF_MODE
$CLEAR_CCS_CF_MODE
);
my $split_ipnets_pattern = join('|',(
@ -133,6 +134,7 @@ my $ccs_contact_identifier_field = 'gpp9';
our $UPDATE_CCS_PREFERENCES_MODE = 'update_ccs_preferences';
our $SET_CCS_CF_MODE = 'set_ccs_cf';
our $CLEAR_CCS_CF_MODE = 'clear_ccs_cf';
my $cf_types_pattern = '^' . $NGCP::BulkProcessor::Dao::Trunk::provisioning::voip_cf_mappings::CFB_TYPE . '|'
. $NGCP::BulkProcessor::Dao::Trunk::provisioning::voip_cf_mappings::CFT_TYPE . '|'
@ -1153,6 +1155,8 @@ sub _provision_ccs_susbcriber {
_update_ccs_preferences($context);
} elsif ($update_mode eq $SET_CCS_CF_MODE) {
_set_callforwards($context);
} elsif ($update_mode eq $CLEAR_CCS_CF_MODE) {
_set_callforwards($context,1);
} else {
_warn($context,$context->{prov_subscriber}->{username} . ': ' . (scalar @$existing_billing_voip_subscribers) . ' existing billing subscribers found, skipping');
}
@ -1752,49 +1756,51 @@ sub _set_registrations {
sub _set_callforwards {
my ($context) = @_;
my ($context,$clear) = @_;
my $result = 1;
foreach my $type (keys %{$context->{callforwards}}) {
NGCP::BulkProcessor::Dao::Trunk::provisioning::voip_cf_mappings::delete_cfmappings($context->{db},
$context->{prov_subscriber}->{id},{ '=' => $type });
my $destination_set_id = NGCP::BulkProcessor::Dao::Trunk::provisioning::voip_cf_destination_sets::insert_row($context->{db},{
subscriber_id => $context->{prov_subscriber}->{id},
name => "quickset_$type",
});
foreach my $callforward (@{$context->{callforwards}->{$type}}) {
$callforward->{id} = NGCP::BulkProcessor::Dao::Trunk::provisioning::voip_cf_destinations::insert_row($context->{db},{
%$callforward,
_info($context,"$type deleted",1)
if NGCP::BulkProcessor::Dao::Trunk::provisioning::voip_cf_mappings::delete_cfmappings($context->{db},
$context->{prov_subscriber}->{id},{ '=' => $type });
unless ($clear) {
my $destination_set_id = NGCP::BulkProcessor::Dao::Trunk::provisioning::voip_cf_destination_sets::insert_row($context->{db},{
subscriber_id => $context->{prov_subscriber}->{id},
name => "quickset_$type",
});
foreach my $callforward (@{$context->{callforwards}->{$type}}) {
$callforward->{id} = NGCP::BulkProcessor::Dao::Trunk::provisioning::voip_cf_destinations::insert_row($context->{db},{
%$callforward,
destination_set_id => $destination_set_id,
});
}
my $cf_mapping_id = NGCP::BulkProcessor::Dao::Trunk::provisioning::voip_cf_mappings::insert_row($context->{db},{
subscriber_id => $context->{prov_subscriber}->{id},
type => $type,
destination_set_id => $destination_set_id,
#time_set_id
});
}
my $cf_mapping_id = NGCP::BulkProcessor::Dao::Trunk::provisioning::voip_cf_mappings::insert_row($context->{db},{
subscriber_id => $context->{prov_subscriber}->{id},
type => $type,
destination_set_id => $destination_set_id,
#time_set_id
});
$context->{preferences}->{$type} = { id => set_subscriber_preference($context,
$context->{prov_subscriber}->{id},
$context->{attributes}->{$type},
$cf_mapping_id), value => $cf_mapping_id };
if (defined $context->{ringtimeout}) {
$context->{preferences}->{ringtimeout} = { id => set_subscriber_preference($context,
$context->{preferences}->{$type} = { id => set_subscriber_preference($context,
$context->{prov_subscriber}->{id},
$context->{attributes}->{ringtimeout},
$context->{ringtimeout}), value => $context->{ringtimeout} };
$context->{attributes}->{$type},
$cf_mapping_id), value => $cf_mapping_id };
if (defined $context->{ringtimeout}) {
$context->{preferences}->{ringtimeout} = { id => set_subscriber_preference($context,
$context->{prov_subscriber}->{id},
$context->{attributes}->{ringtimeout},
$context->{ringtimeout}), value => $context->{ringtimeout} };
}
_info($context,"$type created (destination(s) " . join(', ',(map { $_->{destination}; } @{$context->{callforwards}->{$type}})) . ")",1);
$context->{callforwards}->{$type} = {
destination_set => {
destinations => $context->{callforwards}->{$type},
id => $destination_set_id,
},
id => $cf_mapping_id,
};
}
_info($context,"$type created (destination(s) " . join(', ',(map { $_->{destination}; } @{$context->{callforwards}->{$type}})) . ")",1);
$context->{callforwards}->{$type} = {
destination_set => {
destinations => $context->{callforwards}->{$type},
id => $destination_set_id,
},
id => $cf_mapping_id,
};
}
return $result;

@ -7,35 +7,35 @@ enablemultithreading = 0
jobservers = 127.0.0.1:4730
##NGCP MySQL connectivity - "accounting" db:
accounting_host = 192.168.0.29
accounting_host = 192.168.174.130
accounting_port = 3306
accounting_databasename = accounting
accounting_username = root
accounting_password =
##NGCP MySQL connectivity - "billing" db:
billing_host = 192.168.0.29
billing_host = 192.168.174.130
billing_port = 3306
billing_databasename = billing
billing_username = root
billing_password =
##NGCP MySQL connectivity - "provisioning" db:
provisioning_host = 192.168.0.29
provisioning_host = 192.168.174.130
provisioning_port = 3306
provisioning_databasename = provisioning
provisioning_username = root
provisioning_password =
##NGCP MySQL connectivity - "kamailio" db:
kamailio_host = 192.168.0.29
kamailio_host = 192.168.174.130
kamailio_port = 3306
kamailio_databasename = kamailio
kamailio_username = root
kamailio_password =
##NGCP MySQL connectivity - default db for distributed transactions (XA) to connect to:
xa_host = 192.168.0.29
xa_host = 192.168.174.130
xa_port = 3306
xa_databasename = ngcp
xa_username = root

@ -95,6 +95,7 @@ use NGCP::BulkProcessor::Projects::Migration::UPCAT::Provisioning qw(
provision_ccs_subscribers
$UPDATE_CCS_PREFERENCES_MODE
$SET_CCS_CF_MODE
$CLEAR_CCS_CF_MODE
);
scripterror(getscriptpath() . ' already running',getlogger(getscriptpath())) unless flock DATA, LOCK_EX | LOCK_NB; # not tested on windows yet
@ -134,6 +135,8 @@ push(@TASK_OPTS,$update_ccs_subscriber_preferences_task_opt);
my $set_ccs_subscriber_cf_task_opt = 'set_ccs_subscriber_cf';
push(@TASK_OPTS,$set_ccs_subscriber_cf_task_opt);
my $clear_ccs_subscriber_cf_task_opt = 'clear_ccs_subscriber_cf';
push(@TASK_OPTS,$clear_ccs_subscriber_cf_task_opt);
if (init()) {
main();
@ -226,6 +229,13 @@ sub main() {
$completion |= 1;
}
} elsif (lc($clear_ccs_subscriber_cf_task_opt) eq lc($task)) {
if (taskinfo($clear_ccs_subscriber_cf_task_opt,$result,1)) {
next unless check_dry();
$result &= clear_ccs_subscriber_cf_task(\@messages);
$completion |= 1;
}
} else {
$result = 0;
scripterror("unknow task option '" . $task . "', must be one of " . join(', ',@TASK_OPTS),getlogger(getscriptpath()));
@ -567,6 +577,29 @@ sub set_ccs_subscriber_cf_task {
return $result;
}
sub clear_ccs_subscriber_cf_task {
my ($messages) = @_;
my ($result,$warning_count) = (0,0);
eval {
($result,$warning_count) = provision_ccs_subscribers($CLEAR_CCS_CF_MODE);
};
my $err = $@;
my $stats = ": $warning_count warnings";
eval {
$stats .= "\n total contracts: " .
NGCP::BulkProcessor::Dao::Trunk::billing::contracts::countby_status_resellerid(undef,undef) . ' rows';
$stats .= "\n total subscribers: " .
NGCP::BulkProcessor::Dao::Trunk::billing::voip_subscribers::countby_status_resellerid(undef,undef) . ' rows';
};
if ($err or !$result) {
push(@$messages,"clear ccs subscriber callforwards INCOMPLETE$stats");
} else {
push(@$messages,"clear ccs subscribers callforwards completed$stats");
}
destroy_all_dbs();
return $result;
}
#END {
# # this should not be required explicitly, but prevents Log4Perl's
# # "rootlogger not initialized error upon exit..

@ -37,7 +37,7 @@ provision_ccs_subscriber_multithreading = 1
provision_ccs_subscriber_numofthreads = 2
ccs_reseller_name = default
ccs_billing_profile_name = Default Billing Profile
ccs_domain = 192.168.0.29
ccs_domain = 192.168.174.130
#10.15.19.193
#d20.upc.at
#in-ivr.upc.at

Loading…
Cancel
Save