From fe2bc32ff2f981ab94d0227aaa611e42cb3c2d87 Mon Sep 17 00:00:00 2001 From: Andreas Granig Date: Thu, 29 Nov 2012 17:48:19 +0000 Subject: [PATCH] Show CDR details in Call list. --- lib/admin/Controller/subscriber.pm | 3 +- lib/admin/Utils.pm | 44 ++++++++++++++++-------------- root/tt/subscriber_call_data.tt | 36 +++++++++++++++++++++--- 3 files changed, 58 insertions(+), 25 deletions(-) diff --git a/lib/admin/Controller/subscriber.pm b/lib/admin/Controller/subscriber.pm index 97cbd19..e882e9c 100644 --- a/lib/admin/Controller/subscriber.pm +++ b/lib/admin/Controller/subscriber.pm @@ -1333,7 +1333,7 @@ sub call_data : Local { } my $calls; - return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_calls', + return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_cdrs', { username => $$subscriber{username}, domain => $$subscriber{domain}, filter => { start_date => $sdate, @@ -1356,6 +1356,7 @@ sub call_data : Local { ); } + $c->stash->{cdr_list} = $calls; $c->stash->{call_list} = admin::Utils::prepare_call_list($c, $$subscriber{username}, $$subscriber{domain}, $calls, $listfilter, $bilprof); $c->stash->{subscriber}{list_filter} = $listfilter if defined $listfilter; diff --git a/lib/admin/Utils.pm b/lib/admin/Utils.pm index 37f6e8b..40429f4 100644 --- a/lib/admin/Utils.pm +++ b/lib/admin/Utils.pm @@ -168,7 +168,7 @@ sub prepare_call_list { $callentry{duration} = '00:00'; } - if(defined $$call{call_fee}) { + if(defined $$call{customer_cost}) { # money is allways returned as cents $callentry{call_fee} = sprintf $$bilprof{data}{currency} . " %.04f", $$call{call_fee}/100; } else { @@ -203,25 +203,29 @@ sub prepare_call_list { } else { $callentry{direction_icon} = 'anruf_ein_err_small.gif'; } - if(!defined $$call{source_cli} or !length $$call{source_cli} - or $$call{source_cli} !~ /^\+?\d+$/) - { - if(!defined $$call{source_user} or !length $$call{source_user}) { - $callentry{partner} = 'anonym'; - } elsif($$call{source_user} =~ /^\+?\d+$/) { - my $partner = $$call{source_user}; - $partner =~ s/^$ccdp/+/; - $partner =~ s/^\+*/+/; - $callentry{partner} = $partner; - } else { - $callentry{partner} = $$call{source_user} .'@'. $$call{source_domain}; - } - } else { - my $partner = $$call{source_cli}; - $partner =~ s/^$ccdp/+/; - $partner =~ s/^\+*/+/; - $callentry{partner} = $partner; - } + if(!$$call{source_clir}) + { + if($$call{source_cli} !~ /^\+?\d+$/) + { + if($$call{source_user} =~ /^\+?\d+$/) { + my $partner = $$call{source_user}; + $partner =~ s/^$ccdp/+/; + $partner =~ s/^\+*/+/; + $callentry{partner} = $partner; + } else { + $callentry{partner} = $$call{source_user} .'@'. $$call{source_domain}; + } + } else { + my $partner = $$call{source_cli}; + $partner =~ s/^$ccdp/+/; + $partner =~ s/^\+*/+/; + $callentry{partner} = $partner; + } + } + else + { + $callentry{partner} = 'anonymous'; + } $callentry{partner_number} = $callentry{partner}; } else { diff --git a/root/tt/subscriber_call_data.tt b/root/tt/subscriber_call_data.tt index 1bc42f5..93ceb72 100644 --- a/root/tt/subscriber_call_data.tt +++ b/root/tt/subscriber_call_data.tt @@ -1,4 +1,11 @@ -

Subscriber + +

Subscriber [% subscriber.username %]@[% subscriber.domain %]

@@ -30,6 +37,21 @@ failed

+ [% FOREACH i IN [0 .. call_list.max] %] + [% + cdrentry = cdr_list.$i + %] +
+ + [% FOREACH key IN cdrentry.keys.sort %] + + + + [% END %] +
[% key %]:[% cdrentry.$key %]
+
+ [% END %] + [% IF call_list %] @@ -42,9 +64,14 @@ [% END %] + - [% FOREACH callentry = call_list %] + [% FOREACH i IN [0 .. call_list.max] %] + [% + callentry = call_list.$i + cdrentry = cdr_list.$i + %] @@ -53,14 +80,15 @@ [% END %] + [% END %] [% ELSE %] - + - + [% END %]
chargesdate
[% callentry.partner %][% callentry.call_fee %][% callentry.date %]Details
No matching calls found.No matching calls found.