1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
package FS::cdr::cx3;
use strict;
use vars qw( @ISA %info);
use FS::cdr;
use Date::Parse;
@ISA = qw(FS::cdr);
%info = (
'name' => '3CX',
'weight' => 120,
'import_fields' => [
sub {
my ($cdr, $data, $conf, $param) = @_;
$param->{skiprow} = 1 unless $data =~ /Call\s/ ; # skip non-detail records
}, # record type
skip(1), # unknown, callid ( not unique )
sub { my ($cdr, $duration) = @_;
my ($hour,$min,$sec) = split(/:/,$duration);
$sec = sprintf ("%.0f", $sec);
$sec += $min * 60;
$sec += $hour * 60 * 60;
$cdr->set('billsec', $sec);
}, # duration
skip(1),
sub { my ($cdr, $calldate, $param) = @_;
my $date = str2time($calldate);
$cdr->set('startdate', $date);
}, #date
skip(4),
'accountcode', # AccountCode
skip(6),
'src', # source
sub { my ($cdr, $dst, $param) = @_;
$dst =~ s/#//;
$cdr->set('dst', $dst);
}, # destination
],
);
sub skip { map {''} (1..$_[0]) }
1;
|