|
|
|
|
@ -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;
|
|
|
|
|
}
|
|
|
|
|
|