CDRC to support supplier, disconnect_cause and pdd as primary fields

This commit is contained in:
DanB
2015-06-09 19:19:26 +02:00
parent 495bb1ba0c
commit d4b8bb96d2
2 changed files with 10 additions and 1 deletions

View File

@@ -67,6 +67,10 @@ func populateStoredCdrField(cdr *engine.StoredCdr, fieldId, fieldVal string) err
if cdr.SetupTime, err = utils.ParseTimeDetectLayout(fieldVal); err != nil {
return fmt.Errorf("Cannot parse answer time field with value: %s, err: %s", fieldVal, err.Error())
}
case utils.PDD:
if cdr.Pdd, err = utils.ParseDurationWithSecs(fieldVal); err != nil {
return fmt.Errorf("Cannot parse answer time field with value: %s, err: %s", fieldVal, err.Error())
}
case utils.ANSWER_TIME:
if cdr.AnswerTime, err = utils.ParseTimeDetectLayout(fieldVal); err != nil {
return fmt.Errorf("Cannot parse answer time field with value: %s, err: %s", fieldVal, err.Error())
@@ -75,6 +79,10 @@ func populateStoredCdrField(cdr *engine.StoredCdr, fieldId, fieldVal string) err
if cdr.Usage, err = utils.ParseDurationWithSecs(fieldVal); err != nil {
return fmt.Errorf("Cannot parse duration field with value: %s, err: %s", fieldVal, err.Error())
}
case utils.SUPPLIER:
cdr.Supplier = fieldVal
case utils.DISCONNECT_CAUSE:
cdr.DisconnectCause = fieldVal
default: // Extra fields will not match predefined so they all show up here
cdr.ExtraFields[fieldId] = fieldVal
}

View File

@@ -60,7 +60,8 @@ func TestRecordForkCdr(t *testing.T) {
SetupTime: time.Date(2013, 2, 3, 19, 50, 0, 0, time.UTC),
AnswerTime: time.Date(2013, 2, 3, 19, 54, 0, 0, time.UTC),
Usage: time.Duration(62) * time.Second,
ExtraFields: map[string]string{"supplier": "supplier1"},
Supplier: "supplier1",
ExtraFields: map[string]string{},
Cost: -1,
}
if !reflect.DeepEqual(expectedCdr, rtCdr) {