package utils import ( "errors" "fmt" ) func NewErrMandatoryIeMissing(fields ...string) error { return fmt.Errorf("MANDATORY_IE_MISSING:%v", fields) } func NewErrServerError(err error) error { return fmt.Errorf("SERVER_ERROR: %s", err) } var ( ErrNotImplemented = errors.New("NOT_IMPLEMENTED") ErrNotFound = errors.New("NOT_FOUND") ErrServerError = errors.New("SERVER_ERROR") ErrMandatoryIeMissing = errors.New("MANDATORY_IE_MISSING") ErrExists = errors.New("EXISTS") ErrBrokenReference = errors.New("BROKEN_REFERENCE") ErrParserError = errors.New("PARSER_ERROR") ErrInvalidPath = errors.New("INVALID_PATH") ) const ( VERSION = "0.9.1rc6" POSTGRES = "postgres" MYSQL = "mysql" MONGO = "mongo" REDIS = "redis" 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" RATED = "rated" META_RATED = "*rated" META_NONE = "*none" META_NOW = "*now" TBL_TP_TIMINGS = "tp_timings" TBL_TP_DESTINATIONS = "tp_destinations" TBL_TP_RATES = "tp_rates" TBL_TP_DESTINATION_RATES = "tp_destination_rates" TBL_TP_RATING_PLANS = "tp_rating_plans" TBL_TP_RATE_PROFILES = "tp_rating_profiles" TBL_TP_SHARED_GROUPS = "tp_shared_groups" TBL_TP_CDR_STATS = "tp_cdr_stats" TBL_TP_LCRS = "tp_lcr_rules" TBL_TP_ACTIONS = "tp_actions" TBL_TP_ACTION_PLANS = "tp_action_plans" TBL_TP_ACTION_TRIGGERS = "tp_action_triggers" TBL_TP_ACCOUNT_ACTIONS = "tp_account_actions" TBL_TP_DERIVED_CHARGERS = "tp_derived_chargers" TBL_CDRS_PRIMARY = "cdrs_primary" TBL_CDRS_EXTRA = "cdrs_extra" TBL_COST_DETAILS = "cost_details" TBL_RATED_CDRS = "rated_cdrs" 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" ROUNDING_UP = "*up" ROUNDING_MIDDLE = "*middle" ROUNDING_DOWN = "*down" ANY = "*any" ASAP = "*asap" COMMENT_CHAR = '#' CSV_SEP = ',' FALLBACK_SEP = ';' INFIELD_SEP = ";" FIELDS_SEP = "," STATIC_HDRVAL_SEP = "::" REGEXP_PREFIX = "~" FILTER_VAL_START = "(" FILTER_VAL_END = ")" JSON = "json" GOB = "gob" MSGPACK = "msgpack" CSV_LOAD = "CSVLOAD" CGRID = "cgrid" ORDERID = "orderid" ACCID = "accid" CDRHOST = "cdrhost" CDRSOURCE = "cdrsource" REQTYPE = "reqtype" DIRECTION = "direction" TENANT = "tenant" CATEGORY = "category" ACCOUNT = "account" SUBJECT = "subject" DESTINATION = "destination" SETUP_TIME = "setup_time" ANSWER_TIME = "answer_time" USAGE = "usage" PDD = "pdd" SUPPLIER = "supplier" MEDI_RUNID = "mediation_runid" RATED_ACCOUNT = "rated_account" RATED_SUBJECT = "rated_subject" COST = "cost" COST_DETAILS = "cost_details" DEFAULT_RUNID = "*default" META_DEFAULT = "*default" STATIC_VALUE_PREFIX = "^" CSV = "csv" DRYRUN = "dry_run" COMBIMED = "combimed" INTERNAL = "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" GENERIC = "*generic" DATA = "*data" VOICE = "*voice" MAX_COST_FREE = "*free" MAX_COST_DISCONNECT = "*disconnect" TOR = "tor" HOURS = "hours" MINUTES = "minutes" NANOSECONDS = "nanoseconds" SECONDS = "seconds" OUT = "*out" CDR_IMPORT = "cdr_import" CDR_EXPORT = "cdr_export" CDRFIELD = "cdrfield" ASR = "ASR" ACD = "ACD" FILTER_REGEXP_TPL = "$1$2$3$4$5" ACTION_TIMING_PREFIX = "apl_" RATING_PLAN_PREFIX = "rpl_" RATING_PROFILE_PREFIX = "rpf_" RP_ALIAS_PREFIX = "ral_" ACC_ALIAS_PREFIX = "aal_" ACTION_PREFIX = "act_" SHARED_GROUP_PREFIX = "shg_" ACCOUNT_PREFIX = "ubl_" DESTINATION_PREFIX = "dst_" LCR_PREFIX = "lcr_" DERIVEDCHARGERS_PREFIX = "dcs_" CDR_STATS_QUEUE_PREFIX = "csq_" PUBSUB_SUBSCRIBERS_PREFIX = "pss_" CDR_STATS_PREFIX = "cst_" TEMP_DESTINATION_PREFIX = "tmp_" 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" 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 CONSTANT = "constant" FILLER = "filler" METATAG = "metatag" HTTP_POST = "http_post" META_HTTP_POST = "*http_post" META_HTTP_JSONRPC = "*http_jsonrpc" 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 = "disconnect_cause" CGR_DISCONNECT_CAUSE = "cgr_disconnectcause" CGR_COMPUTELCR = "cgr_computelcr" CGR_SUPPLIERS = "cgr_suppliers" KAM_FLATSTORE = "kamailio_flatstore" OSIPS_FLATSTORE = "opensips_flatstore" ) var ( CdreCdrFormats = []string{CSV, DRYRUN, CDRE_FIXED_WIDTH} PrimaryCdrFields = []string{TOR, ACCID, CDRHOST, CDRSOURCE, REQTYPE, DIRECTION, TENANT, CATEGORY, ACCOUNT, SUBJECT, DESTINATION, SETUP_TIME, ANSWER_TIME, USAGE, SUPPLIER} )