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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
package FS::cdr::cisco;
use strict;
use base qw( FS::cdr );
use vars qw( %info );
use FS::cdr qw( _cdr_date_parser_maker _cdr_min_parser_maker );
use Date::Parse;
%info = (
'name' => 'Cisco Unified Call Manager',
'weight' => 160,
'header' => 2, #0 default, set to 1 to ignore the first line, or
# to higher numbers to ignore that number of lines
'type' => 'csv', #csv (default), fixedlength or xls
'sep_char' => ',', #for csv, defaults to ,
'disabled' => 0, #0 default, set to 1 to disable
'import_fields' => [
skip(2), #cdrRecordType
#globalCallID_callManagerId
'clid', #globalCallID_callId
skip(1), #origLegCallIdentifier
sub { my ($cdr, $calldate) = @_;
$cdr->set('startdate', $calldate);
$calldate = str2time($calldate);
$cdr->set('calldate', $calldate);
}, #dateTimeOrigination
skip(3), #origNodeId
#origSpan
#origIpAddr
'src', #callingPartyNumber
skip(20), #callingPartyUnicodeLoginUserID
#origCause_location
#origCause_value
#origPrecedenceLevel
#origMediaTransportAddress_IP
#origMediaTransportAddress_Port
#origMediaCap_payloadCapability
#origMediaCap_maxFramesPerPacket
#origMediaCap_g723BitRate
#origVideoCap_Codec
#origVideoCap_Bandwidth
#origVideoCap_Resolution
#origVideoTransportAddress_IP
#origVideoTransportAddress_Port
#origRSVPAudioStat
#origRSVPVideoStat
#destLegIdentifier
#destNodeId
#destSpan
#destIpAddr
sub { my ($cdr, $dst) = @_;
$dst =~ s/\#//;
$cdr->set('dst', $dst);
}, #originalCalledPartyNumber
skip(17), #finalCalledPartyNumber
#finalCalledPartyUnicodeLoginUserID
#destCause_location
#destCause_value
#destPrecedenceLevel
#destMediaTransportAddress_IP
#destMediaTransportAddress_Port
#destMediaCap_payloadCapability
#destMediaCap_maxFramesPerPacket
#destMediaCap_g723BitRate
#destVideoCap_Codec
#destVideoCap_Bandwidth
#destVideoCap_Resolution
#destVideoTransportAddress_IP
#destVideoTransportAddress_Port
#destRSVPAudioStat
#destRSVPVideoStat
'answerdate', #dateTimeConnect
'enddate', #dateTimeDisconnect
skip(3), #lastRedirectDn
#pkid
#originalCalledPartyNumberPartition
'accountcode', #callingPartyNumberPartition
skip(2), #finalCalledPartyNumberPartition
#lastRedirectDnPartition
'billsec', #duration
skip(23), #origDeviceName
#destDeviceName
#origCallTerminationOnBehalfOf
#destCallTerminationOnBehalfOf
#origCalledPartyRedirectOnBehalfOf
#lastRedirectRedirectOnBehalfOf
#origCalledPartyRedirectReason
#lastRedirectRedirectReason
#destConversationId
#globalCallId_ClusterID
#joinOnBehalfOf
#comment
#authCodeDescription
#authorizationLevel
#clientMatterCode
#origDTMFMethod
#destDTMFMethod
#callSecuredStatus
#origConversationId
#origMediaCap_Bandwidth
#destMediaCap_Bandwidth
#authorizationCodeValue
#outpulsedCallingPartyNumber
skip(23), #outpulsedCalledPartyNumber
#origIpv4v6Addr
#destIpv4v6Addr
#origVideoCap_Codec_Channel2
#origVideoCap_Bandwidth_Channel2
#origVideoCap_Resolution_Channel2
#origVideoTransportAddress_IP_Channel2
#origVideoTransportAddress_Port_Channel2
#origVideoChannel_Role_Channel2
#destVideoCap_Codec_Channel2
#destVideoCap_Bandwidth_Channel2
#destVideoCap_Resolution_Channel2
#destVideoTransportAddress_IP_Channel2
#destVideoTransportAddress_Port_Channel2
#destVideoChannel_Role_Channel2
#IncomingProtocolID
#IncomingProtocolCallRef
#OutgoingProtocolID
#OutgoingProtocolCallRef
#currentRoutingReason
#origRoutingReason
#lastRedirectingRoutingReason
#huntPilotPartition
#huntPilotDN
#calledPartyPatternUsage
],
);
sub skip { map {''} (1..$_[0]) }
1;
|