1 package FS::cdr::netsapiens;
4 use base qw( FS::cdr );
6 use FS::cdr qw( _cdr_date_parser_maker _cdr_min_parser_maker );
9 'name' => 'NetSapiens',
11 'header' => 1, #0 default, set to 1 to ignore the first line, or
12 # to higher numbers to ignore that number of lines
14 'sep_char' => ',', #for csv, defaults to ,
15 'disabled' => 0, #0 default, set to 1 to disable
19 sub { my ($cdr, $direction) = @_;
20 if ($direction =~ /^t/) { # 'origination'
21 # leave src and dst as they are
22 } elsif ($direction =~ /^o/) {
23 my ($local, $remote) = ($cdr->src, $cdr->dst);
24 $cdr->set('dst', $local);
25 $cdr->set('src', $remote);
30 'src', #local party (src/dst, based on direction)
31 _cdr_date_parser_maker('startdate'),
32 _cdr_date_parser_maker('answerdate'),
33 sub { my ($cdr, $duration) = @_;
34 $cdr->set('duration', $duration);
35 $cdr->set('billsec', $duration);
36 $cdr->set('enddate', $duration + $cdr->answerdate)
40 sub { my ($cdr, $dialednum) = @_;
41 $cdr->set('dst',$dialednum) if $dialednum =~ /^(\+?1)?8(8|([02-7])\3)/;
43 'uniqueid', #CallID (timestamp + '-' + 32 char hex string)