SMGeneric Start/End session, process CDR methods

This commit is contained in:
DanB
2015-11-12 18:10:34 +01:00
parent d8374fa8e0
commit 1b85fa6fdd
6 changed files with 80 additions and 38 deletions

View File

@@ -72,18 +72,22 @@ func (self *SMGenericBiRpcV1) GetLcrSuppliers(clnt *rpc2.Client, ev sessionmanag
// Called on session start, returns the maximum number of seconds the session can last
func (self *SMGenericBiRpcV1) SessionStart(clnt *rpc2.Client, ev sessionmanager.SMGenericEvent, maxUsage *float64) error {
if err := self.sm.SessionStart(ev, clnt); err != nil {
if minMaxUsage, err := self.sm.SessionStart(ev, clnt); err != nil {
return utils.NewErrServerError(err)
} else {
*maxUsage = minMaxUsage.Seconds()
}
return self.GetMaxUsage(clnt, ev, maxUsage)
return nil
}
// Interim updates, returns remaining duration from the rater
func (self *SMGenericBiRpcV1) SessionUpdate(clnt *rpc2.Client, ev sessionmanager.SMGenericEvent, maxUsage *float64) error {
if err := self.sm.SessionUpdate(ev, clnt); err != nil {
if minMaxUsage, err := self.sm.SessionUpdate(ev, clnt); err != nil {
return utils.NewErrServerError(err)
} else {
*maxUsage = minMaxUsage.Seconds()
}
return self.GetMaxUsage(clnt, ev, maxUsage)
return nil
}
// Called on session end, should stop debit loop

View File

@@ -42,18 +42,22 @@ func (self *SMGenericV1) GetLcrSuppliers(ev sessionmanager.SMGenericEvent, suppl
// Called on session start, returns the maximum number of seconds the session can last
func (self *SMGenericV1) SessionStart(ev sessionmanager.SMGenericEvent, maxUsage *float64) error {
if err := self.sm.SessionStart(ev, nil); err != nil {
if minMaxUsage, err := self.sm.SessionStart(ev, nil); err != nil {
return utils.NewErrServerError(err)
} else {
*maxUsage = minMaxUsage.Seconds()
}
return self.GetMaxUsage(ev, maxUsage)
return nil
}
// Interim updates, returns remaining duration from the rater
func (self *SMGenericV1) SessionUpdate(ev sessionmanager.SMGenericEvent, maxUsage *float64) error {
if err := self.sm.SessionUpdate(ev, nil); err != nil {
if minMaxUsage, err := self.sm.SessionUpdate(ev, nil); err != nil {
return utils.NewErrServerError(err)
} else {
*maxUsage = minMaxUsage.Seconds()
}
return self.GetMaxUsage(ev, maxUsage)
return nil
}
// Called on session end, should stop debit loop