From 7bd66530fe90eba40d27ef4667e0566efe0eb784 Mon Sep 17 00:00:00 2001 From: DanB Date: Wed, 4 Jun 2014 13:46:53 +0200 Subject: [PATCH] Fixup balance_debit command, cdrexporter supporting http_post field values --- cdre/cdrexporter.go | 5 +++++ config/xmlcdre_test.go | 9 +++++++++ console/balance_debit.go | 4 ++-- 3 files changed, 16 insertions(+), 2 deletions(-) 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 {