Updated config file for ReadTheDocs and update Kamailio agent source.

This commit is contained in:
Trial97
2018-10-12 14:08:39 +03:00
committed by Dan Christian Bogos
parent bdc8064834
commit cfb3d15d79
5 changed files with 656 additions and 676 deletions

View File

@@ -24,7 +24,6 @@ import (
"time"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/sessions"
"github.com/cgrates/cgrates/utils"
)
@@ -124,38 +123,10 @@ func (kev KamEvent) AsMapStringInterface() (mp map[string]interface{}) {
mp[k] = v
}
}
mp[utils.EVENT_NAME] = utils.KamailioAgent
return
}
// AsCDR converts KamEvent into CDR
func (kev KamEvent) AsCDR(timezone string) (cdr *engine.CDR) {
cdr = new(engine.CDR)
cdr.ExtraFields = make(map[string]string)
for fld, val := range kev { // first ExtraFields so we can overwrite
if !utils.IsSliceMember(utils.PrimaryCdrFields, fld) &&
!utils.IsSliceMember(kamReservedCDRFields, fld) {
cdr.ExtraFields[fld] = val
}
if _, has := mp[utils.Source]; !has {
mp[utils.Source] = utils.KamailioAgent
}
cdr.ToR = utils.VOICE
cdr.OriginID = kev[utils.OriginID]
cdr.OriginHost = kev[utils.OriginHost]
cdr.Source = "KamailioEvent"
cdr.RequestType = utils.FirstNonEmpty(kev[utils.RequestType],
config.CgrConfig().GeneralCfg().DefaultReqType)
cdr.Tenant = utils.FirstNonEmpty(kev[utils.Tenant],
config.CgrConfig().GeneralCfg().DefaultTenant)
cdr.Category = utils.FirstNonEmpty(kev[utils.Category],
config.CgrConfig().GeneralCfg().DefaultCategory)
cdr.Account = kev[utils.Account]
cdr.Subject = kev[utils.Subject]
cdr.Destination = kev[utils.Destination]
cdr.SetupTime, _ = utils.ParseTimeDetectLayout(kev[utils.SetupTime], timezone)
cdr.AnswerTime, _ = utils.ParseTimeDetectLayout(kev[utils.AnswerTime], timezone)
cdr.Usage, _ = utils.ParseDurationWithSecs(kev[utils.Usage])
cdr.Cost = -1
return cdr
return
}
// AsCDR converts KamEvent into CGREvent

View File

@@ -95,46 +95,13 @@ func TestKamEvAsMapStringInterface(t *testing.T) {
expMp["from_tag"] = "bf71ad59"
expMp["to_tag"] = "7351fecf"
expMp["cgr_reqtype"] = utils.META_POSTPAID
expMp[utils.EVENT_NAME] = utils.KamailioAgent
expMp[utils.Source] = utils.KamailioAgent
rcv := kamEv.AsMapStringInterface()
if !reflect.DeepEqual(expMp, rcv) {
t.Errorf("Expecting: %+v, received: %+v", expMp, rcv)
}
}
func TestKamEvAsCDR(t *testing.T) {
timezone := config.CgrConfig().GeneralCfg().DefaultTimezone
expMp := make(map[string]string)
expMp["cgr_account"] = "1001"
expMp["cgr_duration"] = "3"
expMp["cgr_pdd"] = "4"
expMp["cgr_destination"] = "1002"
expMp[utils.CGR_SUPPLIER] = "supplier2"
expMp["cgr_answertime"] = "1419839310"
expMp[utils.CGR_DISCONNECT_CAUSE] = "200"
expMp["callid"] = "46c01a5c249b469e76333fc6bfa87f6a@0:0:0:0:0:0:0:0"
expMp["from_tag"] = "bf71ad59"
expMp["to_tag"] = "7351fecf"
expMp["cgr_reqtype"] = utils.META_POSTPAID
kamEv := KamEvent{"event": "CGR_CALL_END",
"callid": "46c01a5c249b469e76333fc6bfa87f6a@0:0:0:0:0:0:0:0",
"from_tag": "bf71ad59", "to_tag": "7351fecf",
"cgr_reqtype": utils.META_POSTPAID, "cgr_account": "1001",
"cgr_destination": "1002", "cgr_answertime": "1419839310",
"cgr_duration": "3", "cgr_pdd": "4",
utils.CGR_SUPPLIER: "supplier2",
utils.CGR_DISCONNECT_CAUSE: "200"}
eStoredCdr := &engine.CDR{
Tenant: "cgrates.org", Category: "call", Source: "KamailioEvent",
ToR: "*voice", Usage: 0, RequestType: "*rated",
ExtraFields: expMp, Cost: -1,
}
rcv := kamEv.AsCDR(timezone)
if !reflect.DeepEqual(eStoredCdr, rcv) {
t.Errorf("Expecting: %+v, received: %+v", eStoredCdr, rcv)
}
}
func TestKamEvAsCGREvent(t *testing.T) {
timezone := config.CgrConfig().GeneralCfg().DefaultTimezone
kamEv := KamEvent{"event": "CGR_CALL_END",

File diff suppressed because it is too large Load Diff

View File

@@ -56,7 +56,7 @@ fi
# Install the cdre folder
if [ ! -d $CDREDIR ]; then
mkdir -p $CDREDIR
chown $USER:$GROUP $CDREDIR
chown -R $USER:$GROUP $CDREDIR
fi
#

View File

@@ -355,11 +355,11 @@ func testCallCheckThreshold1002Before(t *testing.T) {
func testCallStartPjsuaListener(t *testing.T) {
var err error
acnts := []*engine.PjsuaAccount{
&engine.PjsuaAccount{Id: "sip:1001@127.0.0.1",
{Id: "sip:1001@127.0.0.1",
Username: "1001", Password: "CGRateS.org", Realm: "*", Registrar: "sip:127.0.0.1:5080"},
&engine.PjsuaAccount{Id: "sip:1002@127.0.0.1",
{Id: "sip:1002@127.0.0.1",
Username: "1002", Password: "CGRateS.org", Realm: "*", Registrar: "sip:127.0.0.1:5080"},
&engine.PjsuaAccount{Id: "sip:1003@127.0.0.1",
{Id: "sip:1003@127.0.0.1",
Username: "1003", Password: "CGRateS.org", Realm: "*", Registrar: "sip:127.0.0.1:5080"},
}
if tutorialCallsPjSuaListener, err = engine.StartPjsuaListener(
@@ -382,7 +382,7 @@ func testCallCall1001To1002(t *testing.T) {
func testCallGetActiveSessions(t *testing.T) {
var reply *[]*sessions.ActiveSession
expected := &[]*sessions.ActiveSession{
&sessions.ActiveSession{
{
ReqType: "*prepaid",
Tenant: "cgrates.org",
Category: "call",
@@ -697,8 +697,8 @@ func testCallSyncSessions(t *testing.T) {
sourceForCDR = "FS_CHANNEL_ANSWER"
numberOfCDR = 2
case utils.Kamailio:
sourceForCDR = utils.MetaSessionS + "_" + utils.KamailioAgent
numberOfCDR = 3 // in case of kamailio we get 3 CDRs (1 from first disconnect)
sourceForCDR = utils.KamailioAgent
numberOfCDR = 2
}
// verify cdr
var rplCdrs []*engine.ExternalCDR