summaryrefslogtreecommitdiff
path: root/FS/FS/cdr/zintel.pm
blob: eb08038fffa967deea427c3fc13449907eeefdd8 (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
52
53
54
55
56
57
58
59
package FS::cdr::zintel;

use strict;
use vars qw( @ISA %info $tmp_mon $tmp_mday $tmp_year );
use Time::Local;
use FS::cdr qw(_cdr_date_parser_maker);
use Date::Parse;

@ISA = qw(FS::cdr);

%info = (
  'name'          => 'Zintel',
  'weight'        => 123,
  'header'        => 1,
  'import_fields' => [

	'accountcode',	#customer
	'src',		#anumber
		 sub { my ($cdr, $dst) = @_; # Handling cosolidated local calls in the CDR formats

			my $src = $cdr->src;

			if ($dst =~ /^64\/U$/) {
			$cdr->set('dst', $src);
			} else {
			$cdr->set('dst', $dst);
			}
			}, #bnumber

                 sub { my ($cdr, $calldate) = @_;
                        $cdr->set('calldate', $calldate);

                        $calldate =~ /^(\d{2})\/(\d{2})\/(\d{4})\s*(\d{2}):(\d{2}):(\d{2})$/
                                or die "unparseable date: $calldate";
                        my $tmp_date = "$2/$1/$3 $4:$5:$6";

                        $tmp_date = str2time($tmp_date);
                        $cdr->set('startdate', $tmp_date);

                  },    #DateTime
	'billsec',	#duration
	skip(3),	#calltype
			#status
			#product
	'upstream_price',#sellprice
	skip(1),	#fromregion
	'upstream_src_regionname',		#fromarea
	skip(2),	#fromc2city
			#toregion
	'upstream_dst_regionname',		#toarea
	skip(2),	#toc2city
			#group_label
  ],
);

sub skip { map {''} (1..$_[0]) }

1;