diff --git a/agents/agentreq.go b/agents/agentreq.go index 8e9bc9709..6a297b942 100644 --- a/agents/agentreq.go +++ b/agents/agentreq.go @@ -155,8 +155,14 @@ func (aReq *AgentRequest) ParseField( if len(cfgFld.Value) != 2 { return nil, fmt.Errorf("invalid arguments <%s>", utils.ToJSON(cfgFld.Value)) } else { - strVal1, err := aReq.FieldAsString(strings.Split(cfgFld.Value[0].Rules, utils.NestingSep)) - strVal2, err := aReq.FieldAsString(strings.Split(cfgFld.Value[1].Rules, utils.NestingSep)) + strVal1, err := cfgFld.Value[0].ParseDataProvider(aReq) + if err != nil { + return "", err + } + strVal2, err := cfgFld.Value[1].ParseDataProvider(aReq) + if err != nil { + return "", err + } tEnd, err := utils.ParseTimeDetectLayout(strVal1, cfgFld.Timezone) if err != nil { return "", err diff --git a/agents/httpagent_it_test.go b/agents/httpagent_it_test.go index e9092ba53..8142583be 100644 --- a/agents/httpagent_it_test.go +++ b/agents/httpagent_it_test.go @@ -152,7 +152,7 @@ func TestHAitCDRmtcall(t *testing.T) { t.Errorf("expecting: <%s>, received: <%s>", string(eXml), string(body)) } rply.Body.Close() - time.Sleep(10 * time.Millisecond) + time.Sleep(50 * time.Millisecond) var cdrs []*engine.ExternalCDR req := utils.RPCCDRsFilter{RunIDs: []string{utils.META_DEFAULT}} if err := haRPC.Call("ApierV2.GetCdrs", req, &cdrs); err != nil { diff --git a/data/conf/samples/httpagent/httpagent.json b/data/conf/samples/httpagent/httpagent.json index 60773ab69..7cfd6be3d 100644 --- a/data/conf/samples/httpagent/httpagent.json +++ b/data/conf/samples/httpagent/httpagent.json @@ -72,7 +72,7 @@ {"id": "AnswerTime", "field_id": "SetupTime", "type": "*composed", "value": "~*req.timestamp", "mandatory": true}, {"id": "Usage", "field_id": "Usage", "type": "*composed", - "value": "~*req.leg_duration;^s", "mandatory": true}, + "value": "~*req.leg_duration;s", "mandatory": true}, ], "reply_fields":[ {"id": "CDR_ID", "field_id": "CDR_RESPONSE.CDR_ID", "type": "*composed",