We are happy to announce the MOR X17 release. The complete list of changes and improvements is below:
Reworked Subscriptions system
We have implemented extended functionality to the Subscriptions. Now it can start any day and can be billed at the start of the period, at the end, or on each day. This change looks simple from the gif picture, but underneath is quite complex and allows much more freedom to deal with Subscriptions. We will make additional improvements in this area in the future.
2FA Implementation
Security improvement to help you protect your system using 2FA
IP Whitelist
It allows you to enter IP addresses which will not be blocked in any case:
Automatic Tariff Import from links in email/site
Implemented functionality that allows downloading rate files from links in the emails and websites. Example: Voxbeam:
Automatic Tariff Import on scheduled date/time
Import not at once, but on the selected date/time
User Bulk Management
Change settings for all Users at once:
Reworked Blocked IP management
A more responsive and more informative way to block some unwanted IPs
Log about Blocked/Unblocked Country
Easy check who blocked which country and when
Device Registration status for Users
Now users can see the registration status of their Devices:
Agreement Date import with User Import
Additional field to ease the migration/import process:
IP Range in Whitelisted IPs
Range support when adding IPs to the Whitelist:
API device_get returns CallerID
Hide finances for Users in Quick Stats
Per-User permission to hide monetary info from their front page:
Unregister the Device/Connection Point
Added the functionality to unregister the device/connection point. A great tool to have in case of troubleshooting:
Same custom password for all Bulk-created Devices
Create all Devices with the same password (if necessary):
Direct links to Alert Object
Get direct links in the Alert Emails for faster navigation and better work-flow (to save time):
LCR management improvements
Show dependant Users, Destinations, Alerts when trying to delete LCRs. Helps to keep track of where these LCRs are linked and how it will impact the configuration if they will be gone.
Option to Delete Rates for Prefixes that are not present in the imported file
It allows you to keep your Tariff clean and avoid mismatches with the Vendor’s rates:
Export Tariff Analysis results to CSV
Later you can use these results in other tasks, like importing back after fixing them:
Email variables for the Tariff Import emails
Get informative emails about your Tariff Jobs:
Tariff Jobs better status
Visible at once the status of the Tariff Job. Is it done, active, or in the waiting state:
Blocked IPs page rework
Page rework for fast load with many blocked IPs, search, pagination, etc:
IP Blocking rework
The script which does all the work is reworked and its performance is increased many many times.
Suggest Strong Password
Quality of life improvement:
PCAP for Resellers
Give permission for the Resellers to see PCAPs on the Call-Info page. Make sure you want to show your Vendor’s IPs to the Reseller because PCAPs are LegA+LegB:
Fax Email improvements
Design improvements to show Fax Email information:
Protection against wrong mass Recording delete
Additional dialog to be sure that the selected period to delete Recordings is the right one:
Integration with CloudPBX
Improved integration with CloudPBX by allowing Resellers to have their own Carriers and manage them easily from the MOR interface.
Time Zone support in Tariff Import
Set the exact Time Zone for the Tariff / Rate Sheet file.
Separate Alerts/Rejects Notifications
Now different emails can be sent on Tariff Import Analysis for Alerts and Rejects.
Reason column in Tariff Import Analysis CSV
See the exact reason why Analysis failed for a particular rate.
CallerID Name on forwarded call
New setting save_did_device_callerid_name_to_db – Default 0. If 1, then MOR will save DID Device CallerID name (if set in Device settings) to database.
Time Zone per Voicemail box
DID Bulk Management Number control
Functionality to avoid huge problems when too big DID range is entered by mistake
Security Settings
Separated Security settings into their own tab for easier management
DID Search count
Shows how many DIDs are selected by the search criteria
Privacy ID with Hide CallerID
PrivacyID header now is added when Hide CallerID functionality is activated.
Failed Tariff Import handling improved
When Automatic Tariff Import fails for some reason, it is retried now up to 3 times. After that, it is considered Failed and the process can proceed with other related Tariff imports without stopping the queue.
Improved Tariff warnings
Not so intrusive warnings when there are active Tariff Jobs:
Manual Backup usability tune
Helps against the misclicks and shows status:
Tariff Jobs/Analysis usability improvements
Many small changes to allow a more streamlined work process:
Tariff Import Rules improvements
Interface fixes and usability tunes:
Tariff Import Inbox rework
Changes to the GUI and no more filter by date to minimize the confusion when emails could not be found due to the wrong selected time period:
Delete All Imported Tariff Jobs
Quickly eliminate unnecessary items:
Delete All Completed Background Tasks
Efficient housekeeping:
Archive CSV default size increased to 1MB (from 0)
This helps in the cases when the file is too large and the download takes a lot of time:
Protected Rate CSV export
Now not possible to click several times and choke the database:
Web Address for Users
New field to save the web address of your Client:
INVOICE change to something else
Some authorities (Australia) insist to see Tax Invoice instead of Invoice for example, so now it can be changed to anything:
Alphanumeric extensions support
Now MOR accepts “numbers” starting not only from digits but also from A-Z letters. This is usually necessary for Mobile Number Portability.
Stop calls on empty Flat-Rate plan
Now system stops Prepaid calls if the Flat-Rate plan is exhausted.
Improved DID import
Now after the import DIDs can be used at once without any additional steps:
Functionality to Merge Destination Groups
For easier management, when you have too much Dst. Groups:
Aggregates search by CLID
Additional option to make a better search. Most useful in the callback calls when real CallerID is saved into CLID field:
Delete Faxes functionality
Now possible to delete Faxes from the system:
Recordings Delete reworked
Delete action speed increased many times
PCAP Capture reworked
Now PCAPs are captured by TShark which should allow avoid problems with PCAP capture
Tariff Import Effective Date from Email Body
Now possible to retrieve the Effective Date from the Email body for imported Tariffs:
Quick Date select for Call List
To speed up the work-flow:
Functionality to add/remove Prefixes from Destination Groups
Using CSV file import:
Number Pools speedup/optimization
A solution to some slow down in a specific edge case:
From Email to Rates Notifications Emails
Custom From field to personalize your emails:
List for Provider to show in which LCRs it is assigned
Quickly find out the necessary relations:
LegA and LegB in API/DB/Call Info
Could be useful in special scenarios for CDR mapping:
Option to pass SIP Headers to the Provider
Resend necessary Headers to the Provider from the User/Device:
Option to control CallerID by matching destination
Find the best match by prefix vs find the best match by the nearest DID:
Pickup Groups support on Proxy
The proper way to handle Pickup Groups in the Proxy system:
Tuned Tariff Link Attachment Rules
Design changes and tunes for usability:
Action Log shows when some IP was blocked/unblocked
Now Accountant can see the Call Flow icon near the DID’s Device (same as Admin)
That would speedup the Device’s Call Flow management:
Completely reworked service availability checking and alerting for Elasticsearch, MySQL Replication, Radius, Freeswitch, Asterisk
Now alerting should be without false positives:
More informative Alert Email Subject
Previously it was: Alert Notification. Currently, it is more dynamic in the form: [Alert] ALERT_NAME for OBJECT_TYPE: OBJECT_NAME
Example:
- [Alert] Test Alert for USER: Kolmisoft
- [Alert] Device Registration Status for DEVICE: Test Device
- [Alert] Provider Bilsec for PROVIDER: Test Provider
- [Alert] System Calls for SYSTEM: system
- [Alert] Destination Alert for DESTINATION: 370
- [Alert] DST GROUP for DESTINATION GROUP: all
Balance history before and after the payment to reduce the chance of disagreements with the Clients
Also visible by the Client:
Elasticsearch sync logic rework
A huge internal task, not visible on the GUI, but nevertheless very important to keep the data synchronized perfectly. We moved from 24h sync-window to 1h sync-window to be sure that all data are synced at all times perfectly. It should eliminate the need to delay invoice generation in rare cases.
Device/Provider settings view tune
More logical settings rearranging for better workflow and productivity.
Additional Currency info in Call Info and DIDs pages
Usability improvement that shows currency in which rates and prices are presented on these pages to eliminate any possible confusion.
Device Ringing Timeout change via API
Extended API to change Device Ringing Timeout
New API subscription_create_bulk method
Allows to create subscriptions en masse
API method to get number status if it is covered under the Flat-Rate subscription
More info here.
API/recordings_delete
API method to delete recordings by various parameters
API/recording_update
API method to update recording info
Implemented Tariffs by CLIs to handle the European way of charging calls
Implemented Device Registration status for users
Implemented Permission for users to hide financial data in Quick Stats
Implemented User Settings Bulk management
Implemented Password options Random/Custom for Device bulk creation
Implemented Subscription period logic
Implemented Subscription charge everyday logic
Implemented Tariff Import for User Wholesale Tariffs
Implemented CDR autoexport to FTP
Implemented Self-Healing ES Sync Control Script to manage ES-MySQL sync status
Implemented ES control script functionality on non-ES servers
Implemented ES cleanup on Calls Archiving
Implemented API for Autodialer: Change status of a campaign
Implemented API for Autodialer: Enter Numbers in Auto-dialer
Implemented API for Autodialer: Get IVR/poll results in a string
Implemented API for Autodialer: Send “Redial all failed Calls” request
Implemented API for Autodialer: Get Campaign Stats
Implemented API user_details_raw_get
Implemented API subscription_create_bulk
Implemented API user_subscriptions_check_number_status
Implemented APIs recordings_delete, recording_update
Implemented custom debug option for API calls
Implemented Match Destination by Location Group in Combined Rules
Implemented Terminated By column on Last Calls page
Implemented service status checking in the cron
Implemented several ES servers in the multi-server system support
Implemented Tariff download from the link in the email
Implemented Scheduled Tariff Import
Implemented blocking SIP scanners in the iptables
Implemented an option to pass custom SIP Header from Leg A to Leg B
Implemented Destination Group management with CSV file import
Implemented Destination Group Merge functionality
Implemented ‘Delete Rates if not present’ functionality in Partial Update/Tariff Import
Implemented Tariff Import Date with hours support
Implemented advanced logging from the GUI for easier troubleshooting
Implemented an option to set Recording limit in GB vs %
Implemented saving LegA/B Call-IDs to DB and retrieval over API
Implemented custom From in the Rate Notification emails
Implemented Provider info that shows used in which LCR it is used
Implemented Tariff Import Analysis export to CSV
Implemented Whitelisted IP functionality
Implemented call termination on Flat-Rate plan exhaustion
Implemented DID import and activation from CSV file
Implemented CLID field support in Aggregate Reports
Implemented Effective Date from the Emeilo body
Implemented HTTPS support for Cloud PBX requests
Implemented Delete Faxes functionality
Implemented PCAP capture on the proxy server
Implemented new logic for PCAP capture
Implemented permission for Reseller to work with PCAP files
Implemented Mass Email pagination and sending emails to a limited amount of Users
Implemented separate Tariff Import notification emails for Alerts and Rejects
Implemented MNP support for Auto-Dialer and PIN/ANI calls
Implemented 2FA Authentication
Implemented Loading Line to show page load progress
Implemented ES Sync rework for huge speed and stability gain
Implemented Dynamic Flat-Rate into Profit calculation
Implemented Blocked User import
Implemented IP Range in Whitelist IPs
Implemented Call Limiting per User setting
Added DID management functionality for Reseller PRO users
Added field tariff_id to API user_details_get
Added fields src_user_id and dst_user_id to API user_calls_get
Added user_balance_before_payment and user_balance_after_payment to payments_get API
Added Balance Before/After to the Payments Info
Added field subscription_discount_percent to API subscription_create
Added Serbian Dinar RSD support
Added support for non-numerical DIDs
Added additional log for Country IP blocking
Added possibility for the Accountant to assign PBX Pool to the User
Added permission for the Partner to create Subscriptions
Added 3 retries for failed email sending for Automatic CDR Export
Added Call Flow access to the Accountant
Added option to recalculate Invoice for Reseller
Added log for Country blocked/unblocked IPs
Added rate-limiting on iptables in Centos 7
Added additional option for call length limiting in Active Calls
Added additional email variables for Tariff Import emails
Added CallerID Control by Destination tun option to match DID by prefix vs nearest
Added Tariff Import Email variable support to email Subject
Added option to rename ‘Invoice’ text in the Invoices
Added option to delete all Imported Tariff Jobs at once
Added support for Alphanumeric extensions
Added support for partitioning on Rerating
Added 404-page error redirection to a proper error page
Added info about the failed prefixes in the Dest.Group import from CSV
Added an option to show all Emails in the Inbox
Added an option to delete all completed Background Tasks
Added Web Address field in the User details
Added the type of the import to the Tariff Import Job
Added possibility to have a very long email password to use services with long API Keys (SendGrid)
Added in-call transfers in Cloud PBX
Added ES Realtime Check/Fix script
Added quick links for better navigation in Tariff Import windows
Added quick-select options for a date on the Call List page
Added ES, Proxy options to Servers for proper markup
Added option to loosen up PCAP search not matching CallerID
Added Suggest strong Password to the User Edit window
Added Destination Group in Alert Email
Added Privacy: ID with Hide CallerID function
Added Servers Adding for Resellers in Cloud PBX
Added Time Zone support into Tariff Import Rules
Added Reason column into Tariff Import Analysis CSV export
Added an option to manage Time Zone for Voicemail
Added an option to check DID length in DID Bulk Management
Added an option to block all Countries with iptables
Added callerid_control_by_dids in the API device_update
Added grace_time in the API did_details_update
Added Serbia to Blocked Countries list
Added DID Count by search
Added currency information into DID Rates and Call Info pages
Added ringing_timeout into API device_update
Added Aggregates CSV export testing routines
Added Number Pool info on the Number management page
Added CallerID into API devices_get
Added agreement_date import on a User import
Added direct link to object in Alerts
Added fetchmail control to handle failures
Added support for many XLS sheets in Rate Import
Added an option to do not play announcement at the end of DID call
Added Subscription ID and Memo into the Payment Private Comment field
Added Subscription setting – Charge for past
Improved API parameter warning messages
Improved API user_register for reseller, accountant users
Improved API services_get to properly return results
Improved Server Details for ‘other’ type of servers
Improved Servers with Real authentication handling for Cloud PBX devices
Improved Percona script to properly work with replication
Improved CSV export to properly handle escaped symbols
Improved SQL for IVR Actions to properly handle Number Pools
Improved functionality with non-digit numbers to properly support ;user=phone
Improved Subscriptions Report for Periodic Fee and Flat-Rate type subscriptions
Improved Copy Leg A Name to Leg B Number to be activated before Provider Source rules
Improved Recordings for Devices in the Queue
Improved DID call handling in the extensions when a call comes without the DID Number
Improved CallerID presentation in the forwarded calls
Improved automatic Invoice sending for Resellers and Users
Improved CallerID for Fax devices handling
Improved Cron job handling for Tariff Import on several server systems
Improved Tariff Job-status information
Improved Action search functionality
Improved Recording notifications and warnings
Improved notification when blocked User is trying to reset a password
Improved IP banning on failed login attempts
Improved FTP connection mode from passive to passive-active
Improved Alert email notification on registered Devices
Improved Alert email with more information in the email subject
Improved calls rerating with Ghost Time enabled
Improved Tariff Convert script
Improved Email to Tariff conversion script
Improved Integrity Check to skip disabled servers
Improved DID bulk management Terminate functionality
Improved Alert User email sending
Improved Blocked IP visualization in the GUI for better UX
Improved Blocked Countries functionality
Improved SSH security with Fail2Ban on Centos 7
Improved Country Blocking with iptables to work properly on server restarts
Improved Provider hiding with DIDs
Improved core recompile procedure
Improved mail retrieval procedure to minimize log pollution
Improved large call log retrieval
Improved Tariff Import Template handling
Improved seamless Tariff Import procedure
Improved recording copying to the remote server to handle failures
Improved Alert for Device Registration status
Improved recordings_get API to retrieve local call recordings
Improved Tariff Import Jobs to handle failures
Improved custom login form creation and handling
Improved Tariff Import to support messed up prices in CSV files
Improved Tariff Job functionality by allowing to delete Job with status ‘Waiting for confirmation’
Improved logging when Send Email To Admin after API/Balance Update is disabled
Improved email parsing for Tariff Import
Improved DB Backup creation on MySQL v5.7
Improved Tariff Import handling on MySQL timeout
Improved Tariff Import Analysis/Import speed several times
Improved translation selection
Improved Tariff Link Rules, Inbox/Show Source pages for UX
Improved Tariff Import Rule editing permissions when Job is active using this Rule
Improved Number Pool update/retrieval procedure speed several times
Improved PBX User filtering
Improved Payment Gateway configuration menu, removed outdated ones
Improved Tariff Jobs statuses and notifications
Improved Backup create procedure UX
Improved Exception handling in the Tariff Import
Improved Providers tariff representation UX
Improved Tariff Jobs, Inbox, Import Rules, Rate Check, Analysis UX
Improved Archive when the size reaches logic
Improved Recording DB records
Improved Tariff Import log to describe the exact error
Improved Rate export to CSV to avoid several clicks
Improved Tariff Generator functionality
Improved Tariff Import Email sending to avoid duplicates
Improved Recording Bulk Delete functionality
Improved Call Log retrieval procedure
Improved Bulk Recording delete speed (10k recordings 59s vs 0.09s)
Improved Recording handling with unreachable External Server
Improved time selection for Scheduled Tariff Import
Improved hints for Tariff Import Job Status
Improved ES resync for speed and usage
Improved Number Pool import to strip not-printable Unicode characters
Improved email parsing to skip HTML tags for proper data retrieval
Improved Alert Update handling with messes up session
Improved PCAP retrieval for DID-Trunk call flow
Improved some pages to speed up loading when Google services are not reachable
Improved cron scripts install on system update logic
Improved payment created over API handling
Improved IVR Timeout Response minimal value handling
Improved FAX over Email reporting and logging
Improved Settings layout for better UX
Improved Make Tariff LCR functionality
Improved Recording Bulk delete to lower the chance of deleting too much
Improved Blocked IPs page, added pagination and search
Improved Blocked IP to properly handle DROP rules
Improved install procedure to avoid unnecessary check warnings
Improved ES configuration for proper RAM assignment
Improved m2_get_blocked script for speedup
Improved G729 codec visualization in Active Calls from Core
Improved delete_old_calls script to resync only 1h instead 1d
Improvided DID Bulk Management to disallow non-digit numbers and avoid mistakes
Improved Last Calls filter to do not show hidden Resellers
Improved Settings UX
Improved Tariff Import failed Jobs handling
Improved Call Info log parsing to properly avoid HTML tags
Improved Last Calls search to accept Enter as the start of the search
Improved Email Attachment handling with an encoded filename
Improved Limited Paypal Addon notification
Improved Device Bulk Creation speed
Improved CallerID handling on forwarded calls
Improved CLIs search functionality
Improved FTP credential usage logic
Improved calls table structure
Improved speed of several SQLs
Improved IP Location retrieval logic
Improved Attachment encoding and parsing
Improved Device Qualify default value to support more devices
Improved ES install logic
Improved general code quality with cleaning and refactoring
Improved Blocked rate support from the imported Tariffs
Improved Recording delete logic
Improved CDR Import CSV separators handling logic
Improved Recording deleting older than logic
Improved missing session handling
Improved Warning Balance send Email hint UX
Improved device prune procedure to skip proxy servers
Improved Security Settings UX
Improved proxy marking in DB on server type change
Improved m2_connection_points_whitelist.sh by rework
Improved GUI to support several Pickup Groups
Improved long data saving into actions table
Improved the procedure to handle subscription generation failure
Improved Login page translation
Improved Reseller user creation with Cloud PBX
Improved long SQL handling procedures
Improved routing selection on the matching and the longest prefix
Improved calleridpres and subscibemwi field data handling
Improved Device Edit UX
Improved Provider Edit UX
Improved Load Stats data gathering on non-standard locales
Improved HGC 0 handling on the Proxy
Improved API device_callflow_update with several Users
Improved PBX User creation with some symbols in the password
Improved ES timeout to handle huge data-sets
Improved Asterisk peer registration handling
Improved separator guessing and handling in CSV import
Improved invoice generation log with additional data
Improved concurrent core generation on several servers
Improved Strong Password generator
Improved Authorization UX
Improved Rate Search functionality by limiting the max number to 20
Improved dependent Users when trying to delete LCR UX
Improved Background Tasks data retrieval from DB for speedup
Improved Auto-Dialer logging
Improved Archive Calls on AWS functionality
Improved Blocked Rate as -1 handling
Improved ES installation procedure
Improved MOR 200OK+instant BYE handling
Fixed notification email on low Balance during the Subscription payment
Fixed rare case with duplicate Server Devices
Fixed an issue with Warning Balance active when user type changed to Accountant
Fixed upgrade procedure to keep the server status ‘pbx’ during the upgrade
Fixed Centos 7 nodejs packet installation
Fixed email sending from several instances without the From: header
Fixed CallerID representation for the calls to the Cloud PBX
Fixed Backup file rotation
Fixed an issue when Admin was able to assign Flat-Rate to Reseller
Fixed issue when invoices were sent to Reseller Users
Fixed Alerts to properly show the Type and Name
Fixed Rate Import Rules page with the wrong Increment value input
Fixed issue with missing decimals in the PDF Invoice
Fixed issue with troubleshooting email sending
Fixed duplicate Custom Header on Failover Provider
Fixed issue with Reseller Invoice details and rates
Fixed saving correct value to the DB for terminated_by
Fixed wrong date with time-zone calculation on Invoice generation
Fixed fail2ban installation on Centos 7
Fixed rare case with not visible PayPal settings
Fixed Tariff Import Scheduler date picking in the past
Fixed Tariff Import Rule presentation in the Attachment section
Fixed Provider deletion procedure
Fixed Time Period representation in the PDF Invoice
Fixed rare case with prefix import
Fixed error with prefix comparison in the Tariff Analysis
Fixed bug with zero-rate import
Fixed missing DMTF test sound files
Fixed missing Call-ID column in the Queue report for Asterisk 15
Fixed undefined behavior for one case in Combined Localisation Rules
Fixed MNP installation procedure for Centos7/Asterisk 15
Fixed Opus codec not visible for devices
Fixed bad redirect from the Whitelisted IP page
Fixed cron not working in rare cases after GUI update
Fixed cron starting scripts when old instances still running
Fixed CDR import to properly populate some DB fields
Fixed Blocked IPs database structure
Fixed Auto Tariff Import not updating Tariff date value
Fixed user_login API to properly support hash
Fixed sounds installation
Fixed ES options to lock the necessary memory
Fixed bad fail2ban rules which messed up with some traffic
Fixed PAI handling in some edge-case
Fixed double Diversion header in one scenario
Fixed an issue where CDR was missing to the call with dst ‘0’
Fixed an issue with email flood on Asterisk malfunction
Fixed escaping wrong chars in Aggregates CSV export
Fixed From field to properly send server IP, not device IP
Fixed Invoice generation issue just after ES sync period
Fixed DID Summary calculation
Fixed issue with deleted CLIs from imported Devices
Fixed an issue when dialing an invalid extension in IVR
Fixed Whitelisted IP page selection box
Fixed import_device_under_reseller_error problem
Fixed an issue with time zones in the Effective Rate date field
Fixed currency conversion issue with Tariff by Provider
Fixed an issue that allowed to create of duplicate Localization rules over API
Fixed Direction delete procedure
Fixed issue with custom SIP Header visible on LegB
Fixed issue with Effective Date from File Name parsing
Fixed issue with Time Zone in Tariff Analysis
Fixed Localisation rules handling after Copy Leg A Name to Leg B Number
Fixed issue with commas in Active Calls data
Fixed File Name parsing in rare cases
Fixed Automatic CDR export reset issue
Fixed Make Tariff from LCR Providers to CSV rate selection
Fixed Recording checking on the External Server function
Fixed Recording delete API bug with hash formation and notifications
Fixed Tariff Template issues with Minimal Time/Increment
Fixed differences in GUI call price and exported file
Fixed delta applying to the Tariff issue
Fixed XLSX parsing issue
Fixed terminator_IP issue with PCAPs
Fixed an issue with DID Rates when DID created using API
Fixed crash on Subscription creation in a rare case
Fixed an issue with Lima destination creation
Fixed ‘comments_for_user’ doesn’t have a default value issue
Fixed incorrect integer value: ‘false’ for column ‘sold’
Fixed Effective From incorrect format handling
Fixed issue when simple calls marked as DID calls in the Invoice
Fixed currency conversion in Provider Statistics
Fixed an issue with SQL in Last Calls export
Fixed CDR export skipped due to day-light saving changes
Fixed CDR export email From handling
Fixed MySQL argument list too long problem in Tariff Import
Fixed PBX Pools IVR issue
Fixed Workday / Free day rate invalid configuration
Fixed subscription bundle API error
Fixed LCR Provider selection by longest prefix vs best rate
Fixed PCAP size limitation
Fixed Show User Stats with usernames with weird chars
Fixed an issue with Call Traced call logging
Fixed a bug with DID billing logic
Fixed a bug in Subscriptions SQL
Fixed an issue with duplicate file creation on Tariff Import
Fixed missing Callback menu item
Fixed a bug with a bad link to Reseller Pro User Rates
Well done!