mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Discarding FS microseconds information, reverting to seconds since MySQL errors in older versions and default FS csv file uses seconds
This commit is contained in:
@@ -43,10 +43,10 @@ const (
|
||||
FS_UUID = "uuid" // -Unique ID for this call leg
|
||||
FS_CSTMID = "cgr_tenant"
|
||||
FS_CALL_DEST_NR = "dialed_extension"
|
||||
FS_PARK_TIME = "start_uepoch"
|
||||
FS_SETUP_TIME = "start_uepoch"
|
||||
FS_ANSWER_TIME = "answer_uepoch"
|
||||
FS_HANGUP_TIME = "end_uepoch"
|
||||
FS_PARK_TIME = "start_epoch"
|
||||
FS_SETUP_TIME = "start_epoch"
|
||||
FS_ANSWER_TIME = "answer_epoch"
|
||||
FS_HANGUP_TIME = "end_epoch"
|
||||
FS_DURATION = "billsec"
|
||||
FS_USERNAME = "user_name"
|
||||
FS_IP = "sip_local_network_addr"
|
||||
|
||||
@@ -78,12 +78,12 @@ func TestCDRFields(t *testing.T) {
|
||||
if fsCdr.GetReqType() != utils.RATED {
|
||||
t.Error("Error parsing cdr: ", fsCdr)
|
||||
}
|
||||
expectedSTime := time.Date(2013, 8, 4, 9, 50, 54, 385581000, time.UTC)
|
||||
expectedSTime := time.Date(2013, 8, 4, 9, 50, 54, 0, time.UTC)
|
||||
if setupTime.UTC() != expectedSTime {
|
||||
t.Error("Error parsing setupTime: ", setupTime.UTC())
|
||||
}
|
||||
answerTime, _ := fsCdr.GetAnswerTime()
|
||||
expectedATime := time.Date(2013, 8, 4, 9, 50, 56, 285587000, time.UTC)
|
||||
expectedATime := time.Date(2013, 8, 4, 9, 50, 56, 0, time.UTC)
|
||||
if answerTime.UTC() != expectedATime {
|
||||
t.Error("Error parsing answerTime: ", answerTime.UTC())
|
||||
}
|
||||
|
||||
@@ -150,14 +150,24 @@ func (fsev FSEvent) MissingParameter() bool {
|
||||
strings.TrimSpace(fsev.GetCallDestNr("")) == ""
|
||||
}
|
||||
func (fsev FSEvent) GetSetupTime(fieldName string) (t time.Time, err error) {
|
||||
sTimeStr := utils.FirstNonEmpty(fsev[fieldName], fsev[SETUP_TIME])
|
||||
fsSTimeStr, hasKey := fsev[SETUP_TIME]
|
||||
if hasKey {
|
||||
// Discard the nanoseconds information since MySQL cannot store them in early versions and csv uses default seconds so cgrid will not corelate
|
||||
fsSTimeStr = fsSTimeStr[:len(fsSTimeStr)-6]
|
||||
}
|
||||
sTimeStr := utils.FirstNonEmpty(fsev[fieldName], fsSTimeStr)
|
||||
if strings.HasPrefix(fieldName, utils.STATIC_VALUE_PREFIX) { // Static value
|
||||
sTimeStr = fieldName[len(utils.STATIC_VALUE_PREFIX):]
|
||||
}
|
||||
return utils.ParseTimeDetectLayout(sTimeStr)
|
||||
}
|
||||
func (fsev FSEvent) GetAnswerTime(fieldName string) (t time.Time, err error) {
|
||||
aTimeStr := utils.FirstNonEmpty(fsev[fieldName], fsev[ANSWER_TIME])
|
||||
fsATimeStr, hasKey := fsev[ANSWER_TIME]
|
||||
if hasKey {
|
||||
// Discard the nanoseconds information since MySQL cannot store them in early versions and csv uses default seconds so cgrid will not corelate
|
||||
fsATimeStr = fsATimeStr[:len(fsATimeStr)-6]
|
||||
}
|
||||
aTimeStr := utils.FirstNonEmpty(fsev[fieldName], fsATimeStr)
|
||||
if strings.HasPrefix(fieldName, utils.STATIC_VALUE_PREFIX) { // Static value
|
||||
aTimeStr = fieldName[len(utils.STATIC_VALUE_PREFIX):]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user