mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-14 20:59:53 +05:00
Corelate CgrIds between FS answer_event and FsJsonCdr
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_epoch"
|
||||
FS_SETUP_TIME = "start_epoch"
|
||||
FS_ANSWER_TIME = "answer_epoch"
|
||||
FS_HANGUP_TIME = "end_epoch"
|
||||
FS_PARK_TIME = "start_uepoch"
|
||||
FS_SETUP_TIME = "start_uepoch"
|
||||
FS_ANSWER_TIME = "answer_uepoch"
|
||||
FS_HANGUP_TIME = "end_uepoch"
|
||||
FS_DURATION = "billsec"
|
||||
FS_USERNAME = "user_name"
|
||||
FS_IP = "sip_local_network_addr"
|
||||
@@ -155,19 +155,13 @@ func (fsCdr FSCdr) searchExtraField(field string, body map[string]interface{}) (
|
||||
}
|
||||
|
||||
func (fsCdr FSCdr) GetSetupTime() (t time.Time, err error) {
|
||||
at, err := strconv.ParseInt(fsCdr.vars[FS_SETUP_TIME], 0, 64)
|
||||
t = time.Unix(at, 0)
|
||||
return
|
||||
return utils.ParseTimeDetectLayout(fsCdr.vars[FS_SETUP_TIME])
|
||||
}
|
||||
func (fsCdr FSCdr) GetAnswerTime() (t time.Time, err error) {
|
||||
at, err := strconv.ParseInt(fsCdr.vars[FS_ANSWER_TIME], 0, 64)
|
||||
t = time.Unix(at, 0)
|
||||
return
|
||||
return utils.ParseTimeDetectLayout(fsCdr.vars[FS_ANSWER_TIME])
|
||||
}
|
||||
func (fsCdr FSCdr) GetHangupTime() (t time.Time, err error) {
|
||||
hupt, err := strconv.ParseInt(fsCdr.vars[FS_HANGUP_TIME], 0, 64)
|
||||
t = time.Unix(hupt, 0)
|
||||
return
|
||||
return utils.ParseTimeDetectLayout(fsCdr.vars[FS_HANGUP_TIME])
|
||||
}
|
||||
|
||||
// Extracts duration as considered by the telecom switch
|
||||
|
||||
@@ -78,17 +78,17 @@ func TestCDRFields(t *testing.T) {
|
||||
if fsCdr.GetReqType() != utils.RATED {
|
||||
t.Error("Error parsing cdr: ", fsCdr)
|
||||
}
|
||||
expectedSTime, _ := time.Parse(time.RFC3339, "2013-08-04T09:50:54Z")
|
||||
expectedSTime := time.Date(2013, 8, 4, 9, 50, 54, 385581000, time.UTC)
|
||||
if setupTime.UTC() != expectedSTime {
|
||||
t.Error("Error parsing cdr: ", fsCdr)
|
||||
t.Error("Error parsing setupTime: ", setupTime.UTC())
|
||||
}
|
||||
answerTime, _ := fsCdr.GetAnswerTime()
|
||||
expectedATime, _ := time.Parse(time.RFC3339, "2013-08-04T09:50:56Z")
|
||||
expectedATime := time.Date(2013, 8, 4, 9, 50, 56, 285587000, time.UTC)
|
||||
if answerTime.UTC() != expectedATime {
|
||||
t.Error("Error parsing cdr: ", fsCdr)
|
||||
t.Error("Error parsing answerTime: ", answerTime.UTC())
|
||||
}
|
||||
if fsCdr.GetDuration() != 4000000000 {
|
||||
t.Error("Error parsing cdr: ", fsCdr)
|
||||
t.Error("Error parsing duration: ", fsCdr.GetDuration())
|
||||
}
|
||||
cfg.CDRSExtraFields = []*utils.RSRField{&utils.RSRField{Id: "sip_user_agent"}, &utils.RSRField{Id: "read_codec"}, &utils.RSRField{Id: "write_codec"}}
|
||||
extraFields := fsCdr.GetExtraFields()
|
||||
|
||||
@@ -16,7 +16,7 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
*/
|
||||
|
||||
package engine
|
||||
package charging_tests
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
@@ -23,7 +23,6 @@ import (
|
||||
"github.com/cgrates/cgrates/config"
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
"github.com/cgrates/fsock"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
@@ -166,9 +165,7 @@ func (fsev FSEvent) GetAnswerTime(fieldName string) (t time.Time, err error) {
|
||||
}
|
||||
|
||||
func (fsev FSEvent) GetEndTime() (t time.Time, err error) {
|
||||
st, err := strconv.ParseInt(fsev[END_TIME], 0, 64)
|
||||
t = time.Unix(0, st*1000)
|
||||
return
|
||||
return utils.ParseTimeDetectLayout(fsev[END_TIME])
|
||||
}
|
||||
|
||||
func (fsev FSEvent) GetDuration(fieldName string) (dur time.Duration, err error) {
|
||||
|
||||
Reference in New Issue
Block a user