diff --git a/data/conf/samples/multiplecdrc_fwexport.xml b/data/conf/samples/multiplecdrc_fwexport.xml new file mode 100644 index 000000000..88c6ae0bf --- /dev/null +++ b/data/conf/samples/multiplecdrc_fwexport.xml @@ -0,0 +1,100 @@ + + + + true + internal + csv + 0 + /var/log/cgrates/cdrc/in + /var/log/cgrates/cdrc/out + freeswitch_csv + + + + + + + + + + + + + + + + + + true + internal + csv + 5 + /var/log/cgrates/cdrc/in + /var/log/cgrates/cdrc/out + freeswitch_csv + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
\ No newline at end of file diff --git a/utils/coreutils.go b/utils/coreutils.go index 1a670a868..e5e4caa58 100644 --- a/utils/coreutils.go +++ b/utils/coreutils.go @@ -112,6 +112,7 @@ func ParseTimeDetectLayout(tmStr string) (time.Time, error) { gotimeRule := regexp.MustCompile(`^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}\.?\d*\s[+,-]\d+\s\w+$`) fsTimestamp := regexp.MustCompile(`^\d{16}$`) unixTimestampRule := regexp.MustCompile(`^\d{10}$`) + oneLineTimestampRule := regexp.MustCompile(`^\d{14}$`) switch { case rfc3339Rule.MatchString(tmStr): return time.Parse(time.RFC3339, tmStr) @@ -133,6 +134,8 @@ func ParseTimeDetectLayout(tmStr string) (time.Time, error) { } case tmStr == "0" || len(tmStr) == 0: // Time probably missing from request return nilTime, nil + case oneLineTimestampRule.MatchString(tmStr): + return time.Parse("20060102150405", tmStr) } return nilTime, errors.New("Unsupported time format") } diff --git a/utils/utils_test.go b/utils/utils_test.go index df7737a82..a86d60388 100644 --- a/utils/utils_test.go +++ b/utils/utils_test.go @@ -203,6 +203,14 @@ func TestParseTimeDetectLayout(t *testing.T) { } else if !fsTm.Equal(expectedTime) { t.Errorf("Unexpected time parsed: %v, expecting: %v", fsTm, expectedTime) } + onelineTmstampStr := "20131023215149" + olTm, err := ParseTimeDetectLayout(onelineTmstampStr) + expectedTime = time.Date(2013, 10, 23, 21, 51, 49, 0, time.UTC) + if err != nil { + t.Error(err) + } else if !olTm.Equal(expectedTime) { + t.Errorf("Unexpected time parsed: %v, expecting: %v", olTm, expectedTime) + } } func TestParseDateUnix(t *testing.T) {