Ticket #33459 ISPPhone CDR format
authorJeremy Davis <jeremyd@freeside.biz>
Mon, 30 Mar 2015 14:05:45 +0000 (10:05 -0400)
committerJeremy Davis <jeremyd@freeside.biz>
Mon, 30 Mar 2015 14:05:45 +0000 (10:05 -0400)
FS/FS/cdr/ispphone.pm [new file with mode: 0644]

diff --git a/FS/FS/cdr/ispphone.pm b/FS/FS/cdr/ispphone.pm
new file mode 100644 (file)
index 0000000..49d1b07
--- /dev/null
@@ -0,0 +1,51 @@
+package FS::cdr::ispphone;
+
+use strict;
+use vars qw( @ISA %info $tmp_mon $tmp_mday $tmp_year );
+use Time::Local;
+use FS::cdr;
+use Date::Parse;
+
+@ISA = qw(FS::cdr);
+
+%info = (
+  'name'          => 'ISPPhone',
+  'weight'        => 123,
+  'header'        => 2,
+  'import_fields' => [
+
+                        'src',  # Form
+                        'dst',  # To
+     'upstream_dst_regionname',  # Country
+                    'dcontext',  # Description
+                
+                       sub { my ($cdr, $calldate) = @_;
+                               $cdr->set('calldate', $calldate);
+
+                       my $tmp_date;
+
+                             if ($calldate =~ /^(\d{2})\/(\d{2})\/(\d{2})\s*(\d{1,2}):(\d{2})$/){
+
+                               $tmp_date = "$2/$1/$3 $4:$5:$6";
+                                       
+                             } else { $tmp_date = $calldate; }
+       
+                               $tmp_date = str2time($tmp_date);
+                               $cdr->set('startdate', $tmp_date);
+
+                       },       #DateTime
+
+                       sub { my ($cdr, $duration) = @_;
+                               my ($min,$sec) = split(/:/, $duration);
+                               my $billsec = $sec + $min * 60;
+                               $cdr->set('billsec', $billsec);
+
+                       },       #Charged time, min:sec
+
+             'upstream_price',  # Amount ( upstream price )
+],
+
+);
+
+1;
+