diff --git a/cdre/cdrexporter.go b/cdre/cdrexporter.go index e845ffdb7..fedf0aa5d 100644 --- a/cdre/cdrexporter.go +++ b/cdre/cdrexporter.go @@ -37,6 +37,7 @@ const ( CONSTANT = "constant" METATAG = "metatag" CONCATENATED_CDRFIELD = "concatenated_cdrfield" + HTTP_POST = "http_post" META_EXPORTID = "export_id" META_TIMENOW = "time_now" META_FIRSTCDRATIME = "first_cdr_atime" @@ -259,6 +260,10 @@ func (cdre *CdrExporter) processCdr(cdr *utils.StoredCdr) error { outVal = cfgFld.Value case utils.CDRFIELD: outVal, err = cdre.cdrFieldValue(cdr, cfgFld.ValueAsRSRField(), cfgFld.Layout) + case HTTP_POST: + if outValByte, err := utils.HttpJsonPost(cfgFld.Value, cdr); err == nil { + outVal = string(outValByte) + } case CONCATENATED_CDRFIELD: for _, fld := range strings.Split(cfgFld.Value, ",") { if fldOut, err := cdre.cdrFieldValue(cdr, &utils.RSRField{Id: fld}, cfgFld.Layout); err != nil { diff --git a/config/xmlcdre_test.go b/config/xmlcdre_test.go index 287261b70..df82c360c 100644 --- a/config/xmlcdre_test.go +++ b/config/xmlcdre_test.go @@ -163,6 +163,7 @@ func TestXmlCdreCfgAsCdreConfig(t *testing.T) { + @@ -229,6 +230,14 @@ func TestXmlCdreCfgAsCdreConfig(t *testing.T) { Value: "3", Width: 1, }, + &CdreCdrField{ + Name: "FromHttpPost1", + Type: "http_post", + Value: "https://localhost:8000", + Width: 10, + Strip: "xright", + Padding: "left", + }, } eCdreCfg.TrailerFields = []*CdreCdrField{ &CdreCdrField{ diff --git a/console/balance_debit.go b/console/balance_debit.go index 3327a6198..c55f460b2 100644 --- a/console/balance_debit.go +++ b/console/balance_debit.go @@ -56,8 +56,8 @@ func (self *CmdDebitBalance) RpcParams() interface{} { } func (self *CmdDebitBalance) RpcResult() interface{} { - var s string - return &s + var cc engine.CallDescriptor + return &cc } func (self *CmdDebitBalance) ClientArgs() []string {