CDR updates; modularize CDR import formats; add formats for OpenSER, Genband/Tekelec...
[freeside.git] / FS / FS / cdr / genband.pm
1 package FS::cdr::genband;
2
3 use vars qw(@ISA %info);
4 use FS::cdr qw(_cdr_date_parser_maker);
5
6 @ISA = qw(FS::cdr);
7
8 %info = (
9   'name'          => 'GenBand (Tekelec)', #'Genband G6 (Tekelec T6000)',
10   'weight'        => 140,
11   'type'          => 'fixedlength',
12   'fixedlength_format' => [qw(
13     Type:2:1:2
14     Sequence:4:3:6
15     OIDCall:30:7:36
16     StartTime:19:37:55
17     AnswerTime:19:56:74
18     EndTime:19:75:93
19     SourceName:30:94:123
20     SourceEndName:30:124:153
21     SourceCallerID:20:154:173
22     SourceCallerName:30:174:203
23     DestinationName:30:204:233
24     DestinationEndName:30:234:263
25     DestCallerID:20:264:283
26     DestCallerIDInfo:30:284:313
27     DialedDigits:30:314:343
28     Billing:30:344:373
29     AuthCode:30:374:403
30     CallDirection:1:404:404
31     ExtendedCall:1:405:405
32     ExternalCall:1:406:406
33     Duration:9:407:415
34     SIPCallID:64:416:479
35     IncomingDigits:30:480:509
36     OutpulsedDigits:30:510:539
37     CarrierIdentificationCode:4:540:543
38     CompletionReason:4:544:547
39     OriginationPartition:30:548:577
40     DestinationPartition:30:578:607
41     BilledSourceDID:20:608:628
42     VideoCall:1:629:630
43   )],
44   'import_fields' => [
45     sub {}, #Type:2:1:2
46     sub {}, #Sequence:4:3:6
47     'uniqueid', #OIDCall:30:7:36
48     _cdr_date_parser_maker('startdate'), #StartTime:19:37:55
49     _cdr_date_parser_maker('answerdate'), #AnswerTime:19:56:74
50     _cdr_date_parser_maker('enddate'), #EndTime:19:75:93
51     #SourceName:30:94:123
52     'channel', #SourceEndName:30:124:153
53     'src', #SourceCallerID:20:154:173
54     'clid', #SourceCallerName:30:174:203
55     #DestinationName:30:204:233
56     'dstchannel', #DestinationEndName:30:234:263
57     'dst', #DestCallerID:20:264:283
58     #DestCallerIDInfo:30:284:313
59     #DialedDigits:30:314:343
60     #Billing:30:344:373
61     #AuthCode:30:374:403
62     #CallDirection:1:404:404
63     #ExtendedCall:1:405:405
64     #ExternalCall:1:406:406
65     'duration', #Duration:9:407:415
66     #SIPCallID:64:416:479
67     #IncomingDigits:30:480:509
68     #OutpulsedDigits:30:510:539
69     #CarrierIdentificationCode:4:540:543
70     #CompletionReason:4:544:547
71     #OriginationPartition:30:548:577
72     #DestinationPartition:30:578:607
73     #BilledSourceDID:20:608:628
74     #VideoCall:1:629:630
75   ],
76 );
77 #      acctid - primary key
78 #       calldate - Call timestamp (SQL timestamp)
79 #              clid - Caller*ID with text
80 #              src - Caller*ID number / Source number
81 #              dst - Destination extension
82 #       dcontext - Destination context
83 #              channel - Channel used
84 #              dstchannel - Destination channel if appropriate
85 #       lastapp - Last application if appropriate
86 #       lastdata - Last application data
87 #              startdate - Start of call (UNIX-style integer timestamp)
88 #              answerdate - Answer time of call (UNIX-style integer timestamp)
89 #              enddate - End time of call (UNIX-style integer timestamp)
90 #              duration - Total time in system, in seconds
91 #       billsec - Total time call is up, in seconds
92 #       disposition - What happened to the call: ANSWERED, NO ANSWER, BUSY
93 #       amaflags - What flags to use: BILL, IGNORE etc, specified on a per
94 #       channel basis like accountcode.
95 #       accountcode - CDR account number to use: account
96 #              uniqueid - Unique channel identifier (Unitel/RSLCOM Event ID)
97 #       userfield - CDR user-defined field
98 #       cdr_type - CDR type - see FS::cdr_type (Usage = 1, S&E = 7, OC&C = 8)
99 #       charged_party - Service number to be billed
100 #       upstream_currency - Wholesale currency from upstream
101 #       upstream_price - Wholesale price from upstream
102 #       upstream_rateplanid - Upstream rate plan ID
103 #       rated_price - Rated (or re-rated) price
104 #       distance - km (need units field?)
105 #       islocal - Local - 1, Non Local = 0
106 #       calltypenum - Type of call - see FS::cdr_calltype
107 #       description - Description (cdr_type 7&8 only) (used for
108 #       cust_bill_pkg.itemdesc)
109 #       quantity - Number of items (cdr_type 7&8 only)
110 #       carrierid - Upstream Carrier ID (see FS::cdr_carrier)
111 #       upstream_rateid - Upstream Rate ID
112 #       svcnum - Link to customer service (see FS::cust_svc)
113 #       freesidestatus - NULL, done (or something)
114
115 1;