TT#5549 improve fax journal numbers representation

* webfax numbers representation is now handled by
      NGCP::Utils::Fax::process_fax_journal_item
      similar to process_cdr_item
    * process_fax_journal_item supports pbx_entensions
      and rewrite_rules in similar to process_cdr_item

Change-Id: I2457f35d96f478274f77a66729414330ffc01641
changes/15/9515/2
Kirill Solomko 9 years ago
parent 2dd0060900
commit 0b3308defb

@ -306,16 +306,12 @@ sub webfax_ajax :Chained('base') :PathPart('webfax/ajax') :Args(0) {
NGCP::Panel::Utils::Datatables::process($c, $fax_rs, $c->stash->{fax_dt_columns},
sub {
my ($result) = @_;
my %data = ();
my $destination = {destination => $result->callee};
$data{callee} = NGCP::Panel::Utils::Subscriber::destination_as_string(
$c,
$destination,
$subscriber,
('in' eq $result->direction) ? 'caller_in' : 'callee_out'
);
return %data;
},
my $resource =
NGCP::Panel::Utils::Fax::process_fax_journal_item(
$c, $result, $subscriber
);
return %$resource;
}
);
$c->detach( $c->view("JSON") );

@ -124,6 +124,65 @@ sub get_fax {
return ($content, $ext);
}
sub process_fax_journal_item {
my ($c, $result, $subscriber) = @_;
my $resource = { caller => $result->caller,
callee => $result->callee };
my $dir = $result->direction;
my $prov_sub = $subscriber->provisioning_voip_subscriber;
my $src_sub = $result->caller_subscriber // undef;
my $dst_sub = $result->callee_subscriber // undef;
my $prov_src_sub = $src_sub
? $src_sub->provisioning_voip_subscriber
: $subscriber;
my $prov_dst_sub = $dst_sub
? $dst_sub->provisioning_voip_subscriber
: $subscriber;
my $src_rewrite = 1;
my $dst_rewrite = 1;
if ($src_sub && $dst_sub && $src_sub->contract_id == $dst_sub->contract_id) {
if ($prov_src_sub && $prov_src_sub->pbx_extension) {
$resource->{caller} = $prov_src_sub->pbx_extension;
$src_rewrite = 0;
}
if ($prov_dst_sub && $prov_dst_sub->pbx_extension) {
$resource->{callee} = $prov_dst_sub->pbx_extension;
$dst_rewrite = 0;
}
} else {
if ($prov_sub->pbx_extension) {
if ($dir eq 'out') {
$resource->{caller} = $prov_sub->pbx_extension;
$src_rewrite = 0;
} else {
$resource->{callee} = $prov_sub->pbx_extension;
$dst_rewrite = 0;
}
}
}
if ($src_rewrite) {
if (my $rt_caller = NGCP::Panel::Utils::Subscriber::apply_rewrite(
c => $c,
number => $resource->{caller},
subscriber => $src_sub // $subscriber,
direction => 'caller_out'
)) {
$resource->{caller} = $rt_caller;
}
}
if ($dst_rewrite) {
if (my $rt_callee = NGCP::Panel::Utils::Subscriber::apply_rewrite(
c => $c,
number => $resource->{callee},
subscriber => $dst_sub // $subscriber,
direction => 'caller_out'
)) {
$resource->{callee} = $rt_callee;
}
}
return $resource;
}
1;
# vim: set tabstop=4 expandtab:

Loading…
Cancel
Save