- sub { my($cdr, $data) = @_;
- $cdr->disposition(
- lc($data) eq 'yes' ?
- 'ANSWERED' : 'NO ANSWER') }, # 12: answerIndicator
- _cdr_date_parser_maker('answerdate'), # 13: answerTime
- _cdr_date_parser_maker('enddate'), # 14: releaseTime
- skip(17),
- sub { my($cdr, $accountcode) = @_;
- if ($cdr->is_tollfree){
- $cdr->set('accountcode', $cdr->dst);
- } else {
- $cdr->set('accountcode', $accountcode);
- }},
+
+ # 12: answerIndicator
+ sub {
+ my( $cdr, $data ) = @_;
+ $cdr->disposition( $data =~ /^yes/i ? 'ANSWERED' : 'NO ANSWER');
+ },
+
+ # 13: answerTime
+ _cdr_date_parser_maker('answerdate'),
+
+ # 14: releaseTime
+ _cdr_date_parser_maker('enddate'),
+
+ # 15: terminationCause
+ # 16: networkType
+ # 17: carrierIdentificationCode
+ # 18: dialedDigits
+ # 19: callCategory
+ # 20: networkCallType
+ # 21: networkTranslatedNumber
+ # 22: networkTranslatedGroup
+ # 23: releasingParty
+ # 24: route
+ skip(10),
+
+ # 25: networkCallID
+ 'sipcallid',
+
+ # 26: codedc
+ # 27: accessDeviceAddress
+ # 28: accessCallID
+ # 29: spare
+ # 30: failoverCorrelationId
+ # 31: spare
+ # 32: group
+ # 33: department
+ skip(8),
+
+ # 34: accountCode
+ 'accountcode',
+
+ # 35: authorizationCode
+ # 36: originalCalledNumber
+ # 37: originalCalledPresentationIndicator
+ # 38: originalCalledReason
+ # 39: redirectingNumber
+ # 40: redirectingPresentationIndicator
+ # 41: redirectingReason
+ # 42: chargeIndicator
+ # 43: typeOfNetwork
+ # 44: voicePortalCalling.invocationTime
+ # 45: localCallId
+ # 46: remoteCallId
+ # 47: callingPartyCategory
+ #
+ # Also... cols 48 - 448 see Broadsoft documentation
+ skip(87), #35-121 inclusive
+
+ #122: otherPartyName
+ 'clid',
+
+ skip(23), #123-145 inclusive
+
+ # 146: chargedNumber
+ 'charged_party',
+