Ticket #33459 ISPPhone CDR format
[freeside.git] / FS / FS / cdr / ispphone.pm
1 package FS::cdr::ispphone;
2
3 use strict;
4 use vars qw( @ISA %info $tmp_mon $tmp_mday $tmp_year );
5 use Time::Local;
6 use FS::cdr;
7 use Date::Parse;
8
9 @ISA = qw(FS::cdr);
10
11 %info = (
12   'name'          => 'ISPPhone',
13   'weight'        => 123,
14   'header'        => 2,
15   'import_fields' => [
16
17                          'src',  # Form
18                          'dst',  # To
19      'upstream_dst_regionname',  # Country
20                     'dcontext',  # Description
21                  
22                         sub { my ($cdr, $calldate) = @_;
23                                 $cdr->set('calldate', $calldate);
24
25                         my $tmp_date;
26
27                               if ($calldate =~ /^(\d{2})\/(\d{2})\/(\d{2})\s*(\d{1,2}):(\d{2})$/){
28
29                                 $tmp_date = "$2/$1/$3 $4:$5:$6";
30                                         
31                               } else { $tmp_date = $calldate; }
32         
33                                 $tmp_date = str2time($tmp_date);
34                                 $cdr->set('startdate', $tmp_date);
35
36                         },       #DateTime
37
38                         sub { my ($cdr, $duration) = @_;
39                                 my ($min,$sec) = split(/:/, $duration);
40                                 my $billsec = $sec + $min * 60;
41                                 $cdr->set('billsec', $billsec);
42
43                         },       #Charged time, min:sec
44
45               'upstream_price',  # Amount ( upstream price )
46 ],
47
48 );
49
50 1;
51