Files
cgrates/utils/consts.go
2017-09-10 15:02:46 +00:00

461 lines
20 KiB
Go
Executable File

/*
Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
Copyright (C) ITsysCOM GmbH
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/>
*/
package utils
var (
CDRExportFormats = []string{DRYRUN, MetaFileCSV, MetaFileFWV, MetaHTTPjsonCDR, MetaHTTPjsonMap, MetaHTTPjson, META_HTTP_POST, MetaAMQPjsonCDR, MetaAMQPjsonMap}
PrimaryCdrFields = []string{CGRID, CDRSOURCE, CDRHOST, ACCID, TOR, REQTYPE, DIRECTION, TENANT, CATEGORY, ACCOUNT, SUBJECT, DESTINATION, SETUP_TIME, PDD, ANSWER_TIME, USAGE,
SUPPLIER, DISCONNECT_CAUSE, COST, RATED, PartialField, MEDI_RUNID}
GitLastLog string // If set, it will be processed as part of versioning
PosterTransportContentTypes = map[string]string{
MetaHTTPjsonCDR: CONTENT_JSON,
MetaHTTPjsonMap: CONTENT_JSON,
MetaHTTPjson: CONTENT_JSON,
META_HTTP_POST: CONTENT_FORM,
MetaAMQPjsonCDR: CONTENT_JSON,
MetaAMQPjsonMap: CONTENT_JSON,
}
CDREFileSuffixes = map[string]string{
MetaHTTPjsonCDR: JSNSuffix,
MetaHTTPjsonMap: JSNSuffix,
MetaAMQPjsonCDR: JSNSuffix,
MetaAMQPjsonMap: JSNSuffix,
META_HTTP_POST: FormSuffix,
MetaFileCSV: CSVSuffix,
MetaFileFWV: FWVSuffix,
}
CacheInstanceToPrefix = map[string]string{
CacheDestinations: DESTINATION_PREFIX,
CacheReverseDestinations: REVERSE_DESTINATION_PREFIX,
CacheRatingPlans: RATING_PLAN_PREFIX,
CacheRatingProfiles: RATING_PROFILE_PREFIX,
CacheLCRRules: LCR_PREFIX,
CacheCDRStatS: CDR_STATS_PREFIX,
CacheActions: ACTION_PREFIX,
CacheActionPlans: ACTION_PLAN_PREFIX,
CacheAccountActionPlans: AccountActionPlansPrefix,
CacheActionTriggers: ACTION_TRIGGER_PREFIX,
CacheSharedGroups: SHARED_GROUP_PREFIX,
CacheAliases: ALIASES_PREFIX,
CacheReverseAliases: REVERSE_ALIASES_PREFIX,
CacheDerivedChargers: DERIVEDCHARGERS_PREFIX,
CacheResourceProfiles: ResourceProfilesPrefix,
CacheResources: ResourcesPrefix,
CacheEventResources: EventResourcesPrefix,
CacheTimings: TimingsPrefix,
CacheStatSQueues: META_NONE,
CacheEventQueues: META_NONE,
}
CachePrefixToInstance map[string]string // will be built on init
)
const (
CGRateS = "CGRateS"
VERSION = "0.9.1~rc8"
GitLastLogFileName = ".git_lastlog.txt"
DIAMETER_FIRMWARE_REVISION = 918
REDIS_MAX_CONNS = 10
POSTGRES = "postgres"
MYSQL = "mysql"
MONGO = "mongo"
REDIS = "redis"
MAPSTOR = "mapstor"
LOCALHOST = "127.0.0.1"
FSCDR_FILE_CSV = "freeswitch_file_csv"
FSCDR_HTTP_JSON = "freeswitch_http_json"
NOT_IMPLEMENTED = "not implemented"
PREPAID = "prepaid"
META_PREPAID = "*prepaid"
POSTPAID = "postpaid"
META_POSTPAID = "*postpaid"
PSEUDOPREPAID = "pseudoprepaid"
META_PSEUDOPREPAID = "*pseudoprepaid"
META_RATED = "*rated"
META_NONE = "*none"
META_NOW = "*now"
TBLTPTimings = "tp_timings"
TBLTPDestinations = "tp_destinations"
TBLTPRates = "tp_rates"
TBLTPDestinationRates = "tp_destination_rates"
TBLTPRatingPlans = "tp_rating_plans"
TBLTPRateProfiles = "tp_rating_profiles"
TBLTPSharedGroups = "tp_shared_groups"
TBLTPCdrStats = "tp_cdr_stats"
TBLTPLcrs = "tp_lcr_rules"
TBLTPActions = "tp_actions"
TBLTPActionPlans = "tp_action_plans"
TBLTPActionTriggers = "tp_action_triggers"
TBLTPAccountActions = "tp_account_actions"
TBLTPDerivedChargers = "tp_derived_chargers"
TBLTPUsers = "tp_users"
TBLTPAliases = "tp_aliases"
TBLTPResources = "tp_resources"
TBLTPStats = "tp_stats"
TBLTPThresholds = "tp_thresholds"
TBLSMCosts = "sm_costs"
TBLCDRs = "cdrs"
TBLVersions = "versions"
TIMINGS_CSV = "Timings.csv"
DESTINATIONS_CSV = "Destinations.csv"
RATES_CSV = "Rates.csv"
DESTINATION_RATES_CSV = "DestinationRates.csv"
RATING_PLANS_CSV = "RatingPlans.csv"
RATING_PROFILES_CSV = "RatingProfiles.csv"
SHARED_GROUPS_CSV = "SharedGroups.csv"
LCRS_CSV = "LcrRules.csv"
ACTIONS_CSV = "Actions.csv"
ACTION_PLANS_CSV = "ActionPlans.csv"
ACTION_TRIGGERS_CSV = "ActionTriggers.csv"
ACCOUNT_ACTIONS_CSV = "AccountActions.csv"
DERIVED_CHARGERS_CSV = "DerivedChargers.csv"
CDR_STATS_CSV = "CdrStats.csv"
USERS_CSV = "Users.csv"
ALIASES_CSV = "Aliases.csv"
ResourcesCsv = "Resources.csv"
StatsCsv = "Stats.csv"
ThresholdsCsv = "Thresholds.csv"
ROUNDING_UP = "*up"
ROUNDING_MIDDLE = "*middle"
ROUNDING_DOWN = "*down"
ANY = "*any"
UNLIMITED = "*unlimited"
ZERO = "*zero"
ASAP = "*asap"
USERS = "*users"
COMMENT_CHAR = '#'
CSV_SEP = ','
FALLBACK_SEP = ';'
INFIELD_SEP = ";"
FIELDS_SEP = ","
InInFieldSep = ":"
STATIC_HDRVAL_SEP = "::"
REGEXP_PREFIX = "~"
FILTER_VAL_START = "("
FILTER_VAL_END = ")"
JSON = "json"
GOB = "gob"
MSGPACK = "msgpack"
CSV_LOAD = "CSVLOAD"
CGRID = "CGRID"
TOR = "ToR"
ORDERID = "OrderID"
ACCID = "OriginID"
InitialOriginID = "InitialOriginID"
OriginIDPrefix = "OriginIDPrefix"
CDRSOURCE = "Source"
CDRHOST = "OriginHost"
REQTYPE = "RequestType"
DIRECTION = "Direction"
TENANT = "Tenant"
CATEGORY = "Category"
ACCOUNT = "Account"
SUBJECT = "Subject"
DESTINATION = "Destination"
SETUP_TIME = "SetupTime"
ANSWER_TIME = "AnswerTime"
USAGE = "Usage"
LastUsed = "LastUsed"
PDD = "PDD"
SUPPLIER = "Supplier"
MEDI_RUNID = "RunID"
COST = "Cost"
COST_DETAILS = "CostDetails"
RATED = "rated"
RATED_FLD = "Rated"
PartialField = "Partial"
DEFAULT_RUNID = "*default"
META_DEFAULT = "*default"
STATIC_VALUE_PREFIX = "^"
CSV = "csv"
FWV = "fwv"
PartialCSV = "partial_csv"
DRYRUN = "dry_run"
META_COMBIMED = "*combimed"
MetaInternal = "*internal"
ZERO_RATING_SUBJECT_PREFIX = "*zero"
OK = "OK"
CDRE_FIXED_WIDTH = "fwv"
XML_PROFILE_PREFIX = "*xml:"
CDRE = "cdre"
CDRC = "cdrc"
MASK_CHAR = "*"
CONCATENATED_KEY_SEP = ":"
FORKED_CDR = "forked_cdr"
UNIT_TEST = "UNIT_TEST"
HDR_VAL_SEP = "/"
MONETARY = "*monetary"
SMS = "*sms"
MMS = "*mms"
GENERIC = "*generic"
DATA = "*data"
VOICE = "*voice"
MAX_COST_FREE = "*free"
MAX_COST_DISCONNECT = "*disconnect"
HOURS = "hours"
MINUTES = "minutes"
NANOSECONDS = "nanoseconds"
SECONDS = "seconds"
OUT = "*out"
IN = "*in"
META_OUT = "*out"
META_ANY = "*any"
MetaExists = "*exists"
CDR_IMPORT = "cdr_import"
CDR_EXPORT = "cdr_export"
ASR = "ASR"
ACD = "ACD"
FILTER_REGEXP_TPL = "$1$2$3$4$5"
TASKS_KEY = "tasks"
ACTION_PLAN_PREFIX = "apl_"
AccountActionPlansPrefix = "aap_"
ACTION_TRIGGER_PREFIX = "atr_"
REVERSE_ACTION_TRIGGER_PREFIX = "rtr_"
RATING_PLAN_PREFIX = "rpl_"
RATING_PROFILE_PREFIX = "rpf_"
ACTION_PREFIX = "act_"
SHARED_GROUP_PREFIX = "shg_"
ACCOUNT_PREFIX = "acc_"
DESTINATION_PREFIX = "dst_"
REVERSE_DESTINATION_PREFIX = "rds_"
LCR_PREFIX = "lcr_"
DERIVEDCHARGERS_PREFIX = "dcs_"
CDR_STATS_QUEUE_PREFIX = "csq_"
PUBSUB_SUBSCRIBERS_PREFIX = "pss_"
USERS_PREFIX = "usr_"
ALIASES_PREFIX = "als_"
REVERSE_ALIASES_PREFIX = "rls_"
ResourcesPrefix = "res_"
ResourceProfilesIndex = "rsi_"
ResourceProfilesPrefix = "rsp_"
StatsPrefix = "sts_"
StatsIndex = "sti_"
ThresholdsPrefix = "ths_"
ThresholdsIndex = "thi_"
TimingsPrefix = "tmg_"
CDR_STATS_PREFIX = "cst_"
TEMP_DESTINATION_PREFIX = "tmp_"
LOG_CALL_COST_PREFIX = "cco_"
LOG_ACTION_TIMMING_PREFIX = "ltm_"
LOG_ACTION_TRIGGER_PREFIX = "ltr_"
VERSION_PREFIX = "ver_"
LOG_ERR = "ler_"
LOG_CDR = "cdr_"
LOG_MEDIATED_CDR = "mcd_"
StatQueueProfilePrefix = "sqp_"
ThresholdCfgPrefix = "thc_"
StatQueuePrefix = "stq_"
LOADINST_KEY = "load_history"
SESSION_MANAGER_SOURCE = "SMR"
MEDIATOR_SOURCE = "MED"
CDRS_SOURCE = "CDRS"
SCHED_SOURCE = "SCH"
RATER_SOURCE = "RAT"
CREATE_CDRS_TABLES_SQL = "create_cdrs_tables.sql"
CREATE_TARIFFPLAN_TABLES_SQL = "create_tariffplan_tables.sql"
TEST_SQL = "TEST_SQL"
DESTINATIONS_LOAD_THRESHOLD = 0.1
META_CONSTANT = "*constant"
META_FILLER = "*filler"
META_HANDLER = "*handler"
META_HTTP_POST = "*http_post"
MetaHTTPjson = "*http_json"
MetaHTTPjsonCDR = "*http_json_cdr"
META_HTTP_JSONRPC = "*http_jsonrpc"
MetaHTTPjsonMap = "*http_json_map"
MetaAMQPjsonCDR = "*amqp_json_cdr"
MetaAMQPjsonMap = "*amqp_json_map"
NANO_MULTIPLIER = 1000000000
CGR_AUTHORIZE = "CGR_AUTHORIZE"
CONFIG_DIR = "/etc/cgrates/"
CGR_ACCOUNT = "cgr_account"
CGR_SUPPLIER = "cgr_supplier"
CGR_DESTINATION = "cgr_destination"
CGR_SUBJECT = "cgr_subject"
CGR_CATEGORY = "cgr_category"
CGR_REQTYPE = "cgr_reqtype"
CGR_TENANT = "cgr_tenant"
CGR_TOR = "cgr_tor"
CGR_ACCID = "cgr_accid"
CGR_HOST = "cgr_host"
CGR_PDD = "cgr_pdd"
DISCONNECT_CAUSE = "DisconnectCause"
CGR_DISCONNECT_CAUSE = "cgr_disconnectcause"
CGR_COMPUTELCR = "cgr_computelcr"
CGR_SUPPLIERS = "cgr_suppliers"
CGRFlags = "cgr_flags"
KAM_FLATSTORE = "kamailio_flatstore"
OSIPS_FLATSTORE = "opensips_flatstore"
MAX_DEBIT_CACHE_PREFIX = "MAX_DEBIT_"
REFUND_INCR_CACHE_PREFIX = "REFUND_INCR_"
REFUND_ROUND_CACHE_PREFIX = "REFUND_ROUND_"
GET_SESS_RUNS_CACHE_PREFIX = "GET_SESS_RUNS_"
GET_DERIV_MAX_SESS_TIME = "GET_DERIV_MAX_SESS_TIME_"
LOG_CALL_COST_CACHE_PREFIX = "LOG_CALL_COSTS_"
LCRCachePrefix = "LCR_"
ALIAS_CONTEXT_RATING = "*rating"
NOT_AVAILABLE = "N/A"
MetaEmpty = "*empty"
CALL = "call"
EXTRA_FIELDS = "ExtraFields"
META_SURETAX = "*sure_tax"
SURETAX = "suretax"
DIAMETER_AGENT = "diameter_agent"
COUNTER_EVENT = "*event"
COUNTER_BALANCE = "*balance"
EVENT_NAME = "EventName"
COMPUTE_LCR = "ComputeLcr"
CGR_AUTHORIZATION = "CgrAuthorization"
CGR_SESSION_START = "CgrSessionStart"
CGR_SESSION_UPDATE = "CgrSessionUpdate"
CGR_SESSION_END = "CgrSessionEnd"
CGR_LCR_REQUEST = "CgrLcrRequest"
// action trigger threshold types
TRIGGER_MIN_EVENT_COUNTER = "*min_event_counter"
TRIGGER_MIN_BALANCE_COUNTER = "*min_balance_counter"
TRIGGER_MAX_EVENT_COUNTER = "*max_event_counter"
TRIGGER_MAX_BALANCE_COUNTER = "*max_balance_counter"
TRIGGER_MIN_BALANCE = "*min_balance"
TRIGGER_MAX_BALANCE = "*max_balance"
TRIGGER_BALANCE_EXPIRED = "*balance_expired"
HIERARCHY_SEP = ">"
META_COMPOSED = "*composed"
NegativePrefix = "!"
MatchStartPrefix = "^"
MatchEndPrefix = "$"
SMG = "SMG"
MetaGrouped = "*grouped"
MetaRaw = "*raw"
CreatedAt = "CreatedAt"
UpdatedAt = "UpdatedAt"
HandlerArgSep = "|"
FlagForceDuration = "fd"
InstanceID = "InstanceID"
ActiveGoroutines = "ActiveGoroutines"
SessionTTL = "SessionTTL"
SessionTTLMaxDelay = "SessionTTLMaxDelay"
SessionTTLLastUsed = "SessionTTLLastUsed"
SessionTTLUsage = "SessionTTLUsage"
HandlerSubstractUsage = "*substract_usage"
XML = "xml"
MetaGOBrpc = "*gob"
MetaJSONrpc = "*json"
MetaDateTime = "*datetime"
MetaMaskedDestination = "*masked_destination"
MetaUnixTimestamp = "*unix_timestamp"
MetaPostCDR = "*post_cdr"
MetaDumpToFile = "*dump_to_file"
NonTransactional = "" // used in transactional cache mechanism
EVT_ACCOUNT_BALANCE_MODIFIED = "ACCOUNT_BALANCE_MODIFIED"
EVT_ACTION_TRIGGER_FIRED = "ACTION_TRIGGER_FIRED"
EVT_ACTION_TIMING_FIRED = "ACTION_TRIGGER_FIRED"
SMAsterisk = "sm_asterisk"
DataDB = "data_db"
StorDB = "stor_db"
Cache = "cache"
NotFoundCaps = "NOT_FOUND"
ItemNotFound = "item not found"
ItemNotCloneable = "item not cloneable"
NotCloneableCaps = "NOT_CLONEABLE"
ServerErrorCaps = "SERVER_ERROR"
MandatoryIEMissingCaps = "MANDATORY_IE_MISSING"
UnsupportedCachePrefix = "unsupported cache prefix"
CDRSCtx = "cdrs"
MandatoryInfoMissing = "mandatory information missing"
UnsupportedServiceIDCaps = "UNSUPPORTED_SERVICE_ID"
ServiceManager = "service_manager"
ServiceAlreadyRunning = "service already running"
ServiceNotRunning = "service not running"
RunningCaps = "RUNNING"
StoppedCaps = "STOPPED"
SchedulerNotRunningCaps = "SCHEDULLER_NOT_RUNNING"
MetaScheduler = "*scheduler"
MetaCostDetails = "*cost_details"
MetaAccounts = "*accounts"
MetaActionPlans = "*action_plans"
MetaActionTriggers = "*action_triggers"
MetaActions = "*actions"
MetaSharedGroups = "*shared_groups"
Migrator = "migrator"
UnsupportedMigrationTask = "unsupported migration task"
NoStorDBConnection = "not connected to StorDB"
UndefinedVersion = "undefined version"
MetaSetVersions = "*set_versions"
UnsupportedDB = "unsupported database"
ACCOUNT_SUMMARY = "AccountSummary"
TxtSuffix = ".txt"
JSNSuffix = ".json"
FormSuffix = ".form"
CSVSuffix = ".csv"
FWVSuffix = ".fwv"
CONTENT_JSON = "json"
CONTENT_FORM = "form"
CONTENT_TEXT = "text"
FileLockPrefix = "file_"
ActionsPoster = "act"
CDRPoster = "cdr"
MetaFileCSV = "*file_csv"
MetaFileFWV = "*file_fwv"
Accounts = "Accounts"
Actions = "Actions"
ActionPlans = "ActionPlans"
ActionTriggers = "ActionTriggers"
SharedGroups = "SharedGroups"
MetaEveryMinute = "*every_minute"
MetaHourly = "*hourly"
ID = "ID"
MetaASR = "*asr"
MetaACD = "*acd"
CacheDestinations = "destinations"
CacheReverseDestinations = "reverse_destinations"
CacheRatingPlans = "rating_plans"
CacheRatingProfiles = "rating_profiles"
CacheLCRRules = "lcr_rules"
CacheCDRStatS = "cdr_stats"
CacheActions = "actions"
CacheActionPlans = "action_plans"
CacheAccountActionPlans = "account_action_plans"
CacheActionTriggers = "action_triggers"
CacheSharedGroups = "shared_groups"
CacheAliases = "aliases"
CacheReverseAliases = "reverse_aliases"
CacheDerivedChargers = "derived_chargers"
CacheResources = "resources"
CacheResourceProfiles = "resource_profiles"
CacheTimings = "timings"
StatS = "stats"
CostSource = "CostSource"
ExtraInfo = "ExtraInfo"
MetaPrefix = "*"
CacheStatSQueues = "stats_queues"
CacheEventQueues = "event_queues"
CacheEventResources = "event_resources"
EventResourcesPrefix = "ers_"
)
func buildCacheInstRevPrefixes() {
CachePrefixToInstance = make(map[string]string)
for k, v := range CacheInstanceToPrefix {
CachePrefixToInstance[v] = k
}
}
func init() {
buildCacheInstRevPrefixes()
}