mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Responder ignoring ErrNotFound from AttributeS
This commit is contained in:
@@ -428,14 +428,15 @@ func (fsev FSEvent) AsCallDescriptor() (*engine.CallDescriptor, error) {
|
||||
return lcrReq.AsCallDescriptor(config.CgrConfig().DefaultTimezone)
|
||||
}
|
||||
|
||||
func (fsev FSEvent) AsMapStringIface() (map[string]interface{}, error) {
|
||||
return nil, utils.ErrNotImplemented
|
||||
}
|
||||
|
||||
// V1AuthorizeArgs returns the arguments used in SMGv1.Authorize
|
||||
func (fsev FSEvent) V1AuthorizeArgs() (args *sessionmanager.V1AuthorizeArgs) {
|
||||
args = &sessionmanager.V1AuthorizeArgs{ // defaults
|
||||
GetMaxUsage: true,
|
||||
CGREvent: utils.CGREvent{
|
||||
Tenant: fsev.GetTenant(utils.META_DEFAULT),
|
||||
ID: utils.UUIDSha1Prefix(),
|
||||
Event: fsev.AsMapStringInterface(config.CgrConfig().DefaultTimezone),
|
||||
},
|
||||
}
|
||||
subsystems, has := fsev[VarCGRSubsystems]
|
||||
if !has {
|
||||
@@ -460,6 +461,11 @@ func (fsev FSEvent) V1AuthorizeArgs() (args *sessionmanager.V1AuthorizeArgs) {
|
||||
func (fsev FSEvent) V1InitSessionArgs() (args *sessionmanager.V1InitSessionArgs) {
|
||||
args = &sessionmanager.V1InitSessionArgs{ // defaults
|
||||
InitSession: true,
|
||||
CGREvent: utils.CGREvent{
|
||||
Tenant: fsev.GetTenant(utils.META_DEFAULT),
|
||||
ID: utils.UUIDSha1Prefix(),
|
||||
Event: fsev.AsMapStringInterface(config.CgrConfig().DefaultTimezone),
|
||||
},
|
||||
}
|
||||
subsystems, has := fsev[VarCGRSubsystems]
|
||||
if !has {
|
||||
@@ -481,6 +487,11 @@ func (fsev FSEvent) V1InitSessionArgs() (args *sessionmanager.V1InitSessionArgs)
|
||||
func (fsev FSEvent) V1UpdateSessionArgs() (args *sessionmanager.V1UpdateSessionArgs) {
|
||||
args = &sessionmanager.V1UpdateSessionArgs{ // defaults
|
||||
UpdateSession: true,
|
||||
CGREvent: utils.CGREvent{
|
||||
Tenant: fsev.GetTenant(utils.META_DEFAULT),
|
||||
ID: utils.UUIDSha1Prefix(),
|
||||
Event: fsev.AsMapStringInterface(config.CgrConfig().DefaultTimezone),
|
||||
},
|
||||
}
|
||||
subsystems, has := fsev[VarCGRSubsystems]
|
||||
if !has {
|
||||
@@ -499,6 +510,11 @@ func (fsev FSEvent) V1UpdateSessionArgs() (args *sessionmanager.V1UpdateSessionA
|
||||
func (fsev FSEvent) V1TerminateSessionArgs() (args *sessionmanager.V1TerminateSessionArgs) {
|
||||
args = &sessionmanager.V1TerminateSessionArgs{ // defaults
|
||||
TerminateSession: true,
|
||||
CGREvent: utils.CGREvent{
|
||||
Tenant: fsev.GetTenant(utils.META_DEFAULT),
|
||||
ID: utils.UUIDSha1Prefix(),
|
||||
Event: fsev.AsMapStringInterface(config.CgrConfig().DefaultTimezone),
|
||||
},
|
||||
}
|
||||
subsystems, has := fsev[VarCGRSubsystems]
|
||||
if !has {
|
||||
|
||||
@@ -170,7 +170,8 @@ func TestSSv1ItAuth(t *testing.T) {
|
||||
ID: "TestSSv1ItAuth",
|
||||
Context: utils.StringPointer(utils.MetaSessionS),
|
||||
Event: map[string]interface{}{
|
||||
"Account": "1001", "Destination": "1002",
|
||||
"Account": "1001",
|
||||
"Destination": "1002",
|
||||
"OfficeGroup": "Marketing",
|
||||
"OriginID": "TestSSv1It1",
|
||||
"RequestType": "*prepaid",
|
||||
@@ -224,7 +225,8 @@ func TestSSv1ItInitiateSession(t *testing.T) {
|
||||
ID: "TestSSv1ItInitiateSession",
|
||||
Context: utils.StringPointer(utils.MetaSessionS),
|
||||
Event: map[string]interface{}{
|
||||
"Account": "1001", "Destination": "1002",
|
||||
"Account": "1001",
|
||||
"Destination": "1002",
|
||||
"OfficeGroup": "Marketing",
|
||||
"OriginID": "TestSSv1It1",
|
||||
"RequestType": "*prepaid",
|
||||
|
||||
@@ -442,7 +442,7 @@ func (self *CGRConfig) checkConfigSanity() error {
|
||||
if self.fsAgentCfg.Enabled {
|
||||
for _, connCfg := range self.fsAgentCfg.SessionSConns {
|
||||
if connCfg.Address != utils.MetaInternal {
|
||||
return errors.New("Only <*internal> connectivity allowed in in SMFreeSWITCH towards SMG for now")
|
||||
return errors.New("Only <*internal> connectivity allowed in in FreeSWITCHAgent towards SessionS for now")
|
||||
}
|
||||
if connCfg.Address == utils.MetaInternal &&
|
||||
!self.sessionSCfg.Enabled {
|
||||
|
||||
@@ -49,19 +49,19 @@
|
||||
"sessions": {
|
||||
"enabled": true,
|
||||
"rals_conns": [
|
||||
{"address": "*internal"}
|
||||
{"address": "127.0.0.1:2012", "transport": "*json"}
|
||||
],
|
||||
"cdrs_conns": [
|
||||
{"address": "*internal"}
|
||||
{"address": "127.0.0.1:2012", "transport": "*json"}
|
||||
],
|
||||
"resources_conns": [
|
||||
{"address": "*internal"}
|
||||
{"address": "127.0.0.1:2012", "transport": "*json"}
|
||||
],
|
||||
"suppliers_conns": [
|
||||
{"address": "*internal"}
|
||||
{"address": "127.0.0.1:2012", "transport": "*json"}
|
||||
],
|
||||
"attributes_conns": [
|
||||
{"address": "*internal"}
|
||||
{"address": "127.0.0.1:2012", "transport": "*json"}
|
||||
],
|
||||
"debit_interval": "10s",
|
||||
},
|
||||
@@ -69,9 +69,6 @@
|
||||
|
||||
"freeswitch_agent": {
|
||||
"enabled": true,
|
||||
"sessions_conns": [
|
||||
{"address": "*internal"}
|
||||
],
|
||||
"event_socket_conns":[
|
||||
{"address": "10.10.10.204:8021", "password": "ClueCon", "reconnects": 5}
|
||||
],
|
||||
|
||||
@@ -89,12 +89,14 @@ func (rs *Responder) GetCost(arg *CallDescriptor, reply *CallCost) (err error) {
|
||||
if rs.AttributeS != nil {
|
||||
var rplyEv AttrSProcessEventReply
|
||||
if err = rs.AttributeS.Call(utils.AttributeSv1ProcessEvent,
|
||||
arg.AsCGREvent(), &rplyEv); err != nil {
|
||||
return
|
||||
}
|
||||
if err = arg.UpdateFromCGREvent(rplyEv.CGREvent,
|
||||
rplyEv.AlteredFields); err != nil {
|
||||
return
|
||||
arg.AsCGREvent(), &rplyEv); err != nil &&
|
||||
err.Error() != utils.ErrNotFound.Error() {
|
||||
return utils.NewErrAttributeS(err)
|
||||
} else if err == nil {
|
||||
if err = arg.UpdateFromCGREvent(rplyEv.CGREvent,
|
||||
rplyEv.AlteredFields); err != nil {
|
||||
return utils.NewErrAttributeS(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
// replace user profile fields
|
||||
@@ -136,12 +138,14 @@ func (rs *Responder) Debit(arg *CallDescriptor, reply *CallCost) (err error) {
|
||||
if rs.AttributeS != nil {
|
||||
var rplyEv AttrSProcessEventReply
|
||||
if err = rs.AttributeS.Call(utils.AttributeSv1ProcessEvent,
|
||||
arg.AsCGREvent(), &rplyEv); err != nil {
|
||||
return
|
||||
}
|
||||
if err = arg.UpdateFromCGREvent(rplyEv.CGREvent,
|
||||
rplyEv.AlteredFields); err != nil {
|
||||
return
|
||||
arg.AsCGREvent(), &rplyEv); err != nil &&
|
||||
err.Error() != utils.ErrNotFound.Error() {
|
||||
return utils.NewErrAttributeS(err)
|
||||
} else if err == nil {
|
||||
if err = arg.UpdateFromCGREvent(rplyEv.CGREvent,
|
||||
rplyEv.AlteredFields); err != nil {
|
||||
return utils.NewErrAttributeS(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
// replace user profile fields
|
||||
@@ -187,12 +191,14 @@ func (rs *Responder) MaxDebit(arg *CallDescriptor, reply *CallCost) (err error)
|
||||
if rs.AttributeS != nil {
|
||||
var rplyEv AttrSProcessEventReply
|
||||
if err = rs.AttributeS.Call(utils.AttributeSv1ProcessEvent,
|
||||
arg.AsCGREvent(), &rplyEv); err != nil {
|
||||
return
|
||||
}
|
||||
if err = arg.UpdateFromCGREvent(rplyEv.CGREvent,
|
||||
rplyEv.AlteredFields); err != nil {
|
||||
return
|
||||
arg.AsCGREvent(), &rplyEv); err != nil &&
|
||||
err.Error() != utils.ErrNotFound.Error() {
|
||||
return utils.NewErrAttributeS(err)
|
||||
} else if err == nil {
|
||||
if err = arg.UpdateFromCGREvent(rplyEv.CGREvent,
|
||||
rplyEv.AlteredFields); err != nil {
|
||||
return utils.NewErrAttributeS(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
// replace user profile fields
|
||||
@@ -245,12 +251,14 @@ func (rs *Responder) RefundIncrements(arg *CallDescriptor, reply *float64) (err
|
||||
if rs.AttributeS != nil {
|
||||
var rplyEv AttrSProcessEventReply
|
||||
if err = rs.AttributeS.Call(utils.AttributeSv1ProcessEvent,
|
||||
arg.AsCGREvent(), &rplyEv); err != nil {
|
||||
return
|
||||
}
|
||||
if err = arg.UpdateFromCGREvent(rplyEv.CGREvent,
|
||||
rplyEv.AlteredFields); err != nil {
|
||||
return
|
||||
arg.AsCGREvent(), &rplyEv); err != nil &&
|
||||
err.Error() != utils.ErrNotFound.Error() {
|
||||
return utils.NewErrAttributeS(err)
|
||||
} else if err == nil {
|
||||
if err = arg.UpdateFromCGREvent(rplyEv.CGREvent,
|
||||
rplyEv.AlteredFields); err != nil {
|
||||
return utils.NewErrAttributeS(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
// replace user profile fields
|
||||
@@ -298,12 +306,14 @@ func (rs *Responder) RefundRounding(arg *CallDescriptor, reply *float64) (err er
|
||||
if rs.AttributeS != nil {
|
||||
var rplyEv AttrSProcessEventReply
|
||||
if err = rs.AttributeS.Call(utils.AttributeSv1ProcessEvent,
|
||||
arg.AsCGREvent(), &rplyEv); err != nil {
|
||||
return
|
||||
}
|
||||
if err = arg.UpdateFromCGREvent(rplyEv.CGREvent,
|
||||
rplyEv.AlteredFields); err != nil {
|
||||
return
|
||||
arg.AsCGREvent(), &rplyEv); err != nil &&
|
||||
err.Error() != utils.ErrNotFound.Error() {
|
||||
return utils.NewErrAttributeS(err)
|
||||
} else if err == nil {
|
||||
if err = arg.UpdateFromCGREvent(rplyEv.CGREvent,
|
||||
rplyEv.AlteredFields); err != nil {
|
||||
return utils.NewErrAttributeS(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
// replace user profile fields
|
||||
@@ -344,12 +354,14 @@ func (rs *Responder) GetMaxSessionTime(arg *CallDescriptor, reply *float64) (err
|
||||
if rs.AttributeS != nil {
|
||||
var rplyEv AttrSProcessEventReply
|
||||
if err = rs.AttributeS.Call(utils.AttributeSv1ProcessEvent,
|
||||
arg.AsCGREvent(), &rplyEv); err != nil {
|
||||
return
|
||||
}
|
||||
if err = arg.UpdateFromCGREvent(rplyEv.CGREvent,
|
||||
rplyEv.AlteredFields); err != nil {
|
||||
return
|
||||
arg.AsCGREvent(), &rplyEv); err != nil &&
|
||||
err.Error() != utils.ErrNotFound.Error() {
|
||||
return utils.NewErrAttributeS(err)
|
||||
} else if err == nil {
|
||||
if err = arg.UpdateFromCGREvent(rplyEv.CGREvent,
|
||||
rplyEv.AlteredFields); err != nil {
|
||||
return utils.NewErrAttributeS(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
// replace user profile fields
|
||||
@@ -392,12 +404,14 @@ func (rs *Responder) GetDerivedMaxSessionTime(ev *CDR, reply *float64) (err erro
|
||||
if rs.AttributeS != nil {
|
||||
var rplyEv AttrSProcessEventReply
|
||||
if err = rs.AttributeS.Call(utils.AttributeSv1ProcessEvent,
|
||||
ev.AsCGREvent(), &rplyEv); err != nil {
|
||||
return
|
||||
}
|
||||
if err = ev.UpdateFromCGREvent(rplyEv.CGREvent,
|
||||
rplyEv.AlteredFields); err != nil {
|
||||
return
|
||||
ev.AsCGREvent(), &rplyEv); err != nil &&
|
||||
err.Error() != utils.ErrNotFound.Error() {
|
||||
return utils.NewErrAttributeS(err)
|
||||
} else if err == nil {
|
||||
if err = ev.UpdateFromCGREvent(rplyEv.CGREvent,
|
||||
rplyEv.AlteredFields); err != nil {
|
||||
return utils.NewErrAttributeS(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
// replace user profile fields
|
||||
@@ -511,12 +525,14 @@ func (rs *Responder) GetSessionRuns(ev *CDR, sRuns *[]*SessionRun) (err error) {
|
||||
if rs.AttributeS != nil {
|
||||
var rplyEv AttrSProcessEventReply
|
||||
if err = rs.AttributeS.Call(utils.AttributeSv1ProcessEvent,
|
||||
ev.AsCGREvent(), &rplyEv); err != nil {
|
||||
return
|
||||
}
|
||||
if err = ev.UpdateFromCGREvent(rplyEv.CGREvent,
|
||||
rplyEv.AlteredFields); err != nil {
|
||||
return
|
||||
ev.AsCGREvent(), &rplyEv); err != nil &&
|
||||
err.Error() != utils.ErrNotFound.Error() {
|
||||
return utils.NewErrAttributeS(err)
|
||||
} else if err == nil {
|
||||
if err = ev.UpdateFromCGREvent(rplyEv.CGREvent,
|
||||
rplyEv.AlteredFields); err != nil {
|
||||
return utils.NewErrAttributeS(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
//utils.Logger.Info(fmt.Sprintf("DC before: %+v", ev))
|
||||
@@ -619,17 +635,6 @@ func (rs *Responder) GetLCR(attrs *AttrGetLcr, reply *LCRCost) (err error) {
|
||||
if attrs.CallDescriptor.Subject == "" {
|
||||
attrs.CallDescriptor.Subject = attrs.CallDescriptor.Account
|
||||
}
|
||||
if rs.AttributeS != nil {
|
||||
var rplyEv AttrSProcessEventReply
|
||||
if err = rs.AttributeS.Call(utils.AttributeSv1ProcessEvent,
|
||||
attrs.CallDescriptor.AsCGREvent(), &rplyEv); err != nil {
|
||||
return
|
||||
}
|
||||
if err = attrs.CallDescriptor.UpdateFromCGREvent(rplyEv.CGREvent,
|
||||
rplyEv.AlteredFields); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
// replace user profile fields
|
||||
if err := LoadUserProfile(attrs.CallDescriptor, utils.EXTRA_FIELDS); err != nil {
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user