Skip to main content

Release 3.24

JeraSoft presents a major release of JeraSoft Billing 3.24 featuring several functionality improvements and performance tweaks. Please find a complete revision list below.

Major updates

Blocked & closed Rates

To ensure our system fits perfectly with the business requirements of the field, we've expanded how it handles blocked and closed destinations by giving our clients more control over their management.

Improvements in UI

For added consistency, the Rates Analysis output will depict special marks if the rates are or will be blocked in the future:

Blocked RA

Blocked Rates are very definitely visible in the Rates list (see screenshot below). The logic behind such a type of rate allows for blocking specific destinations.

Blocked Rates Visual

We've added a button specifically designed for creating blocked destinations. It has a shortened list of parameters, only necessary for the purpose:

Adding a Blocked Rate

Also, now it is possible to filter the Rates list by the "Blocked Dst" parameter.

note

For blocked Rates, the values of the following fields can't be filled: Interval, Min Volume, Grace Volume, Setup Fee, and Number Length. The Policy can only be "Regular".

During Mass Edit, changing these fields will be ignored for blocked rates and will be completed successfully for all other rates.

In the Rates Import, new settings have been added:

  • Blocked keywords
  • Closed keywords

Both types of keywords are recognized in the Rate and Changes columns to process such rates accordingly.

Import of Blocked & Closed

The Agreements section supports blocked rates delay:

Blocked Agreement

The Import History tab now has a new column "Blocked" for the respective destinations:

Blocked in Import History

Rates management flows

Rates Analysis

Nuances of processing:

  • Since the value of the blocked rate is not defined, the margins cannot be calculated. Therefore, they are omitted in the output;
  • If the Master Source has a blocked rate, margin calculation works between sources (as for missing rates).

Rates Simulation

The section reflects blocked destinations:

Blocked Rate in Simulation

Rates Generator

Nuances of processing:

  • If there are both blocked and non-blocked rates in the Sources of a Rates Generator, only non-blocked will be taken into account while processing the destination;
  • If all of the Sources have blocked rates for the destination in question, the Rates Generator will create a Blocked Rate for a customer's side Rate Table.

Rates Notification

The functionality supports notifications about blocked Rates. Two new statuses for such rates have been added:

  • blocked
  • pending blocked

Calculator

xDRs with matched blocked rates will be processed in the same way as unidentified destinations.

Routing

The general logic is kept – events with blocked rates will be rejected during routing.

The Routing Analysis supports displaying blocked rates for both originators and terminators to get the full picture:

  1. If the rate is blocked for the originator, the routes will not be displayed. Blocked RA Output

  2. If a terminator has a direction blocked, the route will be rejected with the corresponding status ("Blocked Rate") Blocked RA Output 2

Appeal calculation

If the Routing Policy contains the Rate factor, the appeal value for blocked rates is set to a high value of 1000, regardless of the values of any other factors (see screenshot above).

For other formulas without the Rate factor, appeals are calculated as before.

Reports monitoring

We are continuing to improve the reports monitoring tools in the system. The Report Queries now have a new Monitoring tab – it represents the functionality of an older Factors Watcher tool providing added flexibility.

Monitoring Tab

The scheduling mechanism has the same run logic as the To Email functionality: fixed and periodic options. The Fixed run for reports monitoring provides a more straightforward scheduling style, having a list of times of the day when execution should fire. Whereas the Periodic run provides for a smooth alignment to the Query period.

Migration of Factors Watcher rules to Reports Monitoring rules

