Documentation
¶
Overview ¶
Rating system designed to be used in VoIP Carriers World Copyright (C) 2013 ITsysCOM
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>
Index ¶
- Constants
- Variables
- func SetDataStorage(sg DataStorage)
- func SetDebitPeriod(d time.Duration)
- func SetHistoryScribe(scribe history.Scribe)
- func SetRoundingMethodAndDecimals(rm string, rd int)
- func SetStorageLogger(sg DataStorage)
- func ValidateCSVData(fn string, re *regexp.Regexp) (err error)
- type AcKeyValue
- type AccountAction
- type AccountLock
- type Action
- type ActionTiming
- type ActionTimingPriotityList
- type ActionTimings
- type ActionTrigger
- type ActionTriggerPriotityList
- type Actions
- type ActivationPeriod
- type AtKeyValue
- type BSONMarshaler
- type Balance
- type BalanceChain
- func (bc BalanceChain) Clone() BalanceChain
- func (bc BalanceChain) Debit(amount float64) float64
- func (bc BalanceChain) Equal(o BalanceChain) bool
- func (bc BalanceChain) GetTotalValue() (total float64)
- func (bc BalanceChain) Len() int
- func (bc BalanceChain) Less(j, i int) bool
- func (bc BalanceChain) Sort()
- func (bc BalanceChain) Swap(i, j int)
- type BincMarshaler
- type CSVReader
- func (csvr *CSVReader) LoadAccountActions() (err error)
- func (csvr *CSVReader) LoadActionTimings() (err error)
- func (csvr *CSVReader) LoadActionTriggers() (err error)
- func (csvr *CSVReader) LoadActions() (err error)
- func (csvr *CSVReader) LoadDestinationRateTimings() (err error)
- func (csvr *CSVReader) LoadDestinationRates() (err error)
- func (csvr *CSVReader) LoadDestinations() (err error)
- func (csvr *CSVReader) LoadRates() (err error)
- func (csvr *CSVReader) LoadRatingProfiles() (err error)
- func (csvr *CSVReader) LoadTimings() (err error)
- func (csvr *CSVReader) WriteToDatabase(flush, verbose bool) (err error)
- type CallCost
- type CallDescriptor
- func (cd *CallDescriptor) AddActivationPeriod(aps ...*ActivationPeriod)
- func (cd *CallDescriptor) AddRecievedCallSeconds() (err error)
- func (cd *CallDescriptor) Debit() (cc *CallCost, err error)
- func (cd *CallDescriptor) DebitCents() (left float64, err error)
- func (cd *CallDescriptor) DebitSMS() (left float64, err error)
- func (cd *CallDescriptor) DebitSeconds() (err error)
- func (cd *CallDescriptor) FlushCache() (err error)
- func (cd *CallDescriptor) GetCost() (*CallCost, error)
- func (cd *CallDescriptor) GetKey() string
- func (cd *CallDescriptor) GetMaxSessionTime(startTime time.Time) (seconds float64, err error)
- func (cd *CallDescriptor) GetUserBalanceKey() string
- func (cd *CallDescriptor) LoadActivationPeriods() (destPrefix string, err error)
- func (cd *CallDescriptor) MaxDebit(startTime time.Time) (cc *CallCost, err error)
- type CodecMsgpackMarshaler
- type Connector
- type DataStorage
- func ConfigureDatabase(db_type, host, port, name, user, pass string) (db DataStorage, err error)
- func NewMapStorage() (DataStorage, error)
- func NewMongoStorage(host, port, db, user, pass string) (DataStorage, error)
- func NewMySQLStorage(host, port, name, user, password string) (DataStorage, error)
- func NewPostgresStorage(host, port, name, user, password string) (DataStorage, error)
- func NewRedisStorage(address string, db int, pass string) (DataStorage, error)
- type DbReader
- func (dbr *DbReader) LoadAccountActions() (err error)
- func (dbr *DbReader) LoadAccountActionsByTag(tag string) error
- func (dbr *DbReader) LoadActionTimings() (err error)
- func (dbr *DbReader) LoadActionTriggers() (err error)
- func (dbr *DbReader) LoadActions() (err error)
- func (dbr *DbReader) LoadDestinationRateTimings() error
- func (dbr *DbReader) LoadDestinationRates() (err error)
- func (dbr *DbReader) LoadDestinations() (err error)
- func (dbr *DbReader) LoadRates() (err error)
- func (dbr *DbReader) LoadRatingProfileByTag(tag string) error
- func (dbr *DbReader) LoadRatingProfiles() error
- func (dbr *DbReader) LoadTimings() (err error)
- func (dbr *DbReader) WriteToDatabase(flush, verbose bool) (err error)
- type Destination
- type DestinationRate
- type DestinationRateTiming
- type FileLineRegexValidator
- type GOBMarshaler
- type Interval
- func (i *Interval) Contains(t time.Time) bool
- func (i *Interval) Equal(o *Interval) bool
- func (i *Interval) GetCost(duration, startSecond time.Duration) (cost float64)
- func (i *Interval) GetPriceParameters(startSecond time.Duration) (price float64, rateIncrement, rateUnit time.Duration)
- func (i *Interval) String() string
- type IntervalList
- type JSONBufMarshaler
- type JSONMarshaler
- type LogCostEntry
- type LogErrEntry
- type LogTimingEntry
- type LogTriggerEntry
- type MapStorage
- func (ms *MapStorage) Close()
- func (ms *MapStorage) ExistsTPAccountActions(tpid, aaId string) (bool, error)
- func (ms *MapStorage) ExistsTPActionTimings(tpid, atId string) (bool, error)
- func (ms *MapStorage) ExistsTPActionTriggers(tpid, atId string) (bool, error)
- func (ms *MapStorage) ExistsTPActions(tpid, aId string) (bool, error)
- func (ms *MapStorage) ExistsTPDestRateTiming(tpid, drtId string) (bool, error)
- func (ms *MapStorage) ExistsTPDestination(tpid, destTag string) (bool, error)
- func (ms *MapStorage) ExistsTPDestinationRate(tpid, drId string) (bool, error)
- func (ms *MapStorage) ExistsTPRate(tpid, rtId string) (bool, error)
- func (ms *MapStorage) ExistsTPRatingProfile(tpid, rpId string) (bool, error)
- func (ms *MapStorage) ExistsTPTiming(tpid, tmId string) (bool, error)
- func (ms *MapStorage) Flush() error
- func (ms *MapStorage) GetActionTimings(key string) (ats ActionTimings, err error)
- func (ms *MapStorage) GetActions(key string) (as Actions, err error)
- func (ms *MapStorage) GetAllActionTimings() (ats map[string]ActionTimings, err error)
- func (ms *MapStorage) GetAllRatedCdr() ([]utils.CDR, error)
- func (ms *MapStorage) GetCallCostLog(uuid, source string) (cc *CallCost, err error)
- func (ms *MapStorage) GetDestination(key string) (dest *Destination, err error)
- func (ms *MapStorage) GetRatingProfile(key string) (rp *RatingProfile, err error)
- func (ms *MapStorage) GetTPAccountActionIds(tpid string) ([]string, error)
- func (ms *MapStorage) GetTPActionIds(tpid string) ([]string, error)
- func (ms *MapStorage) GetTPActionTimingIds(tpid string) ([]string, error)
- func (ms *MapStorage) GetTPActionTimings(tpid, atId string) (map[string][]*utils.TPActionTimingsRow, error)
- func (ms *MapStorage) GetTPActionTriggerIds(tpid string) ([]string, error)
- func (ms *MapStorage) GetTPActions(tpid, aId string) (*utils.TPActions, error)
- func (ms *MapStorage) GetTPDestRateTiming(tpid, drtId string) (*utils.TPDestRateTiming, error)
- func (ms *MapStorage) GetTPDestRateTimingIds(tpid string) ([]string, error)
- func (ms *MapStorage) GetTPDestination(tpid, destTag string) (*Destination, error)
- func (ms *MapStorage) GetTPDestinationIds(tpid string) ([]string, error)
- func (ms *MapStorage) GetTPDestinationRate(tpid, drId string) (*utils.TPDestinationRate, error)
- func (ms *MapStorage) GetTPDestinationRateIds(tpid string) ([]string, error)
- func (ms *MapStorage) GetTPIds() ([]string, error)
- func (ms *MapStorage) GetTPRate(tpid, rtId string) (*utils.TPRate, error)
- func (ms *MapStorage) GetTPRateIds(tpid string) ([]string, error)
- func (ms *MapStorage) GetTPRatingProfile(tpid, rpId string) (*utils.TPRatingProfile, error)
- func (ms *MapStorage) GetTPRatingProfileIds(filters *utils.AttrTPRatingProfileIds) ([]string, error)
- func (ms *MapStorage) GetTPTiming(tpid, tmId string) (*Timing, error)
- func (ms *MapStorage) GetTPTimingIds(tpid string) ([]string, error)
- func (ms *MapStorage) GetTpAccountActions(tpid, tag string) (map[string]*AccountAction, error)
- func (ms *MapStorage) GetTpActionTimings(tpid, tag string) (map[string][]*ActionTiming, error)
- func (ms *MapStorage) GetTpActionTriggers(tpid, tag string) (map[string][]*ActionTrigger, error)
- func (ms *MapStorage) GetTpActions(tpid, tag string) (map[string][]*Action, error)
- func (ms *MapStorage) GetTpDestinationRateTimings(tpid, tag string) ([]*DestinationRateTiming, error)
- func (ms *MapStorage) GetTpDestinationRates(tpid, tag string) (map[string][]*DestinationRate, error)
- func (ms *MapStorage) GetTpDestinations(tpid, tag string) ([]*Destination, error)
- func (ms *MapStorage) GetTpRates(tpid, tag string) (map[string]*Rate, error)
- func (ms *MapStorage) GetTpRatingProfiles(tpid, tag string) (map[string]*RatingProfile, error)
- func (ms *MapStorage) GetTpTimings(tpid, tag string) (map[string]*Timing, error)
- func (ms *MapStorage) GetUserBalance(key string) (ub *UserBalance, err error)
- func (ms *MapStorage) LogActionTiming(source string, at *ActionTiming, as Actions) (err error)
- func (ms *MapStorage) LogActionTrigger(ubId, source string, at *ActionTrigger, as Actions) (err error)
- func (ms *MapStorage) LogCallCost(uuid, source string, cc *CallCost) error
- func (ms *MapStorage) LogError(uuid, source, errstr string) (err error)
- func (ms *MapStorage) SetActionTimings(key string, ats ActionTimings) (err error)
- func (ms *MapStorage) SetActions(key string, as Actions) (err error)
- func (ms *MapStorage) SetCdr(utils.CDR) error
- func (ms *MapStorage) SetDestination(dest *Destination) (err error)
- func (ms *MapStorage) SetRatedCdr(cdr utils.CDR, cc *CallCost, extraInfo string) error
- func (ms *MapStorage) SetRatingProfile(rp *RatingProfile) (err error)
- func (ms *MapStorage) SetTPAccountActions(tpid string, aa map[string]*AccountAction) error
- func (ms *MapStorage) SetTPActionTimings(tpid string, ats map[string][]*ActionTiming) error
- func (ms *MapStorage) SetTPActionTriggers(tpid string, ats map[string][]*ActionTrigger) error
- func (ms *MapStorage) SetTPActions(tpid string, acts map[string][]*Action) error
- func (ms *MapStorage) SetTPDestRateTimings(tpid string, drts map[string][]*DestinationRateTiming) error
- func (ms *MapStorage) SetTPDestination(tpid string, dest *Destination) error
- func (ms *MapStorage) SetTPDestinationRates(tpid string, drs map[string][]*DestinationRate) error
- func (ms *MapStorage) SetTPRates(tpid string, rts map[string][]*Rate) error
- func (ms *MapStorage) SetTPRatingProfiles(tpid string, rps map[string][]*RatingProfile) error
- func (ms *MapStorage) SetTPTiming(tpid string, tm *Timing) error
- func (ms *MapStorage) SetUserBalance(ub *UserBalance) (err error)
- type Marshaler
- type MinuteBucket
- type MinuteInfo
- type MongoStorage
- func (ms *MongoStorage) Close()
- func (ms *MongoStorage) ExistsTPAccountActions(tpid, aaId string) (bool, error)
- func (ms *MongoStorage) ExistsTPActionTimings(tpid, atId string) (bool, error)
- func (ms *MongoStorage) ExistsTPActionTriggers(tpid, atId string) (bool, error)
- func (ms *MongoStorage) ExistsTPActions(tpid, aId string) (bool, error)
- func (ms *MongoStorage) ExistsTPDestRateTiming(tpid, drtId string) (bool, error)
- func (ms *MongoStorage) ExistsTPDestination(tpid, destTag string) (bool, error)
- func (ms *MongoStorage) ExistsTPDestinationRate(tpid, drId string) (bool, error)
- func (ms *MongoStorage) ExistsTPRate(tpid, rtId string) (bool, error)
- func (ms *MongoStorage) ExistsTPRatingProfile(tpid, rpId string) (bool, error)
- func (ms *MongoStorage) ExistsTPTiming(tpid, tmId string) (bool, error)
- func (ms *MongoStorage) Flush() (err error)
- func (ms *MongoStorage) GetActionTimings(key string) (ats ActionTimings, err error)
- func (ms *MongoStorage) GetActions(key string) (as Actions, err error)
- func (ms *MongoStorage) GetAllActionTimings() (ats map[string]ActionTimings, err error)
- func (ms *MongoStorage) GetAllRatedCdr() ([]utils.CDR, error)
- func (ms *MongoStorage) GetCallCostLog(uuid, source string) (cc *CallCost, err error)
- func (ms *MongoStorage) GetDestination(key string) (result *Destination, err error)
- func (ms *MongoStorage) GetDestinations(tpid string) ([]*Destination, error)
- func (ms *MongoStorage) GetRatingProfile(key string) (rp *RatingProfile, err error)
- func (ms *MongoStorage) GetTPAccountActionIds(tpid string) ([]string, error)
- func (ms *MongoStorage) GetTPActionIds(tpid string) ([]string, error)
- func (ms *MongoStorage) GetTPActionTimingIds(tpid string) ([]string, error)
- func (ms *MongoStorage) GetTPActionTimings(tpid, atId string) (map[string][]*utils.TPActionTimingsRow, error)
- func (ms *MongoStorage) GetTPActionTriggerIds(tpid string) ([]string, error)
- func (ms *MongoStorage) GetTPActions(tpid, aId string) (*utils.TPActions, error)
- func (ms *MongoStorage) GetTPDestRateTiming(tpid, drtId string) (*utils.TPDestRateTiming, error)
- func (ms *MongoStorage) GetTPDestRateTimingIds(tpid string) ([]string, error)
- func (ms *MongoStorage) GetTPDestination(tpid, destTag string) (*Destination, error)
- func (ms *MongoStorage) GetTPDestinationIds(tpid string) ([]string, error)
- func (ms *MongoStorage) GetTPDestinationRate(tpid, drId string) (*utils.TPDestinationRate, error)
- func (ms *MongoStorage) GetTPDestinationRateIds(tpid string) ([]string, error)
- func (ms *MongoStorage) GetTPIds() ([]string, error)
- func (ms *MongoStorage) GetTPRate(tpid, rtId string) (*utils.TPRate, error)
- func (ms *MongoStorage) GetTPRateIds(tpid string) ([]string, error)
- func (ms *MongoStorage) GetTPRatingProfile(tpid, rpId string) (*utils.TPRatingProfile, error)
- func (ms *MongoStorage) GetTPRatingProfileIds(filters *utils.AttrTPRatingProfileIds) ([]string, error)
- func (ms *MongoStorage) GetTPTiming(tpid, tmId string) (*Timing, error)
- func (ms *MongoStorage) GetTPTimingIds(tpid string) ([]string, error)
- func (ms *MongoStorage) GetTpAccountActions(tpid, tag string) (map[string]*AccountAction, error)
- func (ms *MongoStorage) GetTpActionTimings(tpid, tag string) (map[string][]*ActionTiming, error)
- func (ms *MongoStorage) GetTpActionTriggers(tpid, tag string) (map[string][]*ActionTrigger, error)
- func (ms *MongoStorage) GetTpActions(tpid, tag string) (map[string][]*Action, error)
- func (ms *MongoStorage) GetTpDestinationRateTimings(tpid, tag string) ([]*DestinationRateTiming, error)
- func (ms *MongoStorage) GetTpDestinationRates(tpid, tag string) (map[string][]*DestinationRate, error)
- func (ms *MongoStorage) GetTpDestinations(tpid, tag string) ([]*Destination, error)
- func (ms *MongoStorage) GetTpRates(tpid, tag string) (map[string]*Rate, error)
- func (ms *MongoStorage) GetTpRatingProfiles(tpid, tag string) (map[string]*RatingProfile, error)
- func (ms *MongoStorage) GetTpTimings(tpid, tag string) (map[string]*Timing, error)
- func (ms *MongoStorage) GetUserBalance(key string) (result *UserBalance, err error)
- func (ms *MongoStorage) LogActionTiming(source string, at *ActionTiming, as Actions) (err error)
- func (ms *MongoStorage) LogActionTrigger(ubId, source string, at *ActionTrigger, as Actions) (err error)
- func (ms *MongoStorage) LogCallCost(uuid, source string, cc *CallCost) error
- func (ms *MongoStorage) LogError(uuid, source, errstr string) (err error)
- func (ms *MongoStorage) SetActionTimings(key string, ats ActionTimings) error
- func (ms *MongoStorage) SetActions(key string, as Actions) error
- func (ms *MongoStorage) SetCdr(utils.CDR) error
- func (ms *MongoStorage) SetDestination(dest *Destination) error
- func (ms *MongoStorage) SetRatedCdr(cdr utils.CDR, cc *CallCost, extraInfo string) error
- func (ms *MongoStorage) SetRatingProfile(rp *RatingProfile) error
- func (ms *MongoStorage) SetTPAccountActions(tpid string, aa map[string]*AccountAction) error
- func (ms *MongoStorage) SetTPActionTimings(tpid string, ats map[string][]*ActionTiming) error
- func (ms *MongoStorage) SetTPActionTriggers(tpid string, ats map[string][]*ActionTrigger) error
- func (ms *MongoStorage) SetTPActions(tpid string, acts map[string][]*Action) error
- func (ms *MongoStorage) SetTPDestRateTimings(tpid string, drts map[string][]*DestinationRateTiming) error
- func (ms *MongoStorage) SetTPDestination(tpid string, dest *Destination) error
- func (ms *MongoStorage) SetTPDestinationRates(tpid string, drs map[string][]*DestinationRate) error
- func (ms *MongoStorage) SetTPRates(tpid string, rts map[string][]*Rate) error
- func (ms *MongoStorage) SetTPRatingProfiles(tpid string, rps map[string][]*RatingProfile) error
- func (ms *MongoStorage) SetTPTiming(tpid string, tm *Timing) error
- func (ms *MongoStorage) SetUserBalance(ub *UserBalance) error
- type MonthDays
- type Months
- type MySQLStorage
- type PostgresStorage
- type Price
- type PriceGroups
- type RPCClientConnector
- func (rcc *RPCClientConnector) Debit(cd CallDescriptor, cc *CallCost) error
- func (rcc *RPCClientConnector) DebitCents(cd CallDescriptor, resp *float64) error
- func (rcc *RPCClientConnector) DebitSeconds(cd CallDescriptor, resp *float64) error
- func (rcc *RPCClientConnector) GetCost(cd CallDescriptor, cc *CallCost) error
- func (rcc *RPCClientConnector) GetMaxSessionTime(cd CallDescriptor, resp *float64) error
- func (rcc *RPCClientConnector) MaxDebit(cd CallDescriptor, cc *CallCost) error
- type Rate
- type RatingProfile
- type RedisStorage
- func (rs *RedisStorage) Close()
- func (rs *RedisStorage) ExistsTPAccountActions(tpid, aaId string) (bool, error)
- func (rs *RedisStorage) ExistsTPActionTimings(tpid, atId string) (bool, error)
- func (rs *RedisStorage) ExistsTPActionTriggers(tpid, atId string) (bool, error)
- func (rs *RedisStorage) ExistsTPActions(tpid, aId string) (bool, error)
- func (rs *RedisStorage) ExistsTPDestRateTiming(tpid, drtId string) (bool, error)
- func (rs *RedisStorage) ExistsTPDestination(tpid, destTag string) (bool, error)
- func (rs *RedisStorage) ExistsTPDestinationRate(tpid, drId string) (bool, error)
- func (rs *RedisStorage) ExistsTPRate(tpid, rtId string) (bool, error)
- func (rs *RedisStorage) ExistsTPRatingProfile(tpid, rpId string) (bool, error)
- func (rs *RedisStorage) ExistsTPTiming(tpid, tmId string) (bool, error)
- func (rs *RedisStorage) Flush() (err error)
- func (rs *RedisStorage) GetActionTimings(key string) (ats ActionTimings, err error)
- func (rs *RedisStorage) GetActions(key string) (as Actions, err error)
- func (rs *RedisStorage) GetAllActionTimings() (ats map[string]ActionTimings, err error)
- func (rs *RedisStorage) GetAllRatedCdr() ([]utils.CDR, error)
- func (rs *RedisStorage) GetCallCostLog(uuid, source string) (cc *CallCost, err error)
- func (rs *RedisStorage) GetDestination(key string) (dest *Destination, err error)
- func (rs *RedisStorage) GetRatingProfile(key string) (rp *RatingProfile, err error)
- func (rs *RedisStorage) GetTPAccountActionIds(tpid string) ([]string, error)
- func (rs *RedisStorage) GetTPActionIds(tpid string) ([]string, error)
- func (rs *RedisStorage) GetTPActionTimingIds(tpid string) ([]string, error)
- func (rs *RedisStorage) GetTPActionTimings(tpid, atId string) (map[string][]*utils.TPActionTimingsRow, error)
- func (rs *RedisStorage) GetTPActionTriggerIds(tpid string) ([]string, error)
- func (rs *RedisStorage) GetTPActions(tpid, aId string) (*utils.TPActions, error)
- func (rs *RedisStorage) GetTPDestRateTiming(tpid, drtId string) (*utils.TPDestRateTiming, error)
- func (rs *RedisStorage) GetTPDestRateTimingIds(tpid string) ([]string, error)
- func (rs *RedisStorage) GetTPDestination(tpid, destTag string) (*Destination, error)
- func (rs *RedisStorage) GetTPDestinationIds(tpid string) ([]string, error)
- func (rs *RedisStorage) GetTPDestinationRate(tpid, drId string) (*utils.TPDestinationRate, error)
- func (rs *RedisStorage) GetTPDestinationRateIds(tpid string) ([]string, error)
- func (rs *RedisStorage) GetTPIds() ([]string, error)
- func (rs *RedisStorage) GetTPRate(tpid, rtId string) (*utils.TPRate, error)
- func (rs *RedisStorage) GetTPRateIds(tpid string) ([]string, error)
- func (rs *RedisStorage) GetTPRatingProfile(tpid, rpId string) (*utils.TPRatingProfile, error)
- func (rs *RedisStorage) GetTPRatingProfileIds(filters *utils.AttrTPRatingProfileIds) ([]string, error)
- func (rs *RedisStorage) GetTPTiming(tpid, tmId string) (*Timing, error)
- func (rs *RedisStorage) GetTPTimingIds(tpid string) ([]string, error)
- func (rs *RedisStorage) GetTpAccountActions(tpid, tag string) (map[string]*AccountAction, error)
- func (rs *RedisStorage) GetTpActionTimings(tpid, tag string) (map[string][]*ActionTiming, error)
- func (rs *RedisStorage) GetTpActionTriggers(tpid, tag string) (map[string][]*ActionTrigger, error)
- func (rs *RedisStorage) GetTpActions(tpid, tag string) (map[string][]*Action, error)
- func (rs *RedisStorage) GetTpDestinationRateTimings(tpid, tag string) ([]*DestinationRateTiming, error)
- func (ms *RedisStorage) GetTpDestinationRates(tpid, tag string) (map[string][]*DestinationRate, error)
- func (rs *RedisStorage) GetTpDestinations(tpid, tag string) ([]*Destination, error)
- func (rs *RedisStorage) GetTpRates(tpid, tag string) (map[string]*Rate, error)
- func (rs *RedisStorage) GetTpRatingProfiles(tpid, tag string) (map[string]*RatingProfile, error)
- func (rs *RedisStorage) GetTpTimings(tpid, tag string) (map[string]*Timing, error)
- func (rs *RedisStorage) GetUserBalance(key string) (ub *UserBalance, err error)
- func (rs *RedisStorage) LogActionTiming(source string, at *ActionTiming, as Actions) (err error)
- func (rs *RedisStorage) LogActionTrigger(ubId, source string, at *ActionTrigger, as Actions) (err error)
- func (rs *RedisStorage) LogCallCost(uuid, source string, cc *CallCost) (err error)
- func (rs *RedisStorage) LogError(uuid, source, errstr string) (err error)
- func (rs *RedisStorage) SetActionTimings(key string, ats ActionTimings) (err error)
- func (rs *RedisStorage) SetActions(key string, as Actions) (err error)
- func (rs *RedisStorage) SetCdr(utils.CDR) error
- func (rs *RedisStorage) SetDestination(dest *Destination) (err error)
- func (rs *RedisStorage) SetRatedCdr(cdr utils.CDR, cc *CallCost, extraInfo string) error
- func (rs *RedisStorage) SetRatingProfile(rp *RatingProfile) (err error)
- func (rs *RedisStorage) SetTPAccountActions(tpid string, aa map[string]*AccountAction) error
- func (rs *RedisStorage) SetTPActionTimings(tpid string, ats map[string][]*ActionTiming) error
- func (rs *RedisStorage) SetTPActionTriggers(tpid string, ats map[string][]*ActionTrigger) error
- func (rs *RedisStorage) SetTPActions(tpid string, acts map[string][]*Action) error
- func (rs *RedisStorage) SetTPDestRateTimings(tpid string, drts map[string][]*DestinationRateTiming) error
- func (rs *RedisStorage) SetTPDestination(tpid string, dest *Destination) error
- func (rs *RedisStorage) SetTPDestinationRates(tpid string, drs map[string][]*DestinationRate) error
- func (rs *RedisStorage) SetTPRates(tpid string, rts map[string][]*Rate) error
- func (rs *RedisStorage) SetTPRatingProfiles(tpid string, rps map[string][]*RatingProfile) error
- func (rs *RedisStorage) SetTPTiming(tpid string, tm *Timing) error
- func (rs *RedisStorage) SetUserBalance(ub *UserBalance) (err error)
- type Responder
- func (rs *Responder) AddRecievedCallSeconds(arg CallDescriptor, reply *float64) (err error)
- func (rs *Responder) Debit(arg CallDescriptor, reply *CallCost) (err error)
- func (rs *Responder) DebitCents(arg CallDescriptor, reply *float64) (err error)
- func (rs *Responder) DebitSMS(arg CallDescriptor, reply *float64) (err error)
- func (rs *Responder) DebitSeconds(arg CallDescriptor, reply *float64) (err error)
- func (rs *Responder) FlushCache(arg CallDescriptor, reply *float64) (err error)
- func (rs *Responder) GetCost(arg CallDescriptor, reply *CallCost) (err error)
- func (rs *Responder) GetInternet(arg CallDescriptor, reply *CallCost) (err error)
- func (rs *Responder) GetInternetTime(arg CallDescriptor, reply *CallCost) (err error)
- func (rs *Responder) GetMaxSessionTime(arg CallDescriptor, reply *float64) (err error)
- func (rs *Responder) GetMinutes(arg CallDescriptor, reply *CallCost) (err error)
- func (rs *Responder) GetMonetary(arg CallDescriptor, reply *CallCost) (err error)
- func (rs *Responder) GetSMS(arg CallDescriptor, reply *CallCost) (err error)
- func (rs *Responder) MaxDebit(arg CallDescriptor, reply *CallCost) (err error)
- func (rs *Responder) RegisterRater(clientAddress string, replay *int) error
- func (rs *Responder) Shutdown(arg string, reply *string) (err error)
- func (rs *Responder) Status(arg string, reply *string) (err error)
- func (rs *Responder) UnRegisterRater(clientAddress string, replay *int) error
- type ResponderWorker
- type SQLStorage
- func (self *SQLStorage) Close()
- func (self *SQLStorage) ExistsTPAccountActions(tpid, aaId string) (bool, error)
- func (self *SQLStorage) ExistsTPActionTimings(tpid, atId string) (bool, error)
- func (self *SQLStorage) ExistsTPActionTriggers(tpid, atId string) (bool, error)
- func (self *SQLStorage) ExistsTPActions(tpid, actsId string) (bool, error)
- func (self *SQLStorage) ExistsTPDestRateTiming(tpid, drtId string) (bool, error)
- func (self *SQLStorage) ExistsTPDestination(tpid, destTag string) (bool, error)
- func (self *SQLStorage) ExistsTPDestinationRate(tpid, drId string) (bool, error)
- func (self *SQLStorage) ExistsTPRate(tpid, rtId string) (bool, error)
- func (self *SQLStorage) ExistsTPRatingProfile(tpid, rpId string) (bool, error)
- func (self *SQLStorage) ExistsTPTiming(tpid, tmId string) (bool, error)
- func (self *SQLStorage) Flush() (err error)
- func (self *SQLStorage) GetActionTimings(key string) (ats ActionTimings, err error)
- func (self *SQLStorage) GetActions(string) (as Actions, err error)
- func (self *SQLStorage) GetAllActionTimings() (ats map[string]ActionTimings, err error)
- func (self *SQLStorage) GetAllRatedCdr() ([]utils.CDR, error)
- func (self *SQLStorage) GetCallCostLog(cgrid, source string) (cc *CallCost, err error)
- func (self *SQLStorage) GetDestination(string) (d *Destination, err error)
- func (self *SQLStorage) GetRatingProfile(string) (rp *RatingProfile, err error)
- func (self *SQLStorage) GetTPAccountActionIds(tpid string) ([]string, error)
- func (self *SQLStorage) GetTPActionIds(tpid string) ([]string, error)
- func (self *SQLStorage) GetTPActionTimingIds(tpid string) ([]string, error)
- func (self *SQLStorage) GetTPActionTimings(tpid, atId string) (map[string][]*utils.TPActionTimingsRow, error)
- func (self *SQLStorage) GetTPActionTriggerIds(tpid string) ([]string, error)
- func (self *SQLStorage) GetTPActions(tpid, actsId string) (*utils.TPActions, error)
- func (self *SQLStorage) GetTPDestRateTiming(tpid, drtId string) (*utils.TPDestRateTiming, error)
- func (self *SQLStorage) GetTPDestRateTimingIds(tpid string) ([]string, error)
- func (self *SQLStorage) GetTPDestination(tpid, destTag string) (*Destination, error)
- func (self *SQLStorage) GetTPDestinationIds(tpid string) ([]string, error)
- func (self *SQLStorage) GetTPDestinationRate(tpid, drId string) (*utils.TPDestinationRate, error)
- func (self *SQLStorage) GetTPDestinationRateIds(tpid string) ([]string, error)
- func (self *SQLStorage) GetTPIds() ([]string, error)
- func (self *SQLStorage) GetTPRate(tpid, rtId string) (*utils.TPRate, error)
- func (self *SQLStorage) GetTPRateIds(tpid string) ([]string, error)
- func (self *SQLStorage) GetTPRatingProfile(tpid, rpId string) (*utils.TPRatingProfile, error)
- func (self *SQLStorage) GetTPRatingProfileIds(filters *utils.AttrTPRatingProfileIds) ([]string, error)
- func (self *SQLStorage) GetTPTiming(tpid, tmId string) (*Timing, error)
- func (self *SQLStorage) GetTPTimingIds(tpid string) ([]string, error)
- func (self *SQLStorage) GetTpAccountActions(tpid, tag string) (map[string]*AccountAction, error)
- func (self *SQLStorage) GetTpActionTimings(tpid, tag string) (ats map[string][]*ActionTiming, err error)
- func (self *SQLStorage) GetTpActionTriggers(tpid, tag string) (map[string][]*ActionTrigger, error)
- func (self *SQLStorage) GetTpActions(tpid, tag string) (map[string][]*Action, error)
- func (self *SQLStorage) GetTpDestinationRateTimings(tpid, tag string) ([]*DestinationRateTiming, error)
- func (self *SQLStorage) GetTpDestinationRates(tpid, tag string) (map[string][]*DestinationRate, error)
- func (self *SQLStorage) GetTpDestinations(tpid, tag string) ([]*Destination, error)
- func (self *SQLStorage) GetTpRates(tpid, tag string) (map[string]*Rate, error)
- func (self *SQLStorage) GetTpRatingProfiles(tpid, tag string) (map[string]*RatingProfile, error)
- func (self *SQLStorage) GetTpTimings(tpid, tag string) (map[string]*Timing, error)
- func (self *SQLStorage) GetUserBalance(string) (ub *UserBalance, err error)
- func (self *SQLStorage) LogActionTiming(source string, at *ActionTiming, as Actions) (err error)
- func (self *SQLStorage) LogActionTrigger(ubId, source string, at *ActionTrigger, as Actions) (err error)
- func (self *SQLStorage) LogCallCost(uuid, source string, cc *CallCost) (err error)
- func (self *SQLStorage) LogError(uuid, source, errstr string) (err error)
- func (self *SQLStorage) SetActionTimings(key string, ats ActionTimings) (err error)
- func (self *SQLStorage) SetActions(key string, as Actions) (err error)
- func (self *SQLStorage) SetCdr(cdr utils.CDR) (err error)
- func (self *SQLStorage) SetDestination(d *Destination) (err error)
- func (self *SQLStorage) SetRatedCdr(cdr utils.CDR, cc *CallCost, extraInfo string) (err error)
- func (self *SQLStorage) SetRatingProfile(rp *RatingProfile) (err error)
- func (self *SQLStorage) SetTPAccountActions(tpid string, aa map[string]*AccountAction) error
- func (self *SQLStorage) SetTPActionTimings(tpid string, ats map[string][]*ActionTiming) error
- func (self *SQLStorage) SetTPActionTriggers(tpid string, ats map[string][]*ActionTrigger) error
- func (self *SQLStorage) SetTPActions(tpid string, acts map[string][]*Action) error
- func (self *SQLStorage) SetTPDestRateTimings(tpid string, drts map[string][]*DestinationRateTiming) error
- func (self *SQLStorage) SetTPDestination(tpid string, dest *Destination) error
- func (self *SQLStorage) SetTPDestinationRates(tpid string, drs map[string][]*DestinationRate) error
- func (self *SQLStorage) SetTPRates(tpid string, rts map[string][]*Rate) error
- func (self *SQLStorage) SetTPRatingProfiles(tpid string, rps map[string][]*RatingProfile) error
- func (self *SQLStorage) SetTPTiming(tpid string, tm *Timing) error
- func (self *SQLStorage) SetUserBalance(ub *UserBalance) (err error)
- type TPCSVFileParser
- type TPCSVImporter
- type TPLoader
- type TimeSpan
- func (ts *TimeSpan) Contains(t time.Time) bool
- func (ts *TimeSpan) GetDuration() time.Duration
- func (ts *TimeSpan) GetGroupEnd() time.Duration
- func (ts *TimeSpan) GetGroupStart() time.Duration
- func (ts *TimeSpan) SetInterval(i *Interval)
- func (ts *TimeSpan) SetNewCallDuration(nts *TimeSpan)
- func (ts *TimeSpan) SplitByActivationPeriod(ap *ActivationPeriod) (newTs *TimeSpan)
- func (ts *TimeSpan) SplitByInterval(i *Interval) (nts *TimeSpan)
- func (ts *TimeSpan) SplitByMinuteBucket(mb *MinuteBucket) (newTs *TimeSpan)
- type Timing
- type UnitsCounter
- type UserBalance
- type WeekDays
- type Years
Constants ¶
const ( LOG = "*log" RESET_TRIGGERS = "*reset_triggers" SET_POSTPAID = "*set_postpaid" RESET_POSTPAID = "*reset_postpaid" SET_PREPAID = "*set_prepaid" RESET_PREPAID = "*reset_prepaid" TOPUP_RESET = "*topup_reset" TOPUP = "*topup" DEBIT = "*debit" RESET_COUNTER = "*reset_counter" RESET_COUNTERS = "*reset_counters" )
const ( FORMAT = "2006-1-2 15:04:05 MST" ASAP = "*asap" ASAP_DELAY = "1m" )
const ( RECURSION_MAX_DEPTH = 10 FALLBACK_SUBJECT = "*any" FALLBACK_SEP = ";" )
const ( PERCENT = "*percent" ABSOLUTE = "*absolute" )
const ( ACTION_TIMING_PREFIX = "atm_" RATING_PROFILE_PREFIX = "rpf_" ACTION_PREFIX = "act_" USER_BALANCE_PREFIX = "ubl_" DESTINATION_PREFIX = "dst_" LOG_CALL_COST_PREFIX = "cco_" LOG_ACTION_TIMMING_PREFIX = "ltm_" LOG_ACTION_TRIGGER_PREFIX = "ltr_" LOG_ERR = "ler_" LOG_CDR = "cdr_" LOG_MEDIATED_CDR = "mcd_" // sources SESSION_MANAGER_SOURCE = "SMR" MEDIATOR_SOURCE = "MED" SCHED_SOURCE = "SCH" RATER_SOURCE = "RAT" )
const ( UB_TYPE_POSTPAID = "*postpaid" UB_TYPE_PREPAID = "*prepaid" // Direction type INBOUND = "*in" OUTBOUND = "*out" // Balance types CREDIT = "*monetary" SMS = "*sms" TRAFFIC = "*internet" TRAFFIC_TIME = "*internet_time" MINUTES = "*minutes" )
const (
// the minimum length for a destination prefix to be matched.
MIN_PREFIX_LENGTH = 2
)
Variables ¶
var (
AMOUNT_TOO_BIG = errors.New("Amount excedes balance!")
)
var FileValidators = map[string]*FileLineRegexValidator{ utils.DESTINATIONS_CSV: &FileLineRegexValidator{utils.DESTINATIONS_NRCOLS, regexp.MustCompile(`(?:\w+\s*,\s*){1}(?:\+?\d+.?\d*){1}$`), "Tag([0-9A-Za-z_]),Prefix([0-9])"}, utils.TIMINGS_CSV: &FileLineRegexValidator{utils.TIMINGS_NRCOLS, regexp.MustCompile(`(?:\w+\s*,\s*){1}(?:\*any\s*,\s*|(?:\d{1,4};?)+\s*,\s*|\s*,\s*){4}(?:\d{2}:\d{2}:\d{2}|\*asap){1}$`), "Tag([0-9A-Za-z_]),Years([0-9;]|*all|<empty>),Months([0-9;]|*all|<empty>),MonthDays([0-9;]|*all|<empty>),WeekDays([0-9;]|*all|<empty>),Time([0-9:]|*asap)"}, utils.RATES_CSV: &FileLineRegexValidator{utils.RATES_NRCOLS, regexp.MustCompile(`(?:\w+\s*,\s*){1}(?:\d+\.?\d*,){2}(?:\d+s*,){3}(?:\*\w+,){1}(?:\d+\.?\d*,?){2}$`), "Tag([0-9A-Za-z_]),ConnectFee([0-9.]),Rate([0-9.]),RateUnit([0-9.]),RateIncrementStart([0-9.])"}, utils.DESTINATION_RATES_CSV: &FileLineRegexValidator{utils.DESTINATION_RATES_NRCOLS, regexp.MustCompile(`(?:\w+\s*,?\s*){3}$`), "Tag([0-9A-Za-z_]),DestinationsTag([0-9A-Za-z_]),RateTag([0-9A-Za-z_])"}, utils.DESTRATE_TIMINGS_CSV: &FileLineRegexValidator{utils.DESTRATE_TIMINGS_NRCOLS, regexp.MustCompile(`(?:\w+\s*,\s*){3}(?:\d+.?\d*){1}$`), "Tag([0-9A-Za-z_]),DestinationRatesTag([0-9A-Za-z_]),TimingProfile([0-9A-Za-z_]),Weight([0-9.])"}, utils.RATE_PROFILES_CSV: &FileLineRegexValidator{utils.RATE_PROFILES_NRCOLS, regexp.MustCompile(`(?:\w+\s*,\s*){2}(?:\*out\s*,\s*){1}(?:\*any\s*,\s*|\w+\s*,\s*){1}(?:\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z){1}(?:\w*\s*,?\s*){2}$`), "Tenant([0-9A-Za-z_]),TOR([0-9A-Za-z_]),Direction(*out),Subject([0-9A-Za-z_]|*all),RatesFallbackSubject([0-9A-Za-z_]|<empty>),RatesTimingTag([0-9A-Za-z_]),ActivationTime([0-9T:X])"}, utils.ACTIONS_CSV: &FileLineRegexValidator{utils.ACTIONS_NRCOLS, regexp.MustCompile(`(?:\w+\s*),(?:\*\w+\s*),(?:\*\w+\s*),(?:\*out\s*),(?:\d+\s*),(?:\*\w+\s*|\+\d+[smh]\s*|\d+\s*),(?:\*any|\w+\s*),(?:\*\w+\s*)?,(?:\d+\.?\d*\s*)?,(?:\d+\.?\d*\s*)?,(?:\d+\.?\d*\s*)$`), "Tag([0-9A-Za-z_]),Action([0-9A-Za-z_]),BalanceType([*a-z_]),Direction(*out),Units([0-9]),ExpiryTime(*[a-z_]|+[0-9][smh]|[0-9])DestinationTag([0-9A-Za-z_]|*all),RateType(*[a-z_]),RateValue([0-9.]),MinutesWeight([0-9.]),Weight([0-9.])"}, utils.ACTION_TIMINGS_CSV: &FileLineRegexValidator{utils.ACTION_TIMINGS_NRCOLS, regexp.MustCompile(`(?:\w+\s*,\s*){3}(?:\d+\.?\d*){1}`), "Tag([0-9A-Za-z_]),ActionsTag([0-9A-Za-z_]),TimingTag([0-9A-Za-z_]),Weight([0-9.])"}, utils.ACTION_TRIGGERS_CSV: &FileLineRegexValidator{utils.ACTION_TRIGGERS_NRCOLS, regexp.MustCompile(`(?:\w+),(?:\*\w+),(?:\*out),(?:\*\w+),(?:\d+\.?\d*),(?:\w+|\*any)?,(?:\w+),(?:\d+\.?\d*)$`), "Tag([0-9A-Za-z_]),BalanceType(*[a-z_]),Direction(*out),ThresholdType(*[a-z_]),ThresholdValue([0-9]+),DestinationTag([0-9A-Za-z_]|*all),ActionsTag([0-9A-Za-z_]),Weight([0-9]+)"}, utils.ACCOUNT_ACTIONS_CSV: &FileLineRegexValidator{utils.ACCOUNT_ACTIONS_NRCOLS, regexp.MustCompile(`(?:\w+\s*,\s*){1}(?:\w+\s*,\s*){1}(?:\*out\s*,\s*){1}(?:\w+\s*,?\s*){2}$`), "Tenant([0-9A-Za-z_]),Account([0-9A-Za-z_.]),Direction(*out),ActionTimingsTag([0-9A-Za-z_]),ActionTriggersTag([0-9A-Za-z_])"}, }
var (
Logger utils.LoggerInterface
)
Functions ¶
func SetDataStorage ¶
func SetDataStorage(sg DataStorage)
Exported method to set the storage getter.
func SetDebitPeriod ¶
Exported method to set the debit period for caching purposes.
func SetHistoryScribe ¶
Exported method to set the history scribe.
func SetRoundingMethodAndDecimals ¶
Sets the global rounding method and decimal precision for GetCost method
func SetStorageLogger ¶
func SetStorageLogger(sg DataStorage)
Sets the database for logging (can be de same as storage getter or different db)
Types ¶
type AcKeyValue ¶
type AccountAction ¶
type AccountAction struct {
Tenant, Account, Direction, ActionTimingsTag, ActionTriggersTag string
}
type AccountLock ¶
var AccLock *AccountLock
func NewAccountLock ¶
func NewAccountLock() *AccountLock
func (*AccountLock) GuardGetCost ¶
type Action ¶
type Action struct {
Id string
ActionType string
BalanceId string
Direction string
ExpirationString string
ExpirationDate time.Time
Units float64
Weight float64
MinuteBucket *MinuteBucket
DestinationTag, RateType string // From here for import/load purposes only
RateValue, MinutesWeight float64
}
Structure to be filled for each tariff plan with the bonus value for received calls minutes.
type ActionTiming ¶
type ActionTiming struct {
Id string // uniquely identify the timing
Tag string // informative purpose only
UserBalanceIds []string
Timing *Interval
Weight float64
ActionsId string
ActionsTag, TimingsTag string // used only for loading
// contains filtered or unexported fields
}
func (*ActionTiming) CheckForASAP ¶
func (at *ActionTiming) CheckForASAP() bool
checks for *asap string as start time and replaces it wit an actual time in the newar future returns true if the *asap string was found
func (*ActionTiming) Execute ¶
func (at *ActionTiming) Execute() (err error)
func (*ActionTiming) GetNextStartTime ¶
func (at *ActionTiming) GetNextStartTime() (t time.Time)
func (*ActionTiming) IsOneTimeRun ¶
func (at *ActionTiming) IsOneTimeRun() bool
returns true if only the starting time was is filled in the Timing field
func (*ActionTiming) SetActions ¶
func (at *ActionTiming) SetActions(as Actions)
func (*ActionTiming) String ¶
func (at *ActionTiming) String() string
type ActionTimingPriotityList ¶
type ActionTimingPriotityList []*ActionTiming
Structure to store actions according to weight
func (ActionTimingPriotityList) Len ¶
func (atpl ActionTimingPriotityList) Len() int
func (ActionTimingPriotityList) Less ¶
func (atpl ActionTimingPriotityList) Less(i, j int) bool
func (ActionTimingPriotityList) Sort ¶
func (atpl ActionTimingPriotityList) Sort()
func (ActionTimingPriotityList) Swap ¶
func (atpl ActionTimingPriotityList) Swap(i, j int)
type ActionTimings ¶
type ActionTimings []*ActionTiming
type ActionTrigger ¶
type ActionTrigger struct {
Id string // uniquely identify the trigger
BalanceId string
Direction string
ThresholdType string
ThresholdValue float64
DestinationId string
Weight float64
ActionsId string
Executed bool
}
func (*ActionTrigger) Execute ¶
func (at *ActionTrigger) Execute(ub *UserBalance) (err error)
type ActionTriggerPriotityList ¶
type ActionTriggerPriotityList []*ActionTrigger
Structure to store actions according to weight
func (ActionTriggerPriotityList) Len ¶
func (atpl ActionTriggerPriotityList) Len() int
func (ActionTriggerPriotityList) Less ¶
func (atpl ActionTriggerPriotityList) Less(i, j int) bool
func (ActionTriggerPriotityList) Sort ¶
func (atpl ActionTriggerPriotityList) Sort()
func (ActionTriggerPriotityList) Swap ¶
func (atpl ActionTriggerPriotityList) Swap(i, j int)
type ActivationPeriod ¶
type ActivationPeriod struct {
ActivationTime time.Time
Intervals IntervalList
}
The struture that is saved to storage.
func (*ActivationPeriod) AddInterval ¶
func (ap *ActivationPeriod) AddInterval(is ...*Interval)
Adds one ore more intervals to the internal interval list only if it is not allready in the list.
func (*ActivationPeriod) Equal ¶
func (ap *ActivationPeriod) Equal(o *ActivationPeriod) bool
type AtKeyValue ¶
type AtKeyValue struct {
Key string
Value ActionTimings
}
type BSONMarshaler ¶
type BSONMarshaler struct{}
func (*BSONMarshaler) Marshal ¶
func (jm *BSONMarshaler) Marshal(v interface{}) ([]byte, error)
func (*BSONMarshaler) Unmarshal ¶
func (jm *BSONMarshaler) Unmarshal(data []byte, v interface{}) error
type BalanceChain ¶
type BalanceChain []*Balance
Structure to store minute buckets according to weight, precision or price.
func (BalanceChain) Clone ¶
func (bc BalanceChain) Clone() BalanceChain
func (BalanceChain) Debit ¶
func (bc BalanceChain) Debit(amount float64) float64
func (BalanceChain) Equal ¶
func (bc BalanceChain) Equal(o BalanceChain) bool
func (BalanceChain) GetTotalValue ¶
func (bc BalanceChain) GetTotalValue() (total float64)
func (BalanceChain) Len ¶
func (bc BalanceChain) Len() int
func (BalanceChain) Less ¶
func (bc BalanceChain) Less(j, i int) bool
func (BalanceChain) Sort ¶
func (bc BalanceChain) Sort()
func (BalanceChain) Swap ¶
func (bc BalanceChain) Swap(i, j int)
type BincMarshaler ¶
type BincMarshaler struct {
// contains filtered or unexported fields
}
func NewBincMarshaler ¶
func NewBincMarshaler() *BincMarshaler
func (*BincMarshaler) Marshal ¶
func (bm *BincMarshaler) Marshal(v interface{}) (b []byte, err error)
func (*BincMarshaler) Unmarshal ¶
func (bm *BincMarshaler) Unmarshal(data []byte, v interface{}) error
type CSVReader ¶
type CSVReader struct {
// contains filtered or unexported fields
}
func NewFileCSVReader ¶
func NewFileCSVReader(storage DataStorage, sep rune, destinationsFn, timingsFn, ratesFn, destinationratesFn, destinationratetimingsFn, ratingprofilesFn, actionsFn, actiontimingsFn, actiontriggersFn, accountactionsFn string) *CSVReader
func NewStringCSVReader ¶
func NewStringCSVReader(storage DataStorage, sep rune, destinationsFn, timingsFn, ratesFn, destinationratesFn, destinationratetimingsFn, ratingprofilesFn, actionsFn, actiontimingsFn, actiontriggersFn, accountactionsFn string) *CSVReader
func (*CSVReader) LoadAccountActions ¶
func (*CSVReader) LoadActionTimings ¶
func (*CSVReader) LoadActionTriggers ¶
func (*CSVReader) LoadActions ¶
func (*CSVReader) LoadDestinationRateTimings ¶
func (*CSVReader) LoadDestinationRates ¶
func (*CSVReader) LoadDestinations ¶
func (*CSVReader) LoadRatingProfiles ¶
func (*CSVReader) LoadTimings ¶
func (*CSVReader) WriteToDatabase ¶
type CallCost ¶
type CallCost struct {
Direction, TOR, Tenant, Subject, Account, Destination string
Cost, ConnectFee float64
Timespans []*TimeSpan
}
The output structure that will be returned with the call cost information.
func (*CallCost) GetStartTime ¶
type CallDescriptor ¶
type CallDescriptor struct {
Direction string
TOR string
Tenant, Subject, Account, Destination string
TimeStart, TimeEnd time.Time
LoopIndex float64 // indicates the postion of this segment in a cost request loop
CallDuration time.Duration // the call duration so far (partial or final)
Amount float64
FallbackSubject string // the subject to check for destination if not found on primary subject
ActivationPeriods []*ActivationPeriod
// contains filtered or unexported fields
}
The input stucture that contains call information.
func (*CallDescriptor) AddActivationPeriod ¶
func (cd *CallDescriptor) AddActivationPeriod(aps ...*ActivationPeriod)
Adds an activation period that applyes to current call descriptor.
func (*CallDescriptor) AddRecievedCallSeconds ¶
func (cd *CallDescriptor) AddRecievedCallSeconds() (err error)
Adds the specified amount of seconds to the received call seconds. When the threshold specified in the user's tariff plan is reached then the received call balance is reseted and the bonus specified in the tariff plan is applied. The amount filed has to be filled in call descriptor.
func (*CallDescriptor) Debit ¶
func (cd *CallDescriptor) Debit() (cc *CallCost, err error)
Interface method used to add/substract an amount of cents or bonus seconds (as returned by GetCost method) from user's money balance.
func (*CallDescriptor) DebitCents ¶
func (cd *CallDescriptor) DebitCents() (left float64, err error)
Interface method used to add/substract an amount of cents from user's money balance. The amount filed has to be filled in call descriptor.
func (*CallDescriptor) DebitSMS ¶
func (cd *CallDescriptor) DebitSMS() (left float64, err error)
Interface method used to add/substract an amount of units from user's sms balance. The amount filed has to be filled in call descriptor.
func (*CallDescriptor) DebitSeconds ¶
func (cd *CallDescriptor) DebitSeconds() (err error)
Interface method used to add/substract an amount of seconds from user's minutes balance. The amount filed has to be filled in call descriptor.
func (*CallDescriptor) FlushCache ¶
func (cd *CallDescriptor) FlushCache() (err error)
Cleans all chached data
func (*CallDescriptor) GetCost ¶
func (cd *CallDescriptor) GetCost() (*CallCost, error)
Creates a CallCost structure with the cost information calculated for the received CallDescriptor.
func (*CallDescriptor) GetKey ¶
func (cd *CallDescriptor) GetKey() string
Constructs the key for the storage lookup. The prefixLen is limiting the length of the destination prefix.
func (*CallDescriptor) GetMaxSessionTime ¶
func (cd *CallDescriptor) GetMaxSessionTime(startTime time.Time) (seconds float64, err error)
Returns the approximate max allowed session for user balance. It will try the max amount received in the call descriptor and will decrease it by 10% for nine times. So if the user has little credit it will still allow 10% of the initial amount. If the user has no credit then it will return 0. If the user has postpayed plan it returns -1.
func (*CallDescriptor) GetUserBalanceKey ¶
func (cd *CallDescriptor) GetUserBalanceKey() string
Returns the key used to retrive the user balance involved in this call
func (*CallDescriptor) LoadActivationPeriods ¶
func (cd *CallDescriptor) LoadActivationPeriods() (destPrefix string, err error)
Restores the activation periods for the specified prefix from storage.
func (*CallDescriptor) MaxDebit ¶
func (cd *CallDescriptor) MaxDebit(startTime time.Time) (cc *CallCost, err error)
Interface method used to add/substract an amount of cents or bonus seconds (as returned by GetCost method) from user's money balance. This methods combines the Debit and GetMaxSessionTime and will debit the max available time as returned by the GetMaxSessionTime method. The amount filed has to be filled in call descriptor.
type CodecMsgpackMarshaler ¶
type CodecMsgpackMarshaler struct {
// contains filtered or unexported fields
}
func NewCodecMsgpackMarshaler ¶
func NewCodecMsgpackMarshaler() *CodecMsgpackMarshaler
func (*CodecMsgpackMarshaler) Marshal ¶
func (cmm *CodecMsgpackMarshaler) Marshal(v interface{}) (b []byte, err error)
func (*CodecMsgpackMarshaler) Unmarshal ¶
func (cmm *CodecMsgpackMarshaler) Unmarshal(data []byte, v interface{}) error
type Connector ¶
type Connector interface {
GetCost(CallDescriptor, *CallCost) error
Debit(CallDescriptor, *CallCost) error
MaxDebit(CallDescriptor, *CallCost) error
DebitCents(CallDescriptor, *float64) error
DebitSeconds(CallDescriptor, *float64) error
GetMaxSessionTime(CallDescriptor, *float64) error
}
type DataStorage ¶
type DataStorage interface {
Close()
Flush() error
GetRatingProfile(string) (*RatingProfile, error)
SetRatingProfile(*RatingProfile) error
GetDestination(string) (*Destination, error)
SetDestination(*Destination) error
// Apier functions
GetTPIds() ([]string, error)
SetTPTiming(string, *Timing) error
ExistsTPTiming(string, string) (bool, error)
GetTPTiming(string, string) (*Timing, error)
GetTPTimingIds(string) ([]string, error)
SetTPDestination(string, *Destination) error
ExistsTPDestination(string, string) (bool, error)
GetTPDestination(string, string) (*Destination, error)
GetTPDestinationIds(string) ([]string, error)
ExistsTPRate(string, string) (bool, error)
SetTPRates(string, map[string][]*Rate) error
GetTPRate(string, string) (*utils.TPRate, error)
GetTPRateIds(string) ([]string, error)
ExistsTPDestinationRate(string, string) (bool, error)
SetTPDestinationRates(string, map[string][]*DestinationRate) error
GetTPDestinationRate(string, string) (*utils.TPDestinationRate, error)
GetTPDestinationRateIds(string) ([]string, error)
ExistsTPDestRateTiming(string, string) (bool, error)
SetTPDestRateTimings(string, map[string][]*DestinationRateTiming) error
GetTPDestRateTiming(string, string) (*utils.TPDestRateTiming, error)
GetTPDestRateTimingIds(string) ([]string, error)
ExistsTPRatingProfile(string, string) (bool, error)
SetTPRatingProfiles(string, map[string][]*RatingProfile) error
GetTPRatingProfile(string, string) (*utils.TPRatingProfile, error)
GetTPRatingProfileIds(*utils.AttrTPRatingProfileIds) ([]string, error)
ExistsTPActions(string, string) (bool, error)
SetTPActions(string, map[string][]*Action) error
GetTPActions(string, string) (*utils.TPActions, error)
GetTPActionIds(string) ([]string, error)
ExistsTPActionTimings(string, string) (bool, error)
SetTPActionTimings(string, map[string][]*ActionTiming) error
GetTPActionTimings(string, string) (map[string][]*utils.TPActionTimingsRow, error)
GetTPActionTimingIds(string) ([]string, error)
ExistsTPActionTriggers(string, string) (bool, error)
SetTPActionTriggers(string, map[string][]*ActionTrigger) error
GetTPActionTriggerIds(string) ([]string, error)
ExistsTPAccountActions(string, string) (bool, error)
SetTPAccountActions(string, map[string]*AccountAction) error
GetTPAccountActionIds(string) ([]string, error)
// End Apier functions
GetActions(string) (Actions, error)
SetActions(string, Actions) error
GetUserBalance(string) (*UserBalance, error)
SetUserBalance(*UserBalance) error
GetActionTimings(string) (ActionTimings, error)
SetActionTimings(string, ActionTimings) error
GetAllActionTimings() (map[string]ActionTimings, error)
SetCdr(utils.CDR) error
SetRatedCdr(utils.CDR, *CallCost, string) error
GetAllRatedCdr() ([]utils.CDR, error)
//GetAllActionTimingsLogs() (map[string]ActionsTimings, error)
LogCallCost(uuid, source string, cc *CallCost) error
LogError(uuid, source, errstr string) error
LogActionTrigger(ubId, source string, at *ActionTrigger, as Actions) error
LogActionTiming(source string, at *ActionTiming, as Actions) error
GetCallCostLog(uuid, source string) (*CallCost, error)
// loader functions
GetTpDestinations(string, string) ([]*Destination, error)
GetTpTimings(string, string) (map[string]*Timing, error)
GetTpRates(string, string) (map[string]*Rate, error)
GetTpDestinationRates(string, string) (map[string][]*DestinationRate, error)
GetTpDestinationRateTimings(string, string) ([]*DestinationRateTiming, error)
GetTpRatingProfiles(string, string) (map[string]*RatingProfile, error)
GetTpActions(string, string) (map[string][]*Action, error)
GetTpActionTimings(string, string) (map[string][]*ActionTiming, error)
GetTpActionTriggers(string, string) (map[string][]*ActionTrigger, error)
GetTpAccountActions(string, string) (map[string]*AccountAction, error)
}
Interface for storage providers.
func ConfigureDatabase ¶
func ConfigureDatabase(db_type, host, port, name, user, pass string) (db DataStorage, err error)
func NewMapStorage ¶
func NewMapStorage() (DataStorage, error)
func NewMongoStorage ¶
func NewMongoStorage(host, port, db, user, pass string) (DataStorage, error)
func NewMySQLStorage ¶
func NewMySQLStorage(host, port, name, user, password string) (DataStorage, error)
func NewPostgresStorage ¶
func NewPostgresStorage(host, port, name, user, password string) (DataStorage, error)
func NewRedisStorage ¶
func NewRedisStorage(address string, db int, pass string) (DataStorage, error)
type DbReader ¶
type DbReader struct {
// contains filtered or unexported fields
}
func NewDbReader ¶
func NewDbReader(storDB DataStorage, storage DataStorage, tpid string) *DbReader
func (*DbReader) LoadAccountActions ¶
func (*DbReader) LoadAccountActionsByTag ¶
func (*DbReader) LoadActionTimings ¶
func (*DbReader) LoadActionTriggers ¶
func (*DbReader) LoadActions ¶
func (*DbReader) LoadDestinationRateTimings ¶
func (*DbReader) LoadDestinationRates ¶
func (*DbReader) LoadDestinations ¶
func (*DbReader) LoadRatingProfileByTag ¶
func (*DbReader) LoadRatingProfiles ¶
func (*DbReader) LoadTimings ¶
func (*DbReader) WriteToDatabase ¶
type Destination ¶
Structure that gathers multiple destination prefixes under a common id.
func GetDestination ¶
func GetDestination(dId string) (d *Destination, err error)
Gets the specified destination from the storage and caches it.
func (*Destination) String ¶
func (d *Destination) String() (result string)
type DestinationRate ¶
type DestinationRateTiming ¶
type DestinationRateTiming struct {
Tag string
DestinationRatesTag string
Weight float64
TimingsTag string // intermediary used when loading from db
// contains filtered or unexported fields
}
func NewDestinationRateTiming ¶
func NewDestinationRateTiming(destinationRatesTag string, timing *Timing, weight string) (rt *DestinationRateTiming)
func (*DestinationRateTiming) GetInterval ¶
func (rt *DestinationRateTiming) GetInterval(dr *DestinationRate) (i *Interval)
type FileLineRegexValidator ¶
type GOBMarshaler ¶
type GOBMarshaler struct{}
func (*GOBMarshaler) Marshal ¶
func (gm *GOBMarshaler) Marshal(v interface{}) (data []byte, err error)
func (*GOBMarshaler) Unmarshal ¶
func (gm *GOBMarshaler) Unmarshal(data []byte, v interface{}) error
type Interval ¶
type Interval struct {
Years Years
Months Months
MonthDays MonthDays
WeekDays WeekDays
StartTime, EndTime string // ##:##:## format
Weight, ConnectFee float64
Prices PriceGroups // GroupInterval (start time): Price
RoundingMethod string
RoundingDecimals int
}
Defines a time interval for which a certain set of prices will apply
type IntervalList ¶
type IntervalList []*Interval
Structure to store intervals according to weight
func (IntervalList) Len ¶
func (il IntervalList) Len() int
func (IntervalList) Less ¶
func (il IntervalList) Less(i, j int) bool
func (IntervalList) Sort ¶
func (il IntervalList) Sort()
func (IntervalList) Swap ¶
func (il IntervalList) Swap(i, j int)
type JSONBufMarshaler ¶
type JSONBufMarshaler struct{}
func (*JSONBufMarshaler) Marshal ¶
func (jbm *JSONBufMarshaler) Marshal(v interface{}) (data []byte, err error)
func (*JSONBufMarshaler) Unmarshal ¶
func (jbm *JSONBufMarshaler) Unmarshal(data []byte, v interface{}) error
type JSONMarshaler ¶
type JSONMarshaler struct{}
func (*JSONMarshaler) Marshal ¶
func (jm *JSONMarshaler) Marshal(v interface{}) ([]byte, error)
func (*JSONMarshaler) Unmarshal ¶
func (jm *JSONMarshaler) Unmarshal(data []byte, v interface{}) error
type LogCostEntry ¶
type LogErrEntry ¶
type LogTimingEntry ¶
type LogTimingEntry struct {
ActionTiming *ActionTiming
Actions Actions
LogTime time.Time
Source string
}
type LogTriggerEntry ¶
type LogTriggerEntry struct {
ActionTrigger *ActionTrigger
Actions Actions
LogTime time.Time
Source string
// contains filtered or unexported fields
}
type MapStorage ¶
type MapStorage struct {
// contains filtered or unexported fields
}
func (*MapStorage) Close ¶
func (ms *MapStorage) Close()
func (*MapStorage) ExistsTPAccountActions ¶
func (ms *MapStorage) ExistsTPAccountActions(tpid, aaId string) (bool, error)
func (*MapStorage) ExistsTPActionTimings ¶
func (ms *MapStorage) ExistsTPActionTimings(tpid, atId string) (bool, error)
func (*MapStorage) ExistsTPActionTriggers ¶
func (ms *MapStorage) ExistsTPActionTriggers(tpid, atId string) (bool, error)
func (*MapStorage) ExistsTPActions ¶
func (ms *MapStorage) ExistsTPActions(tpid, aId string) (bool, error)
func (*MapStorage) ExistsTPDestRateTiming ¶
func (ms *MapStorage) ExistsTPDestRateTiming(tpid, drtId string) (bool, error)
func (*MapStorage) ExistsTPDestination ¶
func (ms *MapStorage) ExistsTPDestination(tpid, destTag string) (bool, error)
func (*MapStorage) ExistsTPDestinationRate ¶
func (ms *MapStorage) ExistsTPDestinationRate(tpid, drId string) (bool, error)
func (*MapStorage) ExistsTPRate ¶
func (ms *MapStorage) ExistsTPRate(tpid, rtId string) (bool, error)
func (*MapStorage) ExistsTPRatingProfile ¶
func (ms *MapStorage) ExistsTPRatingProfile(tpid, rpId string) (bool, error)
func (*MapStorage) ExistsTPTiming ¶
func (ms *MapStorage) ExistsTPTiming(tpid, tmId string) (bool, error)
func (*MapStorage) Flush ¶
func (ms *MapStorage) Flush() error
func (*MapStorage) GetActionTimings ¶
func (ms *MapStorage) GetActionTimings(key string) (ats ActionTimings, err error)
func (*MapStorage) GetActions ¶
func (ms *MapStorage) GetActions(key string) (as Actions, err error)
func (*MapStorage) GetAllActionTimings ¶
func (ms *MapStorage) GetAllActionTimings() (ats map[string]ActionTimings, err error)
func (*MapStorage) GetAllRatedCdr ¶
func (ms *MapStorage) GetAllRatedCdr() ([]utils.CDR, error)
func (*MapStorage) GetCallCostLog ¶
func (ms *MapStorage) GetCallCostLog(uuid, source string) (cc *CallCost, err error)
func (*MapStorage) GetDestination ¶
func (ms *MapStorage) GetDestination(key string) (dest *Destination, err error)
func (*MapStorage) GetRatingProfile ¶
func (ms *MapStorage) GetRatingProfile(key string) (rp *RatingProfile, err error)
func (*MapStorage) GetTPAccountActionIds ¶
func (ms *MapStorage) GetTPAccountActionIds(tpid string) ([]string, error)
func (*MapStorage) GetTPActionIds ¶
func (ms *MapStorage) GetTPActionIds(tpid string) ([]string, error)
func (*MapStorage) GetTPActionTimingIds ¶
func (ms *MapStorage) GetTPActionTimingIds(tpid string) ([]string, error)
func (*MapStorage) GetTPActionTimings ¶
func (ms *MapStorage) GetTPActionTimings(tpid, atId string) (map[string][]*utils.TPActionTimingsRow, error)
func (*MapStorage) GetTPActionTriggerIds ¶
func (ms *MapStorage) GetTPActionTriggerIds(tpid string) ([]string, error)
func (*MapStorage) GetTPActions ¶
func (ms *MapStorage) GetTPActions(tpid, aId string) (*utils.TPActions, error)
func (*MapStorage) GetTPDestRateTiming ¶
func (ms *MapStorage) GetTPDestRateTiming(tpid, drtId string) (*utils.TPDestRateTiming, error)
func (*MapStorage) GetTPDestRateTimingIds ¶
func (ms *MapStorage) GetTPDestRateTimingIds(tpid string) ([]string, error)
func (*MapStorage) GetTPDestination ¶
func (ms *MapStorage) GetTPDestination(tpid, destTag string) (*Destination, error)
func (*MapStorage) GetTPDestinationIds ¶
func (ms *MapStorage) GetTPDestinationIds(tpid string) ([]string, error)
func (*MapStorage) GetTPDestinationRate ¶
func (ms *MapStorage) GetTPDestinationRate(tpid, drId string) (*utils.TPDestinationRate, error)
func (*MapStorage) GetTPDestinationRateIds ¶
func (ms *MapStorage) GetTPDestinationRateIds(tpid string) ([]string, error)
func (*MapStorage) GetTPIds ¶
func (ms *MapStorage) GetTPIds() ([]string, error)
func (*MapStorage) GetTPRate ¶
func (ms *MapStorage) GetTPRate(tpid, rtId string) (*utils.TPRate, error)
func (*MapStorage) GetTPRateIds ¶
func (ms *MapStorage) GetTPRateIds(tpid string) ([]string, error)
func (*MapStorage) GetTPRatingProfile ¶
func (ms *MapStorage) GetTPRatingProfile(tpid, rpId string) (*utils.TPRatingProfile, error)
func (*MapStorage) GetTPRatingProfileIds ¶
func (ms *MapStorage) GetTPRatingProfileIds(filters *utils.AttrTPRatingProfileIds) ([]string, error)
func (*MapStorage) GetTPTiming ¶
func (ms *MapStorage) GetTPTiming(tpid, tmId string) (*Timing, error)
func (*MapStorage) GetTPTimingIds ¶
func (ms *MapStorage) GetTPTimingIds(tpid string) ([]string, error)
func (*MapStorage) GetTpAccountActions ¶
func (ms *MapStorage) GetTpAccountActions(tpid, tag string) (map[string]*AccountAction, error)
func (*MapStorage) GetTpActionTimings ¶
func (ms *MapStorage) GetTpActionTimings(tpid, tag string) (map[string][]*ActionTiming, error)
func (*MapStorage) GetTpActionTriggers ¶
func (ms *MapStorage) GetTpActionTriggers(tpid, tag string) (map[string][]*ActionTrigger, error)
func (*MapStorage) GetTpActions ¶
func (ms *MapStorage) GetTpActions(tpid, tag string) (map[string][]*Action, error)
func (*MapStorage) GetTpDestinationRateTimings ¶
func (ms *MapStorage) GetTpDestinationRateTimings(tpid, tag string) ([]*DestinationRateTiming, error)
func (*MapStorage) GetTpDestinationRates ¶
func (ms *MapStorage) GetTpDestinationRates(tpid, tag string) (map[string][]*DestinationRate, error)
func (*MapStorage) GetTpDestinations ¶
func (ms *MapStorage) GetTpDestinations(tpid, tag string) ([]*Destination, error)
func (*MapStorage) GetTpRates ¶
func (ms *MapStorage) GetTpRates(tpid, tag string) (map[string]*Rate, error)
func (*MapStorage) GetTpRatingProfiles ¶
func (ms *MapStorage) GetTpRatingProfiles(tpid, tag string) (map[string]*RatingProfile, error)
func (*MapStorage) GetTpTimings ¶
func (ms *MapStorage) GetTpTimings(tpid, tag string) (map[string]*Timing, error)
func (*MapStorage) GetUserBalance ¶
func (ms *MapStorage) GetUserBalance(key string) (ub *UserBalance, err error)
func (*MapStorage) LogActionTiming ¶
func (ms *MapStorage) LogActionTiming(source string, at *ActionTiming, as Actions) (err error)
func (*MapStorage) LogActionTrigger ¶
func (ms *MapStorage) LogActionTrigger(ubId, source string, at *ActionTrigger, as Actions) (err error)
func (*MapStorage) LogCallCost ¶
func (ms *MapStorage) LogCallCost(uuid, source string, cc *CallCost) error
func (*MapStorage) LogError ¶
func (ms *MapStorage) LogError(uuid, source, errstr string) (err error)
func (*MapStorage) SetActionTimings ¶
func (ms *MapStorage) SetActionTimings(key string, ats ActionTimings) (err error)
func (*MapStorage) SetActions ¶
func (ms *MapStorage) SetActions(key string, as Actions) (err error)
func (*MapStorage) SetDestination ¶
func (ms *MapStorage) SetDestination(dest *Destination) (err error)
func (*MapStorage) SetRatedCdr ¶
func (*MapStorage) SetRatingProfile ¶
func (ms *MapStorage) SetRatingProfile(rp *RatingProfile) (err error)
func (*MapStorage) SetTPAccountActions ¶
func (ms *MapStorage) SetTPAccountActions(tpid string, aa map[string]*AccountAction) error
func (*MapStorage) SetTPActionTimings ¶
func (ms *MapStorage) SetTPActionTimings(tpid string, ats map[string][]*ActionTiming) error
func (*MapStorage) SetTPActionTriggers ¶
func (ms *MapStorage) SetTPActionTriggers(tpid string, ats map[string][]*ActionTrigger) error
func (*MapStorage) SetTPActions ¶
func (ms *MapStorage) SetTPActions(tpid string, acts map[string][]*Action) error
func (*MapStorage) SetTPDestRateTimings ¶
func (ms *MapStorage) SetTPDestRateTimings(tpid string, drts map[string][]*DestinationRateTiming) error
func (*MapStorage) SetTPDestination ¶
func (ms *MapStorage) SetTPDestination(tpid string, dest *Destination) error
func (*MapStorage) SetTPDestinationRates ¶
func (ms *MapStorage) SetTPDestinationRates(tpid string, drs map[string][]*DestinationRate) error
func (*MapStorage) SetTPRates ¶
func (ms *MapStorage) SetTPRates(tpid string, rts map[string][]*Rate) error
func (*MapStorage) SetTPRatingProfiles ¶
func (ms *MapStorage) SetTPRatingProfiles(tpid string, rps map[string][]*RatingProfile) error
func (*MapStorage) SetTPTiming ¶
func (ms *MapStorage) SetTPTiming(tpid string, tm *Timing) error
func (*MapStorage) SetUserBalance ¶
func (ms *MapStorage) SetUserBalance(ub *UserBalance) (err error)
type MinuteBucket ¶
type MinuteBucket struct {
Seconds float64
Weight float64
Price float64 // percentage from standard price or absolute value depending on Type
PriceType string
DestinationId string
ExpirationDate time.Time
// contains filtered or unexported fields
}
func (*MinuteBucket) GetSecondsForCredit ¶
func (mb *MinuteBucket) GetSecondsForCredit(credit float64) (seconds float64)
Returns the available number of seconds for a specified credit
func (*MinuteBucket) IsExpired ¶
func (mb *MinuteBucket) IsExpired() bool
type MinuteInfo ¶
Holds the bonus minute information related to a specified timespan
type MongoStorage ¶
type MongoStorage struct {
// contains filtered or unexported fields
}
func (*MongoStorage) Close ¶
func (ms *MongoStorage) Close()
func (*MongoStorage) ExistsTPAccountActions ¶
func (ms *MongoStorage) ExistsTPAccountActions(tpid, aaId string) (bool, error)
func (*MongoStorage) ExistsTPActionTimings ¶
func (ms *MongoStorage) ExistsTPActionTimings(tpid, atId string) (bool, error)
func (*MongoStorage) ExistsTPActionTriggers ¶
func (ms *MongoStorage) ExistsTPActionTriggers(tpid, atId string) (bool, error)
func (*MongoStorage) ExistsTPActions ¶
func (ms *MongoStorage) ExistsTPActions(tpid, aId string) (bool, error)
func (*MongoStorage) ExistsTPDestRateTiming ¶
func (ms *MongoStorage) ExistsTPDestRateTiming(tpid, drtId string) (bool, error)
func (*MongoStorage) ExistsTPDestination ¶
func (ms *MongoStorage) ExistsTPDestination(tpid, destTag string) (bool, error)
func (*MongoStorage) ExistsTPDestinationRate ¶
func (ms *MongoStorage) ExistsTPDestinationRate(tpid, drId string) (bool, error)
func (*MongoStorage) ExistsTPRate ¶
func (ms *MongoStorage) ExistsTPRate(tpid, rtId string) (bool, error)
func (*MongoStorage) ExistsTPRatingProfile ¶
func (ms *MongoStorage) ExistsTPRatingProfile(tpid, rpId string) (bool, error)
func (*MongoStorage) ExistsTPTiming ¶
func (ms *MongoStorage) ExistsTPTiming(tpid, tmId string) (bool, error)
func (*MongoStorage) Flush ¶
func (ms *MongoStorage) Flush() (err error)
func (*MongoStorage) GetActionTimings ¶
func (ms *MongoStorage) GetActionTimings(key string) (ats ActionTimings, err error)
func (*MongoStorage) GetActions ¶
func (ms *MongoStorage) GetActions(key string) (as Actions, err error)
func (*MongoStorage) GetAllActionTimings ¶
func (ms *MongoStorage) GetAllActionTimings() (ats map[string]ActionTimings, err error)
func (*MongoStorage) GetAllRatedCdr ¶
func (ms *MongoStorage) GetAllRatedCdr() ([]utils.CDR, error)
func (*MongoStorage) GetCallCostLog ¶
func (ms *MongoStorage) GetCallCostLog(uuid, source string) (cc *CallCost, err error)
func (*MongoStorage) GetDestination ¶
func (ms *MongoStorage) GetDestination(key string) (result *Destination, err error)
func (*MongoStorage) GetDestinations ¶
func (ms *MongoStorage) GetDestinations(tpid string) ([]*Destination, error)
func (*MongoStorage) GetRatingProfile ¶
func (ms *MongoStorage) GetRatingProfile(key string) (rp *RatingProfile, err error)
func (*MongoStorage) GetTPAccountActionIds ¶
func (ms *MongoStorage) GetTPAccountActionIds(tpid string) ([]string, error)
func (*MongoStorage) GetTPActionIds ¶
func (ms *MongoStorage) GetTPActionIds(tpid string) ([]string, error)
func (*MongoStorage) GetTPActionTimingIds ¶
func (ms *MongoStorage) GetTPActionTimingIds(tpid string) ([]string, error)
func (*MongoStorage) GetTPActionTimings ¶
func (ms *MongoStorage) GetTPActionTimings(tpid, atId string) (map[string][]*utils.TPActionTimingsRow, error)
func (*MongoStorage) GetTPActionTriggerIds ¶
func (ms *MongoStorage) GetTPActionTriggerIds(tpid string) ([]string, error)
func (*MongoStorage) GetTPActions ¶
func (ms *MongoStorage) GetTPActions(tpid, aId string) (*utils.TPActions, error)
func (*MongoStorage) GetTPDestRateTiming ¶
func (ms *MongoStorage) GetTPDestRateTiming(tpid, drtId string) (*utils.TPDestRateTiming, error)
func (*MongoStorage) GetTPDestRateTimingIds ¶
func (ms *MongoStorage) GetTPDestRateTimingIds(tpid string) ([]string, error)
func (*MongoStorage) GetTPDestination ¶
func (ms *MongoStorage) GetTPDestination(tpid, destTag string) (*Destination, error)
Extracts destinations from StorDB on specific tariffplan id
func (*MongoStorage) GetTPDestinationIds ¶
func (ms *MongoStorage) GetTPDestinationIds(tpid string) ([]string, error)
func (*MongoStorage) GetTPDestinationRate ¶
func (ms *MongoStorage) GetTPDestinationRate(tpid, drId string) (*utils.TPDestinationRate, error)
func (*MongoStorage) GetTPDestinationRateIds ¶
func (ms *MongoStorage) GetTPDestinationRateIds(tpid string) ([]string, error)
func (*MongoStorage) GetTPIds ¶
func (ms *MongoStorage) GetTPIds() ([]string, error)
func (*MongoStorage) GetTPRate ¶
func (ms *MongoStorage) GetTPRate(tpid, rtId string) (*utils.TPRate, error)
func (*MongoStorage) GetTPRateIds ¶
func (ms *MongoStorage) GetTPRateIds(tpid string) ([]string, error)
func (*MongoStorage) GetTPRatingProfile ¶
func (ms *MongoStorage) GetTPRatingProfile(tpid, rpId string) (*utils.TPRatingProfile, error)
func (*MongoStorage) GetTPRatingProfileIds ¶
func (ms *MongoStorage) GetTPRatingProfileIds(filters *utils.AttrTPRatingProfileIds) ([]string, error)
func (*MongoStorage) GetTPTiming ¶
func (ms *MongoStorage) GetTPTiming(tpid, tmId string) (*Timing, error)
func (*MongoStorage) GetTPTimingIds ¶
func (ms *MongoStorage) GetTPTimingIds(tpid string) ([]string, error)
func (*MongoStorage) GetTpAccountActions ¶
func (ms *MongoStorage) GetTpAccountActions(tpid, tag string) (map[string]*AccountAction, error)
func (*MongoStorage) GetTpActionTimings ¶
func (ms *MongoStorage) GetTpActionTimings(tpid, tag string) (map[string][]*ActionTiming, error)
func (*MongoStorage) GetTpActionTriggers ¶
func (ms *MongoStorage) GetTpActionTriggers(tpid, tag string) (map[string][]*ActionTrigger, error)
func (*MongoStorage) GetTpActions ¶
func (ms *MongoStorage) GetTpActions(tpid, tag string) (map[string][]*Action, error)
func (*MongoStorage) GetTpDestinationRateTimings ¶
func (ms *MongoStorage) GetTpDestinationRateTimings(tpid, tag string) ([]*DestinationRateTiming, error)
func (*MongoStorage) GetTpDestinationRates ¶
func (ms *MongoStorage) GetTpDestinationRates(tpid, tag string) (map[string][]*DestinationRate, error)
func (*MongoStorage) GetTpDestinations ¶
func (ms *MongoStorage) GetTpDestinations(tpid, tag string) ([]*Destination, error)
func (*MongoStorage) GetTpRates ¶
func (ms *MongoStorage) GetTpRates(tpid, tag string) (map[string]*Rate, error)
func (*MongoStorage) GetTpRatingProfiles ¶
func (ms *MongoStorage) GetTpRatingProfiles(tpid, tag string) (map[string]*RatingProfile, error)
func (*MongoStorage) GetTpTimings ¶
func (ms *MongoStorage) GetTpTimings(tpid, tag string) (map[string]*Timing, error)
func (*MongoStorage) GetUserBalance ¶
func (ms *MongoStorage) GetUserBalance(key string) (result *UserBalance, err error)
func (*MongoStorage) LogActionTiming ¶
func (ms *MongoStorage) LogActionTiming(source string, at *ActionTiming, as Actions) (err error)
func (*MongoStorage) LogActionTrigger ¶
func (ms *MongoStorage) LogActionTrigger(ubId, source string, at *ActionTrigger, as Actions) (err error)
func (*MongoStorage) LogCallCost ¶
func (ms *MongoStorage) LogCallCost(uuid, source string, cc *CallCost) error
func (*MongoStorage) LogError ¶
func (ms *MongoStorage) LogError(uuid, source, errstr string) (err error)
func (*MongoStorage) SetActionTimings ¶
func (ms *MongoStorage) SetActionTimings(key string, ats ActionTimings) error
func (*MongoStorage) SetActions ¶
func (ms *MongoStorage) SetActions(key string, as Actions) error
func (*MongoStorage) SetDestination ¶
func (ms *MongoStorage) SetDestination(dest *Destination) error
func (*MongoStorage) SetRatedCdr ¶
func (*MongoStorage) SetRatingProfile ¶
func (ms *MongoStorage) SetRatingProfile(rp *RatingProfile) error
func (*MongoStorage) SetTPAccountActions ¶
func (ms *MongoStorage) SetTPAccountActions(tpid string, aa map[string]*AccountAction) error
func (*MongoStorage) SetTPActionTimings ¶
func (ms *MongoStorage) SetTPActionTimings(tpid string, ats map[string][]*ActionTiming) error
func (*MongoStorage) SetTPActionTriggers ¶
func (ms *MongoStorage) SetTPActionTriggers(tpid string, ats map[string][]*ActionTrigger) error
func (*MongoStorage) SetTPActions ¶
func (ms *MongoStorage) SetTPActions(tpid string, acts map[string][]*Action) error
func (*MongoStorage) SetTPDestRateTimings ¶
func (ms *MongoStorage) SetTPDestRateTimings(tpid string, drts map[string][]*DestinationRateTiming) error
func (*MongoStorage) SetTPDestination ¶
func (ms *MongoStorage) SetTPDestination(tpid string, dest *Destination) error
func (*MongoStorage) SetTPDestinationRates ¶
func (ms *MongoStorage) SetTPDestinationRates(tpid string, drs map[string][]*DestinationRate) error
func (*MongoStorage) SetTPRates ¶
func (ms *MongoStorage) SetTPRates(tpid string, rts map[string][]*Rate) error
func (*MongoStorage) SetTPRatingProfiles ¶
func (ms *MongoStorage) SetTPRatingProfiles(tpid string, rps map[string][]*RatingProfile) error
func (*MongoStorage) SetTPTiming ¶
func (ms *MongoStorage) SetTPTiming(tpid string, tm *Timing) error
func (*MongoStorage) SetUserBalance ¶
func (ms *MongoStorage) SetUserBalance(ub *UserBalance) error
type MonthDays ¶
type MonthDays []int
Defines month days series
type Months ¶
Defines months series
type MySQLStorage ¶
type MySQLStorage struct {
*SQLStorage
}
type PostgresStorage ¶
type PostgresStorage struct {
*SQLStorage
}
type Price ¶
type PriceGroups ¶
type PriceGroups []*Price
func (*PriceGroups) AddPrice ¶
func (pg *PriceGroups) AddPrice(ps ...*Price)
func (PriceGroups) Equal ¶
func (pg PriceGroups) Equal(og PriceGroups) bool
func (PriceGroups) Len ¶
func (pg PriceGroups) Len() int
func (PriceGroups) Less ¶
func (pg PriceGroups) Less(i, j int) bool
func (PriceGroups) Sort ¶
func (pg PriceGroups) Sort()
func (PriceGroups) Swap ¶
func (pg PriceGroups) Swap(i, j int)
type RPCClientConnector ¶
func (*RPCClientConnector) Debit ¶
func (rcc *RPCClientConnector) Debit(cd CallDescriptor, cc *CallCost) error
func (*RPCClientConnector) DebitCents ¶
func (rcc *RPCClientConnector) DebitCents(cd CallDescriptor, resp *float64) error
func (*RPCClientConnector) DebitSeconds ¶
func (rcc *RPCClientConnector) DebitSeconds(cd CallDescriptor, resp *float64) error
func (*RPCClientConnector) GetCost ¶
func (rcc *RPCClientConnector) GetCost(cd CallDescriptor, cc *CallCost) error
func (*RPCClientConnector) GetMaxSessionTime ¶
func (rcc *RPCClientConnector) GetMaxSessionTime(cd CallDescriptor, resp *float64) error
func (*RPCClientConnector) MaxDebit ¶
func (rcc *RPCClientConnector) MaxDebit(cd CallDescriptor, cc *CallCost) error
type Rate ¶
type RatingProfile ¶
type RatingProfile struct {
Id string
FallbackKey string // FallbackKey is used as complete combination of Tenant:TOR:Direction:Subject
DestinationMap map[string][]*ActivationPeriod
Tag, Tenant, TOR, Direction, Subject, DestRatesTimingTag, RatesFallbackSubject, ActivationTime string // used only for loading
}
func (*RatingProfile) AddActivationPeriodIfNotPresent ¶
func (rp *RatingProfile) AddActivationPeriodIfNotPresent(destInfo string, aps ...*ActivationPeriod)
Adds an activation period that applyes to current rating profile if not already present.
func (*RatingProfile) GetActivationPeriodsForPrefix ¶
func (rp *RatingProfile) GetActivationPeriodsForPrefix(destPrefix string) (foundPrefix string, aps []*ActivationPeriod, err error)
type RedisStorage ¶
type RedisStorage struct {
// contains filtered or unexported fields
}
func (*RedisStorage) Close ¶
func (rs *RedisStorage) Close()
func (*RedisStorage) ExistsTPAccountActions ¶
func (rs *RedisStorage) ExistsTPAccountActions(tpid, aaId string) (bool, error)
func (*RedisStorage) ExistsTPActionTimings ¶
func (rs *RedisStorage) ExistsTPActionTimings(tpid, atId string) (bool, error)
func (*RedisStorage) ExistsTPActionTriggers ¶
func (rs *RedisStorage) ExistsTPActionTriggers(tpid, atId string) (bool, error)
func (*RedisStorage) ExistsTPActions ¶
func (rs *RedisStorage) ExistsTPActions(tpid, aId string) (bool, error)
func (*RedisStorage) ExistsTPDestRateTiming ¶
func (rs *RedisStorage) ExistsTPDestRateTiming(tpid, drtId string) (bool, error)
func (*RedisStorage) ExistsTPDestination ¶
func (rs *RedisStorage) ExistsTPDestination(tpid, destTag string) (bool, error)
func (*RedisStorage) ExistsTPDestinationRate ¶
func (rs *RedisStorage) ExistsTPDestinationRate(tpid, drId string) (bool, error)
func (*RedisStorage) ExistsTPRate ¶
func (rs *RedisStorage) ExistsTPRate(tpid, rtId string) (bool, error)
func (*RedisStorage) ExistsTPRatingProfile ¶
func (rs *RedisStorage) ExistsTPRatingProfile(tpid, rpId string) (bool, error)
func (*RedisStorage) ExistsTPTiming ¶
func (rs *RedisStorage) ExistsTPTiming(tpid, tmId string) (bool, error)
func (*RedisStorage) Flush ¶
func (rs *RedisStorage) Flush() (err error)
func (*RedisStorage) GetActionTimings ¶
func (rs *RedisStorage) GetActionTimings(key string) (ats ActionTimings, err error)
func (*RedisStorage) GetActions ¶
func (rs *RedisStorage) GetActions(key string) (as Actions, err error)
func (*RedisStorage) GetAllActionTimings ¶
func (rs *RedisStorage) GetAllActionTimings() (ats map[string]ActionTimings, err error)
func (*RedisStorage) GetAllRatedCdr ¶
func (rs *RedisStorage) GetAllRatedCdr() ([]utils.CDR, error)
func (*RedisStorage) GetCallCostLog ¶
func (rs *RedisStorage) GetCallCostLog(uuid, source string) (cc *CallCost, err error)
func (*RedisStorage) GetDestination ¶
func (rs *RedisStorage) GetDestination(key string) (dest *Destination, err error)
func (*RedisStorage) GetRatingProfile ¶
func (rs *RedisStorage) GetRatingProfile(key string) (rp *RatingProfile, err error)
func (*RedisStorage) GetTPAccountActionIds ¶
func (rs *RedisStorage) GetTPAccountActionIds(tpid string) ([]string, error)
func (*RedisStorage) GetTPActionIds ¶
func (rs *RedisStorage) GetTPActionIds(tpid string) ([]string, error)
func (*RedisStorage) GetTPActionTimingIds ¶
func (rs *RedisStorage) GetTPActionTimingIds(tpid string) ([]string, error)
func (*RedisStorage) GetTPActionTimings ¶
func (rs *RedisStorage) GetTPActionTimings(tpid, atId string) (map[string][]*utils.TPActionTimingsRow, error)
func (*RedisStorage) GetTPActionTriggerIds ¶
func (rs *RedisStorage) GetTPActionTriggerIds(tpid string) ([]string, error)
func (*RedisStorage) GetTPActions ¶
func (rs *RedisStorage) GetTPActions(tpid, aId string) (*utils.TPActions, error)
func (*RedisStorage) GetTPDestRateTiming ¶
func (rs *RedisStorage) GetTPDestRateTiming(tpid, drtId string) (*utils.TPDestRateTiming, error)
func (*RedisStorage) GetTPDestRateTimingIds ¶
func (rs *RedisStorage) GetTPDestRateTimingIds(tpid string) ([]string, error)
func (*RedisStorage) GetTPDestination ¶
func (rs *RedisStorage) GetTPDestination(tpid, destTag string) (*Destination, error)
Extracts destinations from StorDB on specific tariffplan id
func (*RedisStorage) GetTPDestinationIds ¶
func (rs *RedisStorage) GetTPDestinationIds(tpid string) ([]string, error)
func (*RedisStorage) GetTPDestinationRate ¶
func (rs *RedisStorage) GetTPDestinationRate(tpid, drId string) (*utils.TPDestinationRate, error)
func (*RedisStorage) GetTPDestinationRateIds ¶
func (rs *RedisStorage) GetTPDestinationRateIds(tpid string) ([]string, error)
func (*RedisStorage) GetTPIds ¶
func (rs *RedisStorage) GetTPIds() ([]string, error)
func (*RedisStorage) GetTPRate ¶
func (rs *RedisStorage) GetTPRate(tpid, rtId string) (*utils.TPRate, error)
func (*RedisStorage) GetTPRateIds ¶
func (rs *RedisStorage) GetTPRateIds(tpid string) ([]string, error)
func (*RedisStorage) GetTPRatingProfile ¶
func (rs *RedisStorage) GetTPRatingProfile(tpid, rpId string) (*utils.TPRatingProfile, error)
func (*RedisStorage) GetTPRatingProfileIds ¶
func (rs *RedisStorage) GetTPRatingProfileIds(filters *utils.AttrTPRatingProfileIds) ([]string, error)
func (*RedisStorage) GetTPTiming ¶
func (rs *RedisStorage) GetTPTiming(tpid, tmId string) (*Timing, error)
func (*RedisStorage) GetTPTimingIds ¶
func (rs *RedisStorage) GetTPTimingIds(tpid string) ([]string, error)
func (*RedisStorage) GetTpAccountActions ¶
func (rs *RedisStorage) GetTpAccountActions(tpid, tag string) (map[string]*AccountAction, error)
func (*RedisStorage) GetTpActionTimings ¶
func (rs *RedisStorage) GetTpActionTimings(tpid, tag string) (map[string][]*ActionTiming, error)
func (*RedisStorage) GetTpActionTriggers ¶
func (rs *RedisStorage) GetTpActionTriggers(tpid, tag string) (map[string][]*ActionTrigger, error)
func (*RedisStorage) GetTpActions ¶
func (rs *RedisStorage) GetTpActions(tpid, tag string) (map[string][]*Action, error)
func (*RedisStorage) GetTpDestinationRateTimings ¶
func (rs *RedisStorage) GetTpDestinationRateTimings(tpid, tag string) ([]*DestinationRateTiming, error)
func (*RedisStorage) GetTpDestinationRates ¶
func (ms *RedisStorage) GetTpDestinationRates(tpid, tag string) (map[string][]*DestinationRate, error)
func (*RedisStorage) GetTpDestinations ¶
func (rs *RedisStorage) GetTpDestinations(tpid, tag string) ([]*Destination, error)
func (*RedisStorage) GetTpRates ¶
func (rs *RedisStorage) GetTpRates(tpid, tag string) (map[string]*Rate, error)
func (*RedisStorage) GetTpRatingProfiles ¶
func (rs *RedisStorage) GetTpRatingProfiles(tpid, tag string) (map[string]*RatingProfile, error)
func (*RedisStorage) GetTpTimings ¶
func (rs *RedisStorage) GetTpTimings(tpid, tag string) (map[string]*Timing, error)
func (*RedisStorage) GetUserBalance ¶
func (rs *RedisStorage) GetUserBalance(key string) (ub *UserBalance, err error)
func (*RedisStorage) LogActionTiming ¶
func (rs *RedisStorage) LogActionTiming(source string, at *ActionTiming, as Actions) (err error)
func (*RedisStorage) LogActionTrigger ¶
func (rs *RedisStorage) LogActionTrigger(ubId, source string, at *ActionTrigger, as Actions) (err error)
func (*RedisStorage) LogCallCost ¶
func (rs *RedisStorage) LogCallCost(uuid, source string, cc *CallCost) (err error)
func (*RedisStorage) LogError ¶
func (rs *RedisStorage) LogError(uuid, source, errstr string) (err error)
func (*RedisStorage) SetActionTimings ¶
func (rs *RedisStorage) SetActionTimings(key string, ats ActionTimings) (err error)
func (*RedisStorage) SetActions ¶
func (rs *RedisStorage) SetActions(key string, as Actions) (err error)
func (*RedisStorage) SetDestination ¶
func (rs *RedisStorage) SetDestination(dest *Destination) (err error)
func (*RedisStorage) SetRatedCdr ¶
func (*RedisStorage) SetRatingProfile ¶
func (rs *RedisStorage) SetRatingProfile(rp *RatingProfile) (err error)
func (*RedisStorage) SetTPAccountActions ¶
func (rs *RedisStorage) SetTPAccountActions(tpid string, aa map[string]*AccountAction) error
func (*RedisStorage) SetTPActionTimings ¶
func (rs *RedisStorage) SetTPActionTimings(tpid string, ats map[string][]*ActionTiming) error
func (*RedisStorage) SetTPActionTriggers ¶
func (rs *RedisStorage) SetTPActionTriggers(tpid string, ats map[string][]*ActionTrigger) error
func (*RedisStorage) SetTPActions ¶
func (rs *RedisStorage) SetTPActions(tpid string, acts map[string][]*Action) error
func (*RedisStorage) SetTPDestRateTimings ¶
func (rs *RedisStorage) SetTPDestRateTimings(tpid string, drts map[string][]*DestinationRateTiming) error
func (*RedisStorage) SetTPDestination ¶
func (rs *RedisStorage) SetTPDestination(tpid string, dest *Destination) error
func (*RedisStorage) SetTPDestinationRates ¶
func (rs *RedisStorage) SetTPDestinationRates(tpid string, drs map[string][]*DestinationRate) error
func (*RedisStorage) SetTPRates ¶
func (rs *RedisStorage) SetTPRates(tpid string, rts map[string][]*Rate) error
func (*RedisStorage) SetTPRatingProfiles ¶
func (rs *RedisStorage) SetTPRatingProfiles(tpid string, rps map[string][]*RatingProfile) error
func (*RedisStorage) SetTPTiming ¶
func (rs *RedisStorage) SetTPTiming(tpid string, tm *Timing) error
func (*RedisStorage) SetUserBalance ¶
func (rs *RedisStorage) SetUserBalance(ub *UserBalance) (err error)
type Responder ¶
type Responder struct {
Bal *balancer2go.Balancer
ExitChan chan bool
}
func (*Responder) AddRecievedCallSeconds ¶
func (rs *Responder) AddRecievedCallSeconds(arg CallDescriptor, reply *float64) (err error)
func (*Responder) Debit ¶
func (rs *Responder) Debit(arg CallDescriptor, reply *CallCost) (err error)
func (*Responder) DebitCents ¶
func (rs *Responder) DebitCents(arg CallDescriptor, reply *float64) (err error)
func (*Responder) DebitSMS ¶
func (rs *Responder) DebitSMS(arg CallDescriptor, reply *float64) (err error)
func (*Responder) DebitSeconds ¶
func (rs *Responder) DebitSeconds(arg CallDescriptor, reply *float64) (err error)
func (*Responder) FlushCache ¶
func (rs *Responder) FlushCache(arg CallDescriptor, reply *float64) (err error)
func (*Responder) GetCost ¶
func (rs *Responder) GetCost(arg CallDescriptor, reply *CallCost) (err error)
RPC method thet provides the external RPC interface for getting the rating information.
func (*Responder) GetInternet ¶
func (rs *Responder) GetInternet(arg CallDescriptor, reply *CallCost) (err error)
func (*Responder) GetInternetTime ¶
func (rs *Responder) GetInternetTime(arg CallDescriptor, reply *CallCost) (err error)
func (*Responder) GetMaxSessionTime ¶
func (rs *Responder) GetMaxSessionTime(arg CallDescriptor, reply *float64) (err error)
func (*Responder) GetMinutes ¶
func (rs *Responder) GetMinutes(arg CallDescriptor, reply *CallCost) (err error)
func (*Responder) GetMonetary ¶
func (rs *Responder) GetMonetary(arg CallDescriptor, reply *CallCost) (err error)
func (*Responder) GetSMS ¶
func (rs *Responder) GetSMS(arg CallDescriptor, reply *CallCost) (err error)
func (*Responder) MaxDebit ¶
func (rs *Responder) MaxDebit(arg CallDescriptor, reply *CallCost) (err error)
func (*Responder) RegisterRater ¶
RPC method that receives a rater address, connects to it and ads the pair to the rater list for balancing
type ResponderWorker ¶
type ResponderWorker struct{}
Reflection worker type for not standalone balancer
func (*ResponderWorker) Call ¶
func (rw *ResponderWorker) Call(serviceMethod string, args interface{}, reply interface{}) error
func (*ResponderWorker) Close ¶
func (rw *ResponderWorker) Close() error
type SQLStorage ¶
func (*SQLStorage) Close ¶
func (self *SQLStorage) Close()
func (*SQLStorage) ExistsTPAccountActions ¶
func (self *SQLStorage) ExistsTPAccountActions(tpid, aaId string) (bool, error)
func (*SQLStorage) ExistsTPActionTimings ¶
func (self *SQLStorage) ExistsTPActionTimings(tpid, atId string) (bool, error)
func (*SQLStorage) ExistsTPActionTriggers ¶
func (self *SQLStorage) ExistsTPActionTriggers(tpid, atId string) (bool, error)
func (*SQLStorage) ExistsTPActions ¶
func (self *SQLStorage) ExistsTPActions(tpid, actsId string) (bool, error)
func (*SQLStorage) ExistsTPDestRateTiming ¶
func (self *SQLStorage) ExistsTPDestRateTiming(tpid, drtId string) (bool, error)
func (*SQLStorage) ExistsTPDestination ¶
func (self *SQLStorage) ExistsTPDestination(tpid, destTag string) (bool, error)
func (*SQLStorage) ExistsTPDestinationRate ¶
func (self *SQLStorage) ExistsTPDestinationRate(tpid, drId string) (bool, error)
func (*SQLStorage) ExistsTPRate ¶
func (self *SQLStorage) ExistsTPRate(tpid, rtId string) (bool, error)
func (*SQLStorage) ExistsTPRatingProfile ¶
func (self *SQLStorage) ExistsTPRatingProfile(tpid, rpId string) (bool, error)
func (*SQLStorage) ExistsTPTiming ¶
func (self *SQLStorage) ExistsTPTiming(tpid, tmId string) (bool, error)
func (*SQLStorage) Flush ¶
func (self *SQLStorage) Flush() (err error)
func (*SQLStorage) GetActionTimings ¶
func (self *SQLStorage) GetActionTimings(key string) (ats ActionTimings, err error)
func (*SQLStorage) GetActions ¶
func (self *SQLStorage) GetActions(string) (as Actions, err error)
func (*SQLStorage) GetAllActionTimings ¶
func (self *SQLStorage) GetAllActionTimings() (ats map[string]ActionTimings, err error)
func (*SQLStorage) GetAllRatedCdr ¶
func (self *SQLStorage) GetAllRatedCdr() ([]utils.CDR, error)
func (*SQLStorage) GetCallCostLog ¶
func (self *SQLStorage) GetCallCostLog(cgrid, source string) (cc *CallCost, err error)
func (*SQLStorage) GetDestination ¶
func (self *SQLStorage) GetDestination(string) (d *Destination, err error)
func (*SQLStorage) GetRatingProfile ¶
func (self *SQLStorage) GetRatingProfile(string) (rp *RatingProfile, err error)
func (*SQLStorage) GetTPAccountActionIds ¶
func (self *SQLStorage) GetTPAccountActionIds(tpid string) ([]string, error)
func (*SQLStorage) GetTPActionIds ¶
func (self *SQLStorage) GetTPActionIds(tpid string) ([]string, error)
func (*SQLStorage) GetTPActionTimingIds ¶
func (self *SQLStorage) GetTPActionTimingIds(tpid string) ([]string, error)
func (*SQLStorage) GetTPActionTimings ¶
func (self *SQLStorage) GetTPActionTimings(tpid, atId string) (map[string][]*utils.TPActionTimingsRow, error)
func (*SQLStorage) GetTPActionTriggerIds ¶
func (self *SQLStorage) GetTPActionTriggerIds(tpid string) ([]string, error)
func (*SQLStorage) GetTPActions ¶
func (self *SQLStorage) GetTPActions(tpid, actsId string) (*utils.TPActions, error)
func (*SQLStorage) GetTPDestRateTiming ¶
func (self *SQLStorage) GetTPDestRateTiming(tpid, drtId string) (*utils.TPDestRateTiming, error)
func (*SQLStorage) GetTPDestRateTimingIds ¶
func (self *SQLStorage) GetTPDestRateTimingIds(tpid string) ([]string, error)
func (*SQLStorage) GetTPDestination ¶
func (self *SQLStorage) GetTPDestination(tpid, destTag string) (*Destination, error)
Extracts destinations from StorDB on specific tariffplan id
func (*SQLStorage) GetTPDestinationIds ¶
func (self *SQLStorage) GetTPDestinationIds(tpid string) ([]string, error)
Extracts destinations from StorDB on specific tariffplan id
func (*SQLStorage) GetTPDestinationRate ¶
func (self *SQLStorage) GetTPDestinationRate(tpid, drId string) (*utils.TPDestinationRate, error)
func (*SQLStorage) GetTPDestinationRateIds ¶
func (self *SQLStorage) GetTPDestinationRateIds(tpid string) ([]string, error)
func (*SQLStorage) GetTPIds ¶
func (self *SQLStorage) GetTPIds() ([]string, error)
Return a list with all TPids defined in the system, even if incomplete, isolated in some table.
func (*SQLStorage) GetTPRate ¶
func (self *SQLStorage) GetTPRate(tpid, rtId string) (*utils.TPRate, error)
func (*SQLStorage) GetTPRateIds ¶
func (self *SQLStorage) GetTPRateIds(tpid string) ([]string, error)
func (*SQLStorage) GetTPRatingProfile ¶
func (self *SQLStorage) GetTPRatingProfile(tpid, rpId string) (*utils.TPRatingProfile, error)
func (*SQLStorage) GetTPRatingProfileIds ¶
func (self *SQLStorage) GetTPRatingProfileIds(filters *utils.AttrTPRatingProfileIds) ([]string, error)
func (*SQLStorage) GetTPTiming ¶
func (self *SQLStorage) GetTPTiming(tpid, tmId string) (*Timing, error)
func (*SQLStorage) GetTPTimingIds ¶
func (self *SQLStorage) GetTPTimingIds(tpid string) ([]string, error)
func (*SQLStorage) GetTpAccountActions ¶
func (self *SQLStorage) GetTpAccountActions(tpid, tag string) (map[string]*AccountAction, error)
func (*SQLStorage) GetTpActionTimings ¶
func (self *SQLStorage) GetTpActionTimings(tpid, tag string) (ats map[string][]*ActionTiming, err error)
func (*SQLStorage) GetTpActionTriggers ¶
func (self *SQLStorage) GetTpActionTriggers(tpid, tag string) (map[string][]*ActionTrigger, error)
func (*SQLStorage) GetTpActions ¶
func (self *SQLStorage) GetTpActions(tpid, tag string) (map[string][]*Action, error)
func (*SQLStorage) GetTpDestinationRateTimings ¶
func (self *SQLStorage) GetTpDestinationRateTimings(tpid, tag string) ([]*DestinationRateTiming, error)
func (*SQLStorage) GetTpDestinationRates ¶
func (self *SQLStorage) GetTpDestinationRates(tpid, tag string) (map[string][]*DestinationRate, error)
func (*SQLStorage) GetTpDestinations ¶
func (self *SQLStorage) GetTpDestinations(tpid, tag string) ([]*Destination, error)
func (*SQLStorage) GetTpRates ¶
func (self *SQLStorage) GetTpRates(tpid, tag string) (map[string]*Rate, error)
func (*SQLStorage) GetTpRatingProfiles ¶
func (self *SQLStorage) GetTpRatingProfiles(tpid, tag string) (map[string]*RatingProfile, error)
func (*SQLStorage) GetTpTimings ¶
func (self *SQLStorage) GetTpTimings(tpid, tag string) (map[string]*Timing, error)
func (*SQLStorage) GetUserBalance ¶
func (self *SQLStorage) GetUserBalance(string) (ub *UserBalance, err error)
func (*SQLStorage) LogActionTiming ¶
func (self *SQLStorage) LogActionTiming(source string, at *ActionTiming, as Actions) (err error)
func (*SQLStorage) LogActionTrigger ¶
func (self *SQLStorage) LogActionTrigger(ubId, source string, at *ActionTrigger, as Actions) (err error)
func (*SQLStorage) LogCallCost ¶
func (self *SQLStorage) LogCallCost(uuid, source string, cc *CallCost) (err error)
func (*SQLStorage) LogError ¶
func (self *SQLStorage) LogError(uuid, source, errstr string) (err error)
func (*SQLStorage) SetActionTimings ¶
func (self *SQLStorage) SetActionTimings(key string, ats ActionTimings) (err error)
func (*SQLStorage) SetActions ¶
func (self *SQLStorage) SetActions(key string, as Actions) (err error)
func (*SQLStorage) SetDestination ¶
func (self *SQLStorage) SetDestination(d *Destination) (err error)
func (*SQLStorage) SetRatedCdr ¶
func (*SQLStorage) SetRatingProfile ¶
func (self *SQLStorage) SetRatingProfile(rp *RatingProfile) (err error)
func (*SQLStorage) SetTPAccountActions ¶
func (self *SQLStorage) SetTPAccountActions(tpid string, aa map[string]*AccountAction) error
func (*SQLStorage) SetTPActionTimings ¶
func (self *SQLStorage) SetTPActionTimings(tpid string, ats map[string][]*ActionTiming) error
Sets actionTimings in sqlDB. Imput is expected in form map[actionTimingId][]rows, eg a full .csv file content
func (*SQLStorage) SetTPActionTriggers ¶
func (self *SQLStorage) SetTPActionTriggers(tpid string, ats map[string][]*ActionTrigger) error
func (*SQLStorage) SetTPActions ¶
func (self *SQLStorage) SetTPActions(tpid string, acts map[string][]*Action) error
func (*SQLStorage) SetTPDestRateTimings ¶
func (self *SQLStorage) SetTPDestRateTimings(tpid string, drts map[string][]*DestinationRateTiming) error
func (*SQLStorage) SetTPDestination ¶
func (self *SQLStorage) SetTPDestination(tpid string, dest *Destination) error
func (*SQLStorage) SetTPDestinationRates ¶
func (self *SQLStorage) SetTPDestinationRates(tpid string, drs map[string][]*DestinationRate) error
func (*SQLStorage) SetTPRates ¶
func (self *SQLStorage) SetTPRates(tpid string, rts map[string][]*Rate) error
func (*SQLStorage) SetTPRatingProfiles ¶
func (self *SQLStorage) SetTPRatingProfiles(tpid string, rps map[string][]*RatingProfile) error
func (*SQLStorage) SetTPTiming ¶
func (self *SQLStorage) SetTPTiming(tpid string, tm *Timing) error
func (*SQLStorage) SetUserBalance ¶
func (self *SQLStorage) SetUserBalance(ub *UserBalance) (err error)
type TPCSVFileParser ¶
type TPCSVFileParser struct {
// contains filtered or unexported fields
}
Opens the connection to a file and returns the parsed lines one by one when ParseNextLine() is called
func NewTPCSVFileParser ¶
func NewTPCSVFileParser(dirPath, fileName string) (*TPCSVFileParser, error)
func (*TPCSVFileParser) ParseNextLine ¶
func (self *TPCSVFileParser) ParseNextLine() ([]string, error)
type TPCSVImporter ¶
type TPCSVImporter struct {
TPid string // Load data on this tpid
StorDb DataStorage // StorDb connection handle
DirPath string // Directory path to import from
Sep rune // Separator in the csv file
Verbose bool // If true will print a detailed information instead of silently discarding it
ImportId string // Use this to differentiate between imports (eg: when autogenerating fields like RatingProfileId
}
Import tariff plan from csv into storDb
func (*TPCSVImporter) Run ¶
func (self *TPCSVImporter) Run() error
type TPLoader ¶
type TPLoader interface {
LoadDestinations() error
LoadRates() error
LoadDestinationRates() error
LoadTimings() error
LoadDestinationRateTimings() error
LoadRatingProfiles() error
LoadActions() error
LoadActionTimings() error
LoadActionTriggers() error
LoadAccountActions() error
WriteToDatabase(bool, bool) error
}
type TimeSpan ¶
type TimeSpan struct {
TimeStart, TimeEnd time.Time
Cost float64
ActivationPeriod *ActivationPeriod
Interval *Interval
MinuteInfo *MinuteInfo
CallDuration time.Duration // the call duration so far till TimeEnd
}
A unit in which a call will be split that has a specific price related interval attached to it.
func (*TimeSpan) GetDuration ¶
Returns the duration of the timespan
func (*TimeSpan) GetGroupEnd ¶
func (*TimeSpan) GetGroupStart ¶
func (*TimeSpan) SetInterval ¶
Will set the interval as spans's interval if new Weight is greater then span's interval Weight or if the Weights are equal and new price is lower then spans's interval price
func (*TimeSpan) SetNewCallDuration ¶
func (*TimeSpan) SplitByActivationPeriod ¶
func (ts *TimeSpan) SplitByActivationPeriod(ap *ActivationPeriod) (newTs *TimeSpan)
Splits the given timespan on activation period's activation time.
func (*TimeSpan) SplitByInterval ¶
Splits the given timespan according to how it relates to the interval. It will modify the endtime of the received timespan and it will return a new timespan starting from the end of the received one. The interval will attach itself to the timespan that overlaps the interval.
func (*TimeSpan) SplitByMinuteBucket ¶
func (ts *TimeSpan) SplitByMinuteBucket(mb *MinuteBucket) (newTs *TimeSpan)
Splits the given timespan on minute bucket's duration.
type Timing ¶
type UnitsCounter ¶
type UnitsCounter struct {
Direction string
BalanceId string
Units float64
MinuteBuckets bucketsorter
}
Amount of a trafic of a certain type
func (*UnitsCounter) String ¶
func (uc *UnitsCounter) String() string
type UserBalance ¶
type UserBalance struct {
Id string
Type string // prepaid-postpaid
BalanceMap map[string]BalanceChain
MinuteBuckets []*MinuteBucket
UnitCounters []*UnitsCounter
ActionTriggers ActionTriggerPriotityList
}
Structure containing information about user's credit (minutes, cents, sms...).'
func (*UserBalance) CleanExpiredBalancesAndBuckets ¶
func (ub *UserBalance) CleanExpiredBalancesAndBuckets()
type WeekDays ¶
Defines week days series
Source Files
¶
- accountlock.go
- action.go
- action_timing.go
- action_trigger.go
- activationperiod.go
- callcost.go
- calldesc.go
- dateseries.go
- destinations.go
- interval.go
- loader_csv.go
- loader_db.go
- loader_helpers.go
- minute_buckets.go
- ratingprofile.go
- responder.go
- storage_interface.go
- storage_map.go
- storage_mongo.go
- storage_mysql.go
- storage_postgres.go
- storage_redis.go
- storage_sql.go
- storage_utils.go
- timespans.go
- tpimporter_csv.go
- units_counter.go
- userbalance.go