summaryrefslogtreecommitdiff
path: root/FS/FS/cdr/avaya_ipo.pm
blob: 1b60ab3fd6b36174a7f1050003af02bfe2c10cd1 (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
60
61
62
63
64
65
66
package FS::cdr::avaya_ipo;

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'          => 'Avaya IPO',
  'weight'        => 124,
  'header'        => 0,
  'import_fields' => [


         sub { my ($cdr, $info) = @_;
		my @data = split(/\s+/, $info);
		my $calldate = $data[4]. " ". $data[5];

          	$cdr->set('calldate', $calldate);
		$calldate =~ /^(\d{4})\/(\d{2})\/(\d{2})\s*(\d{2}):(\d{2}):(\d{2})$/
               		or die "unparseable date: $calldate";
                my $tmp_date = "$2/$3/$1 $4:$5:$6";
		$tmp_date = str2time($tmp_date);
                $cdr->set('startdate', $tmp_date);

              }, #DateTime

	 sub { my ($cdr, $duration) = @_;
		my ($hours,$min,$sec) = split(/:/, $duration);
		my $seconds += ($min * 60)+ ($hours * 60*60) + $sec;
                $cdr->set('billsec',$seconds); 
	     } , # Duration 00:00:00
        skip(1), # Ring time
   	sub { my ($cdr, $info) = @_;
		my ($src,$ip) = split(/@/,$info);
		$cdr->set('src',$src); 

	      }, # Callers number
        skip(2), # direction
                 # Called number
          'dst', # Dialed number
  'accountcode', # Accountcode
     'uniqueid', # call ID
        skip(5), # continuation
   'disposition',# Party2Device
        skip(9)  # AuthValid
                 # User Charged
                 # call Charge
                 # Currency
	         # Amount at Last User Change
                 # Call Units
                 # Units at Last User Change
                 # Cost per Unit
                 # Markup


],
);

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

1;