Queries & Rules that won't be migrated to Monitoring Rules:

  • Queries that have 0 Rules
  • Queries, where Reseller doesn't have Users if there are no admin users (w/o Reseller defined), excluding "jerasupport"
  • Queries, where Analyze Interval:
    • is not normalized
    • is bigger than:
      • xDRs List – 7 days
      • Summary Report – 1 month
    • is not equal to any smart interval (for the existing smart interval – check the Summary Report "Interval" filter in web UI). For example, the interval of 1 hour can be equal to the "Previous Hour".
  • Queries, where "check every" interval:
    • is not normalized
    • is less than:
      • xDRs List – 10 minutes
      • Summary Report – 1 hour
  • Rules that have an Expiry Date set (not empty)
  • Rules, where the Lock Period is not normalized
  • Rules, where factors
    • are incorrectly stored in the database
    • have additive_cost
    • have dst / src party id [ext / bill] and an operator except "=" (equality). For example, dst_party_id > 1000000000
  • Rules, where Match filters
    • are incorrectly stored in the database
    • contains Client / Account that has non-unique name among Factors Watcher query's Reseller visibility (reseller + sub-resellers of all levels; or else if there is no reseller in Factors Watcher query)

Low Balance notifications

One of the other significant developments in this current release is adding a separate section for Low Balance notifications management – Low Balance Profiles:

Low Balance Profiles section

With this introduction, we are simplifying a way for low balance control for prepaid customers in the system. The Low Balance Profiles are more versatile and comprehensive than the previous configuration, incorporating more rules and an easy setup.

The Low Balance notifications are sent over e-mail, and the Events Log has duplications of these messages. The notifications contain detailed information including:

  • Live Balance
  • Available Live Balance
  • Accountant Balance
  • Credit Limit (or Vendor Credit Limit, depending on the type)
  • Last Payment from the customer (received on, amount)
  • Pending Invoices (not paid or paid partially)

Low Balance notification configuration in Reseller

Configuration of the Low Balance Profiles became a lot more versatile allowing for multiple rules in a profile, multiple recipients (including Client's Billing Email, Client Owner's Email, plus custom emails), in addition to the previous threshold level setup. The new settings also include:

  • Period – for setting the frequency of notifications (i.e., if you would like to send notifications each day, set this value to 24 hours);
  • Max Qty of notifications to send;
  • Inactivity – for firing additional notifications if there are no charges to the Client's Balance for the defined period; Low Balance Profile
  • notifications now can be set up for the vendor's side as well: Low Balance Profile for Orig/Term

In addition to that, a new periodical service was introduced to System ServicesLow Balance Monitoring. It runs every 60 minutes by default.

Minor updates

Provisioning API

Automatic Email Import

We've added three new provisioning API event triggers for Automatic Email Import:

  • When the message was not matched to any of the Rate Tablesemail_rates_manager.rate_tables_no_match;
  • When there were no attachments to process – email_rates_manager.no_attachments;
  • When we got an error (e.g., corrupted zip archive or when zip archive does not contain valid files to process) during attachment processing – email_rates_manager.file_processing_error;
warning

We've changed the ex events identification (object_id in the payload) to the message ID on the mail server side instead of import_queue_id as it was before.

Transactions

We've added a set of handlers to the list of events:

  • Transactions / Payments
    • accounting.payments.create
    • accounting.payments.delete
    • accounting.payments.update
  • Transactions / Charges
    • accounting.charges.create
    • accounting.charges.delete
    • accounting.charges.update

Integrations

Oracle SBC

We've introduced CDR integration for Oracle SBC.

Optimizations

SIP LNP - sockets usage

We’ve reworked the current process of opening a new socket on each LNP dip and binding it to a random free local port to use a single opened socket per 1 process.

LNP calls calculation

If the SIP LNP server could not send us a reply during the billing (an error occurred on its side), we log this error and stop the calculation. It is better to process xDRs Rerating for such calls after. Likewise, if an error occurred with NANP.

If such errors occur during routing (either through Routing Analysis or through RADIUS / SIP), we set "traffic-processing" as a reject reason for such a route (and immediately reject it).

RADIUS/SIP - overload

We’ve improved how the system handles RADIUS/SIP server overload by redefining UDP buffer size and not allowing it to be filled for more than half of the set value.

