From 05b2d9c8a1f10a5002699d5099e642dec420eaa6 Mon Sep 17 00:00:00 2001 From: Rene Krenn Date: Fri, 3 May 2019 12:18:51 +0200 Subject: [PATCH] TT#58651 ama exporter: add cfu_no_ivr scenario Change-Id: I58ed4c428632b4bac1ad3b701650a77cd29233e8 --- .../BulkProcessor/Dao/Trunk/accounting/cdr.pm | 4 +++ .../Projects/Export/Ama/Ccs/CDR.pm | 33 +++++++++++++++++++ .../Export/Ama/Ccs/settings.debug.cfg | 2 +- 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/lib/NGCP/BulkProcessor/Dao/Trunk/accounting/cdr.pm b/lib/NGCP/BulkProcessor/Dao/Trunk/accounting/cdr.pm index 5b3204f..4fc6725 100644 --- a/lib/NGCP/BulkProcessor/Dao/Trunk/accounting/cdr.pm +++ b/lib/NGCP/BulkProcessor/Dao/Trunk/accounting/cdr.pm @@ -47,6 +47,8 @@ our @EXPORT_OK = qw( $OK_CALL_STATUS + $CFU_CALL_TYPE + ); #process_records #delete_ids @@ -151,6 +153,8 @@ push(@callid_suffixes,$XFERSUFFIX); our $OK_CALL_STATUS = 'ok'; +our $CFU_CALL_TYPE = 'cfu'; + my $indexes = {}; my $insert_unique_fields = []; diff --git a/lib/NGCP/BulkProcessor/Projects/Export/Ama/Ccs/CDR.pm b/lib/NGCP/BulkProcessor/Projects/Export/Ama/Ccs/CDR.pm index b57f377..d88b27d 100644 --- a/lib/NGCP/BulkProcessor/Projects/Export/Ama/Ccs/CDR.pm +++ b/lib/NGCP/BulkProcessor/Projects/Export/Ama/Ccs/CDR.pm @@ -107,6 +107,7 @@ my $NO_TRANSFER_NO_IVR = 3; my $NO_TRANSFER = 4; my $ATTN_TRANSFER_NO_IVR = 5; my $ATTN_TRANSFER = 6; +my $CFU = 7; my $file_sequence_number : shared = 0; my $rowcount : shared = 0; @@ -403,6 +404,19 @@ sub _export_cdrs_init_context { $scenario->{code} = $ATTN_TRANSFER; } $result = 1; + #cfu: + } elsif ((scalar @$parent_cdrs) == 2 + and not $parent_cdrs->[0]->is_pbx() + and $parent_cdrs->[1]->is_pbx() + and $parent_cdrs->[1]->{call_type} eq $NGCP::BulkProcessor::Dao::Trunk::accounting::cdr::CFU_CALL_TYPE + and (scalar @{$parent_cdrs->[0]->{_correlated_cdrs}}) == 0 + and (scalar @{$parent_cdrs->[1]->{_correlated_cdrs}}) == 0 + and ($scenario->{ccs_subscriber} = NGCP::BulkProcessor::Dao::Trunk::provisioning::voip_subscribers::findby_uuid(undef,$parent_cdrs->[1]->{source_user_id})) + and ($scenario->{ccs_subscriber}->{primary_alias} = NGCP::BulkProcessor::Dao::Trunk::provisioning::voip_dbaliases::findby_subscriberidisprimary($scenario->{ccs_subscriber}->{id},1)->[0]) + and (not defined $primary_alias_pattern or $scenario->{ccs_subscriber}->{primary_alias}->{username} =~ $primary_alias_pattern) + ) { + $scenario->{code} = $CFU; + $result = 1; } #elsif (... # #} @@ -564,6 +578,23 @@ sub _export_cdrs_init_context { mode => '2002', }, }); + } elsif ($scenario->{code} == $CFU) { + my $originating = $parent_cdrs->[0]->{$ama_originating_digits_cdr_field}; + my $terminating = $parent_cdrs->[1]->{$ama_terminating_digits_cdr_field}; + my $switch_number = $parent_cdrs->[1]->{$ama_terminating_digits_cdr_field}; + push(@{$scenario->{ama}},{ + start_time => $parent_cdrs->[1]->{start_time}, #? + duration => $parent_cdrs->[1]->{duration}, + 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 => { + originating_digits => $originating, + switch_number_digits => _rewrite_switch_number($switch_number), #$scenario->{ccs_subscriber}->{primary_alias}->{username}, + mode => '0001', + }, + }); } return $result; @@ -776,6 +807,8 @@ sub _get_record { return _create_ama_records($context,'ATTN_TRANSFER_NO_IVR'); } elsif ($context->{scenario}->{code} == $ATTN_TRANSFER) { return _create_ama_records($context,'ATTN_TRANSFER'); + } elsif ($context->{scenario}->{code} == $CFU) { + return _create_ama_records($context,'CFU'); } else { _error($context,"unknown scenario $context->{scenario}->{code} for cdr ids " . join(', ',map { $_->{id}; } @{$context->{scenario}->{all_cdrs}}) ); } 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 231cea0..ea1a309 100644 --- a/lib/NGCP/BulkProcessor/Projects/Export/Ama/Ccs/settings.debug.cfg +++ b/lib/NGCP/BulkProcessor/Projects/Export/Ama/Ccs/settings.debug.cfg @@ -12,7 +12,7 @@ export_cdr_rollover_fsn = 1 #, { 'accounting.cdr.rating_status' => { '=' => '"ok"' } } #{ 'accounting.cdr.call_status' => { '=' => '"ok"' } } #export_cdr_joins = { 'accounting.cdr_export_status_data esd' => { 'esd.cdr_id' => 'accounting.cdr.id' } }, { 'accounting.cdr_export_status es' => { 'es.id' => 'esd.status_id' } } -export_cdr_conditions = { 'accounting.cdr.id' => { 'IN' => '(51,53, 87,89, 55, 79, 65,67,69, 81,83,85)' } } +export_cdr_conditions = { 'accounting.cdr.id' => { 'IN' => '(51,53, 87,89, 55, 79, 65,67,69, 81,83,85, 111, 113)' } } use_tempfiles = 1 make_dir = 1