TT#54661 .ama exporter: skip malformed CDRs

use export status "failed" for CDRs w/o destination

Change-Id: Idcd411124d96b12df6f82da005f1a7238e71d9a0
(cherry picked from commit 8750c0fd16)
changes/40/27940/1
Rene Krenn 7 years ago
parent bc1b526e33
commit 06770196a0

@ -38,12 +38,14 @@ our @EXPORT_OK = qw(
update_export_status
$UNEXPORTED
$EXPORTED
$OK
$FAILED
$SKIPPED
);
our $UNEXPORTED = 'unexported';
our $EXPORTED = 'exported';
our $OK = 'ok';
our $FAILED = 'failed';
our $SKIPPED = 'skipped';
my $tablename = 'cdr_export_status_data';

@ -296,20 +296,28 @@ sub _export_cdrs_init_context {
$call_id,$export_cdr_joins,$export_cdr_conditions); #already sorted
my $cdrs_in_block = delete $context->{block_call_id_map}->{$call_id_prefix};
if ((scalar @{$context->{cdrs}}) == $cdrs_in_block) {
my $malformed = 0;
if ((scalar @{$context->{cdrs}}) == 2
and not $context->{cdrs}->[0]->is_xfer()
and $context->{cdrs}->[1]->is_xfer()
and ($scenario->{ccs_subscriber} = NGCP::BulkProcessor::Dao::Trunk::provisioning::voip_subscribers::findby_uuid(undef,$context->{cdrs}->[0]->{destination_user_id}))
and ($scenario->{ccs_subscriber}->{primary_alias} = NGCP::BulkProcessor::Dao::Trunk::provisioning::voip_dbaliases::findby_subscriberidisprimary($scenario->{ccs_subscriber}->{id},1)->[0])
) {
$scenario->{code} = $DIRECT_FORWARDER_SCENARIO;
$result = 1;
if (not $context->{cdrs}->[0]->{$ama_originating_digits_cdr_field}
or not $context->{cdrs}->[1]->{$ama_terminating_digits_cdr_field}) {
$malformed = 1;
} else {
$scenario->{code} = $DIRECT_FORWARDER_SCENARIO;
$result = 1;
}
#} else {
# print "blah";
}
foreach my $cdr (@{$context->{cdrs}}) {
if ($result) {
$cdr->{_extended_export_status} = $NGCP::BulkProcessor::Dao::Trunk::accounting::cdr_export_status_data::EXPORTED;
$cdr->{_extended_export_status} = $NGCP::BulkProcessor::Dao::Trunk::accounting::cdr_export_status_data::OK;
} elsif ($malformed) {
$cdr->{_extended_export_status} = $NGCP::BulkProcessor::Dao::Trunk::accounting::cdr_export_status_data::FAILED;
} else {
$cdr->{_extended_export_status} = $NGCP::BulkProcessor::Dao::Trunk::accounting::cdr_export_status_data::SKIPPED;
}

Loading…
Cancel
Save