Gateways

Now, you can create multiple Gateways for the same IP address to set different directories or Data Sources for Files Collector. Unique IP would only be necessary if Radius or SIP is enabled for a Gateway.

Data Sources (from v3.24.5)

We've added support for Microsoft OAuth 2.0 in the Data Sources connection types list. You can select the "IMAP Microsoft [OAuth2]" option to use it. Please check out our Knowledge Base for more information on this.

Active Calls on Sansay (>3.24.8)

We've added a new service – AC Manager – to pull Active Calls from the Sansay switches. This improvement allows for capacity control, basic authorization, and active calls monitoring without any RADIUS communication needed (since Sansay does routing over SIP).

Compliance Solutions

We’ve reworked the Safe Harbor mode for the "Compliance Solutions" Taxes Profile type. Now we split the request into two parts (intrastate/interstate) with appropriate proportion on our side (default value is 64.9).

Rates

Generation

The overall generation speed has been improved.

Simulation

It is possible to share the result of a Rates Simulation as we've reworked how the link is built.

Notification

Timezone

The system now uses the notified Client's timezone while forming rates notification filename.

New Variables

We've added a set of new variables to the Rates Notificator:

  • ${msg['filename_wo_ext']} – attached filename without extensions
  • ${msg['filename']} – attached filename (full)
  • ${msg['rt_name']} – notification Rate Table name;
  • ${msg['lastedit_dt']} – notification Rate Table last edit time;
  • ${msg['date']} – notification DateTime.
Filenames

Filename Templates now form a separate section in the Configuration → Settings of the system:

Filename Templates in System Settings

The templates can consist of either plain text or variables defined as {{<variable_name>}}. The templates and allowed variables are:

  • Invoice filename:
    • {{no}}Invoice number
  • Invoice attached xDR filename:
    • {{no}}Invoice number
  • Exported Rates filename:
    • {{rate_tables_name}} – exported Rate Table name
    • {{date}} – export date
    • {{time}} – export time
  • Filenames for attachments in Rates Notifications (for each notification mode: "all", "changed", "all (unique)"):
    • {{rate_tables_name}} – exported Rate Table name
    • {{time_profiles_name}}Time Profile of exported Rates
    • {{companies_name}}Client's company name
    • {{clients_name}}Client's name
    • {{tech_prefix}}Tech Prefix of the Client's Account
    • {{date_utc}} – notification date in UTC
    • {{time_utc}} – notification time in UTC
    • {{date_client_tz}} – notification date in the Client's timezone
    • {{time_client_tz}} – notification time in the Client's timezone
    • {{date_system_tz}} – notification date in the system's timezone
    • {{time_system_tz}} – notification time in the system's timezone
note
  1. All spaces in the templates are replaced with underscores;
  2. Non-existent or empty variables (e.g., there is no Tech Prefix for an Account) are replaced with empty strings.

Other changes:

  • the rates.export CoreAPI method was changed and now can return only one file, not several as before. Because of this, the format of the response has been changed from {"files": [{"id": <id>}, {"id": "id"}, ...]} to {"files_id": <id>}.
info

Please acknowledge the changes and rework the integrations according to them, since we will not support the old format starting from version 3.25.

UI Improvements

Invoices Templates

We've expanded the Invoices Templates management introducing the table class "None" for cases where you do not need to assign any class to the table.

Filter by Reseller

The option to filter by Reseller is now present in:

  • xDRs Rerating
  • Mismatches Report
  • Accounts
  • Transactions
  • Subscriptions
  • Traffic Processing rules
  • Active Sessions

Date and Time format

We’ve normalized the timezone display throughout different sections of the billing system.

Deprecations

Calling Cards

The Calling Cards section has been fully removed from the system.

Reseller Fraud Protection

We've removed the Fraud Protection section from the Reseller's settings in favor of a more versatile fraud management of the system.