Skip to content

Releases: cgrates/cgrates

CGRateS@v0.10.3

09 Aug 15:46
Compare
Choose a tag to compare

On behalf of CGRateS Development Team, I am happy to announce the release of v0.10.3 version.

This is a maintenance release, addressing just fixes, hence no features or backwards incompatible changes intended.

Partial CHANGELOG:

  • [RALs] Now, balance update events from RALs to ThresholdS (when negative) are only sent once.
  • [SessionS] Updated to use rals_conns when refund rounding is sent.
  • [SupplierS] Now requires a connection to rals for calculating AccountIDs and RatingPlanIDs.
  • [SessionS] Implemented the compilation of SRun.EventCost before storing and passing it further.
  • [ApierS] Improved error handling for APIerSv1.GetActionTriggers.
  • [SessionS] Added condition to assess if increment should be considered roundIncrement.
  • [SessionS] When appending to the EventCost,the charging interval is now being cloned.
  • [FilterS] Enhanced automated index fields matching for optimization.
  • [AgentS] Introduced *routes_maxcost flag.
  • [SessionS] max_call_duration config replaced with default_usage per ToR.
  • [SessionS] If replication_conns are set, sessions will not terminate on shutdown.
  • [EventCost] Improved FieldAsInterface function to prevent crashes when a RatingPlan doesn't exist (#2743).
  • [EventCost] Added nil check when creating EventCost DataProvider, preventing crashes when cgr-engine is manually restarted during an ongoing call (#2764).
  • [DispatcherS] Fixed panic when sending Ping request through DispatcherS.
  • [CacheS] Tenant now passed to automatic cache calls (#2928).
  • [DispatcherS] Added missing Responder methods to DispatcherS (#2954).
  • [DispatcherS] The ArgDispatcher field for ThresholdS methods is now mandatory only if a connection to AttributeS has been defined (#2981).
  • [DataManager] Revised caching logic for ActionPlans.
  • [AttributeS] Introduced *sipcid field type.
  • [FilterS] New APIs for index status checks have been implemented.
  • [SessionS] Tenant is set to default if not specified for SessionS APIs.
  • [RALs] Fixed issue with *any subject not considered when removing RatingProfiles (#3161).
  • [ResourceS] ResourceS APIs updated for concurrent usage safety.
  • [APIs] Addressed potential panic risk caused by API parameter validator function.
  • [cgr-loader] Added tenant flag.
  • [ApierS] Cache now reloaded when setting/removing RatingProfiles (#3186).
  • [SessionS] Session synchronization no longer occurs with no active sessions.
  • [RALs] Updated EventCost rounding increment handling (#3018).
  • [SessionS] Protection added for missing events.
  • [Config] Resolved issue with appending default port to multiple mongodb hosts in config file (#3673).
  • [FSock] Fixed cgr-engine panic at startup when trying to connect to freeswitch_agent with logger set to *stdout (#3678).
  • [AttributeS/DispatcherS] Context/Subsystems now set to *any if not specified.
  • [FilterS] Added support for reverse filter indexes.
  • [FSock] Addressed an issue where parsing responses from FreeSWITCH sometimes resulted in an unexpected number of values (#3749).
  • [FSock] Resolved a connectivity issue where, if the connection between cgr-engine and the freeswitch agent was terminated during use, no reconnection attempts would be made (#3794).
  • [Fsock] Corrected a parsing error where separators between parentheses were not ignored, leading to improper parsing of replies from the 'show channels' API call.
  • [CDRe] Retained export_path as is for amqp, amqpv1, sqs, s3 and kafka exporters.
  • [ServiceManager] Rectified a problem that prevented the RALs service from starting when the Responder was already running.
  • [CDRs] Refund process now precedes debit during CDR rerating, fixing potential inaccuracies.
  • [LoaderS] Introduced inline filter validation before DB write, preventing late-stage errors.
  • [RPCClient] Updated to the latest version, addressing potential panic, deadlock, and data race issues.
  • [CDRe] *exp.Cost path population no longer hardcoded to Cost found in *req map, user now can choose.
  • [CDRe] Resolved an issue where the RoundingDecimals, if not explicitly set by the user, defaulted to 0 instead of the value defined under the "general" section in the configuration.
  • [CDRe] Fixed a template problem where attempts to overwrite existing fields would lead to appending new values at the end of old ones, rather than replacing them.
  • [CDRe] Overwriting preexisting fields in a template no longer appends new values at the end.
  • [Storage] Introduced error handling for a previously overlooked case. Specifically, when GetCDRs is called for mongo with the remove flag set to true and the process returns an error, it previously led to a panic. This issue has now been addressed.
  • [CDRe] Fixed support for *combimed field type.
  • [Docs] Updated installation documentation: https://cgrates.readthedocs.io/en/v0.10/installation.html.
  • [CDRe] Added the possibility to override the exporter filter field through the API request signature.
  • Updated all associated libraries to their most recent versions.
  • Enhanced the testing suite and increased coverage.
  • Implemented various fixes, updates, and enhancements primarily noticeable to developers (so we will not go into too much detail), including:
    • Enhanced code formatting and readability for better maintainability.
    • Simplified some complex functions to increase efficiency and ease of understanding.
    • Updated outdated Ansible and Bash scripts.

Full Changelog: v0.10.2...v0.10.3

Enjoy it!

DanB

CGRateS@v0.10.2

08 Oct 11:32
Compare
Choose a tag to compare

@ALL,

On behalf of CGRateS Development Team, I am happy to announce the release of v0.10.2 version.

This is a maintenance release, addressing just fixes, hence no features or backwards incompatible changes intended.

Partial CHANGELOG:

  • [SupplierS] Uniformize the logic in model_helpers.go
  • [FilterS] Updated error message in case of unknown prefix
  • [Server] Corectly log the server listen error
  • [ERs] Add *none EventReader type
  • [ERs] Renamed *default reader folders
  • [General] Added *mo+extraDuration time support (e.g. *mo+1h will
    be time.Now() + 1 month + 1 hour)
  • [SessionS] Use correctly SessionTTLUsage when calculate end usage in case of terminate session from ttl mechanism
  • [RSRParsers] Removed attribute sistem from RSRParser
  • [RSRParsers] Added grave accent char as a delimiter to not split tge RSR value
  • [SessionS] Rename from ResourceMessage to ResourceAllocation
  • [AgentS] Correctly verify flags for setting max usage in ProcessEvent
  • [AgentS] DiameterAgent return NOT_FOUND instead of "filter not passing" error and let other subsystem to handle this (e.g. FilterS)

As always, many thanks to all of the parties, especially the Development Team, Community and Commercial contributors for helping us reaching this point.

DanB

CGRateS@v0.10.1

12 May 11:52
Compare
Choose a tag to compare

@ALL,

On behalf of CGRateS Development Team, I am happy to annouce the release of v0.10.1 version.

As promised, this is a maintanance release, addressing just fixes, hence no features or backwards incompatible changes intended.

Partial CHANGELOG:

  • [FilterS] Removed rals_conns in favor of reading the account
    directly from DataDB
  • [SessionS] Added check for missing CGRevent
  • [DiameterAgent] Using String function from diam.Message instead of
    ToJSON for request String method
  • [DiameterAgent] Updated 3gp_vendor dictionary
  • [Templates] Added new dataconvertor: *ip2hex
  • [AgentRequest] Added support for *group type and correctly overwrite
    the values in case of *variable
  • [EventReader] Correctly populate ConcurrentRequest from config in
    EventReader
  • [SupplierS] In case of missing usage from Event use 1 minute as
    default value
  • [DataDB] Mongo support different marshaler than msgpack
  • [ConnManager] Fixed rpc_conns handling id with two connections and one of
    it *internal
  • [Replicator] Added Limit and StaticTTL otions for Items from
    DataDB/StorDB
  • [Migrator] Auto discover tenant from key instead of taking it from config
  • [Templates] Fixed missing "*" for strip and padding strategy
  • [SessionS] Update subflags for *rals ( *authorize and *initiate )
  • [AgentRequest] Improved NavigableMap
  • [AgentRequest] FieldAsInterface return Data instead of NMItem
  • [SupplierS] Allow multiple suppliers with the same ID
  • [Engine] Skip caching if limit is 0
  • [CacheS] Avoid long recaching

As always, many thanks to all of the parties, especially the Development Team, Community and Commercial contributors for helping reaching this point.

DanB

CGRateS@v0.10.0

06 Feb 15:28
Compare
Choose a tag to compare

@ALL,

On behalf of CGRateS development team I am honored to announce our first ever stable Release Branch: v0.10.

What does this mean?

  • The architecture has reached a point where we are happy to maintain it on long term, separately from the master branch.
  • We will not longer add any features to the v0.10 branch but just bug fixes.
  • There is a separate documentation being built for v0.10 branch which can be accessed here: https://cgrates.readthedocs.io/en/v0.10/
  • We have created a separate distribution on our apt.cgrates.org server which will contain packages built for v0.10.
  • We have added a separate archive of packages at: pkg.cgrates.org/debian/v0.10.
  • We have tagged/packaged the first release within v0.10 branch to v0.10.0 which should contain the code of today (and will mostly build new ones on each bug fix in the branch).
  • Every new release branch we will build in the future will contain a changelog as well as migration instructions between existing and previous release branch.
  • We will maintain in parallel at least one release branch and master (possible even more).

Some notes on the v0.10 (compared to the previous release we did - rc7 back in September 2015):

  • Code base growth from 70000 to 240000 lines over 6300 commits done in 4 years and 4 months.
  • Merged the old tariffplan_db into data_db.
  • Removed old Balancer component in the favour of the new DispatcherS.
  • Refactored old Rater into RALs.
  • Refactored old "cdrstats" into StatS.
  • Refactored old CDRc into ERs.
  • Merged old sm_* functionality into SessionS.
  • Separated "CommSwitch dialect" from the old sm_* into own agents.
  • Removed HistoryS component due to lack of popularity.
  • Removed old PubSub component due functionality duplication with ThresholdS.
  • Merged old AliaseS and UserS into the new AttributeS.
  • Refactored the connections between components into pools for easier management and performance.
  • Added support for encrypted connections/transports via TLS.
  • Added support for a new DataDB/StorDB: <*internal>.
  • Added support for DataDB/StorDB replication for high availability as well as distributed caching.
  • Enhanced internal cache with lru and ttl support together with advanced configuration for each cache instance.
  • New FilterS to generically filter events and serving as common filtering logic for all the new subsystems.
  • New AsteriskAgent to interface with Asterisk servers.
  • New DiameterAgent to interface with Diameter clients.
  • New RadiusAgent to interface with Radius clients.
  • New HTTPAgent to interface with HTTP clients.
  • New DNSAgent to interface with DNS clients.
  • New ChargerS replacing the old DerivedCharging mechanism which was hardcoded within sm_* and cdrs.
  • New ResourceS component to control the resource usage profiles.
  • New SupplierS component replacing the LCR which was hardcoded within the Rater.
  • New LoaderS component with the ability to dynamically load tariff plans.
  • New DispatcherS component for high availability and load balancing.
  • New cgr-migrator designed to automatically perform migrations between installs.

Documentation:

  • We have already started refactoring the old documentation to cope with all the changes included in the new release branch but we estimate a couple of weeks more to get where we want to be, so please bear with us for a little while longer. The old documentation was about 100 pages, new ones will reach way more.

I would personally like to thank CGRateS development team for their incredible efforts to reach here, community for support and patience and last but not least to our commercial sponsors which helped us pay the bills all these years ;).

Enjoy your shiny new CGRateS@v0.10.0!

DanB

Release v0.9.1rc7

22 Sep 11:26
@rif rif
Compare
Choose a tag to compare
Release v0.9.1rc7 Pre-release
Pre-release

On behalf of CGRateS development team and with a big help from our valuable CGRateS Community, I am happy to announce the availability of a new package updating the 0.9.1 branch, RC7.

Due to the serious amount of changes we did, I will depict here just the most important, planning to improve the changelog once we get rid of "rc" in our versioning.

  • SM fix where account was concurrently overwritten with remote SM configurations.
  • New subsystem - aliases.
  • Paginator inside GetLcr.
  • Exported Metrics for triggered stats actions.
  • Fix console pointer for Paginator.
  • Fix unitialized ExtraFields in exporter.
  • ApierV1.SetAccount handle AllowNegative and Disabled flags.
  • Kamailio tutorial for interoperability with CGRateS documented.
  • ApierV1.RemRatingProfile implementation.
  • No default rating profile fallback, deny destinations to users with accounts.
  • Configurable default_timezone for sources not specifying it.
  • Adding extra_fields to queries matching user profiles and aliases.
  • Renamed accountingdb->datadb, ratingdb->tpdb inside cgr-loader parameters.
  • Remove old AccountAliases and RatingAliases from cache_item_age.
  • Empty subject in event sources should be mapped to account information.
  • Fix remote methods inside CDRS influencing double-charging in particular setups.
  • Fix Usage and Pdd fields rounding which were dropping decimal values.
  • LoadHistory implementation.
  • Redesign of service start inside cgr-engine binary.
  • Using glide for external package management via Go vendor facility.
  • Dropped support for go versions older than 1.5.
  • Runtime reloads for CDRC and CDRE components.
  • Fix for scheduler multiple execution.
  • Use DestinationId inside CdrStats instead of prefixes.
  • Fix duplicated UUID for balances using same ActionPlan.
  • Added AllowNegative and Disabled inside AccountActions.csv.
  • Added balance disable flag inside Actions.csv
  • Added Masked flag to UserProfiles.csv.

How to get started?

We have documented most important use cases of CGRateS here: http://cgrates.readthedocs.org/en/latest/tutorials.html
The initial documentation (https://cgrates.readthedocs.org/en/latest/) it should set you up with a fairly basic understanding about the functionality and how to install the software (still behind the code but it will receive some love in the near future).
Get hold of us on our support channels (Google Groups: CGRateS and Freenode IRC channel #cgrates).
Being one of our main focuses these days, we are very much happy to take any bugs findings / suggestions from our Community!

Once again, a BIG THANKS to all of you helping us reaching this point, especially commercial components keeping us going further!

The CGRateS Team

Release 0.9.1-rc6

31 Jul 17:07
@rif rif
Compare
Choose a tag to compare
Release 0.9.1-rc6 Pre-release
Pre-release

On behalf of CGRateS development team and with a big help from our valuable CGRateS Community, I am happy to announce the availability of a new package updating the 0.9.1 branch, RC6.

Due to the serious amount of changes we did, I will depict here just the most important, planning to improve the changelog once we get rid of "rc" in our versioning.

  • New configuration format: json. Support for multiple configuration sub-folders and files(config includes).
  • Transactional cache with support for rollbacks in case of failures during data loading.
  • Postgres support as addition to MySQL already in as StorDb.
  • Various improvements/schema changes on MySQL side (upgrade script provided for CDRs part).
  • Advanced LCR functionality with various strategies used.
  • Pubsub service offering real-time access to internal events (eg: balance chances).
  • User service extending the information you can use when interacting with CGRateS from external systems.
  • Kamailio support for all our four charging methods: *prepaid, *pseudoprepaid, *postpaid, *rated.
  • Added support for Kamailio and OpenSIPS flatstore CDRs processing inside CDRC component.
  • Fixed width CDRs support in CDRC.
  • Advanced export templates included

How to get started?

Being one of our main focuses these days, we are very much happy to take any bugs findings / suggestions from our Community!

Once again, a BIG THANKS to all of you helping us reaching this point, especially commercial components keeping us going further!

The CGRateS Team

Release 0.9.1-rc5

18 Aug 12:24
@rif rif
Compare
Choose a tag to compare
Release 0.9.1-rc5 Pre-release
Pre-release

On behalf of CGRateS development team and with a big help from our valuable CGRateS Community, I am happy to announce the availability of a new package updating the 0.9.1 branch, RC5.

Due to the serious amount of changes we did, this release is also not backwards compatible.

Some of the new features we have put inside:

  • CDRStats: real-time stats server with unlimited StatsQueues and thresholds/actions on Metrics monitored.
  • OpenSIPS support via event_datagram.
  • New CDR interface via RPC methods.
  • Real-time *data and *sms charging.
  • Modified cdr* tables to support *data and *sms charging.
  • DerivedCharging (session emulation, useful for example in white-labeling implementations).
  • CDRC monitoring multiple folders with individual import templates, advanced templates possible through .xml configurations
  • CDRE using CGR-RSR fields in export templates, advanced export templates possible through .xml configurations
  • Improved CDR export statistics
  • Concurrency and cache loading fixes.
  • A number of small fixes and improvements.

How to get started?

Being one of our main focuses these days, we are very much happy to take any bugs findings / suggestions from our Community!

Once again, a BIG THANKS to all of you helping us reaching this point, especially commercial components keeping us going further!

The CGRateS Team

Release 0.9.1-rc4

25 Mar 17:39
Compare
Choose a tag to compare
Release 0.9.1-rc4 Pre-release
Pre-release

On behalf of CGRateS development team and with a big help from our valuable CGRateS Community, I am proud to announce that we have packaged a RC update to 0.9.1 version.

This release is a big step forward to a stable architecture (we will only consider minimal architectural changes in the future) and we plan, if no serious issues are to be found, to be the last RC before the stable one.
Due to the serious amount of changes we did, this release is also not backwards compatible.

Some of the new features we have put inside:

  • SharedBalances: ability to handle "company" like balances with various debit strategies and individual costs defined for the account using the share.
  • Session Manager: support for pseudo sessions (eg: multiple individual debits for the same session, useful in case of queues of distributors/resellers).
  • Rating and Accounts Aliases: rating subjects and accounts can be mapped to previously defined, simplifying data management.
  • CdrExporter fixed_width file format.
  • CdrExporter APIs supporting now a large number of filters (eg: export CDRs at tenant, account level).
  • CdrExporter full templates for exports configurable in both main configuration file as well as via API-RPC.
  • RSRFields (RegexpSearchReplace) used for both received CDRs as well as exported ones.
  • Advanced XML configuration file for more complex configuration definitions (eg: export templates for FixedWidth CDRs).
  • Renamed ActionTimings -> ActionPlan.
  • Improved database structure (database schema upgrade is necessary).
  • Improved Fraud Detection mechanism. CGRateS can now automatically disable accounts, send emails on thresholds reached, HTTP-POST on specific URLs.
  • Remote mediation now possible via API-RPC, re-rate abilities introduced.
  • Remote CDRs export and removal through API-RPC.
  • FreeSWITCH JSON-CDR improvements, search recursively through sections for a field (not longer limited to vars section).
  • Concurrency and cache loading fixes.
  • A number of small fixes and improvements.

How to get started?

  • We have documented most important use cases of CGRateS: with online and offline CDRs using FreeSWITCH here: http://cgrates.readthedocs.org/en/latest/tut_freeswitch.html
  • The initial documentation (https://cgrates.readthedocs.org/en/latest/) it should set you up with a fairly basic understanding about the functionality and how to install the software (still behind the code but it will receive some love in the near future).
  • Get hold of us on our support channels (Google Groups: CGRateS and Freenode IRC channel #cgrates).

Being one of our main focuses these days, we are very much happy to take any bugs findings / suggestions from our Community!

Once again, a BIG THANKS to all of you helping us reaching this point, especially commercial components keeping us going further!

The CGRateS Team

v0.9.1-rc3

17 Jan 15:21
@rif rif
Compare
Choose a tag to compare
v0.9.1-rc3 Pre-release
Pre-release

This release is a big step forward a stable architecture (we consider minimal architectural changes in the future), so we should be closer than ever to a stable release.
Due to the serious amount of changes we did this release is also not anymore backwards compatible with the previous one, hence we strongly advice anyone to update.

Some of the new features we have put inside:

  • Online/Real-time CDRs with 2 interfaces (CGR native and FreeSWITCH HTTP-JSON).
  • Caching system boosting up performance (with or without data aging). Full rating data and partial accounting one is now cached within the caching engine.
  • CDRclient - remotely import CDRs (eg: generic .csv importer).
  • CDRexporter - export CDRs mediated into a format of choices (.csv ready, fixedwidth on development).
  • History server/agent for distributed rates archiving.
  • Tariff plans versioning with full remote API support.
  • Costs rounding with custom methods and number of decimals.
  • Complete separation between rating, accounting and CDR storage subsystems.
  • Partial rates reload.
  • Shared destinations between rating plans (even during different loads).
  • Rates aliasing.
  • Balance expirations.
  • Balance rates.
  • Balance triggers.
  • Multiple mediation runs on the same CDR record with configurable fields per each run.
  • Large amount of new APIs.
  • cgr-tester utility to perform local load tests on custom rating sheets.
  • ...

How to get started?