summaryrefslogtreecommitdiff
path: root/FS/FS/cdr/cx3.pm
blob: 07d8967c353a05938f47b2f81d0d68fe9e825452 (plain)
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;