CDR updates; modularize CDR import formats; add formats for OpenSER, Genband/Tekelec...
[freeside.git] / FS / FS / cdr / asterisk.pm
1 package FS::cdr::asterisk;
2
3 use vars qw(@ISA %info);
4 use FS::cdr qw(_cdr_date_parser_maker);
5
6 @ISA = qw(FS::cdr);
7
8 #http://www.the-asterisk-book.com/unstable/funktionen-cdr.html
9 my %amaflags = (
10   DEFAULT       => 0,
11   OMIT          => 1, #asterisk 1.4+
12   IGNORE        => 1, #asterisk 1.2
13   BILLING       => 2, #asterisk 1.4+
14   BILL          => 2, #asterisk 1.2
15   DOCUMENTATION => 3,
16   #? '' => 0,
17 );
18
19 %info = (
20   'name'          => 'Asterisk',
21   'weight'        => 10,
22   'import_fields' => [
23     'accountcode',
24     'src',
25     'dst',
26     'dcontext',
27     'clid',
28     'channel',
29     'dstchannel',
30     'lastapp',
31     'lastdata',
32     _cdr_date_parser_maker('startdate'),
33     _cdr_date_parser_maker('answerdate'),
34     _cdr_date_parser_maker('enddate'),
35     'duration',
36     'billsec',
37     'disposition',
38     sub { my($cdr, $amaflags) = @_; $cdr->amaflags($amaflags{$amaflags}); },
39     'uniqueid',
40     'userfield',
41   ],
42 );
43
44 1;