Sippy 2021 Alpha Release

Hello Everyone,

Sippy Software Inc. is happy to announce our 2021 release is now moved to Early Alpha testing. We have been working hard over the last few months to put together this release and are happy to preview some of our changes. Our final release may include more items than described here as we wrap up our development cycle. We have posted a few videos on our Youtube page that describe just some of the major changes we have planned. If you are interested in trying out a preview of our release please contact sales@sippysoft.com for more information. Here are the changes we have in plan for Sippy 2021 release at this point:

Major Changes:

SS-3362 - TLS VoIP Security

A long awaited feature request. We have added a large number of changes that support our efforts to provide additional security to your VoIP calls. Multiple components have been adjusted to support TLS/TCP transport for your calls. We have made a number of changes that better store SSL Certificates, manage Certificates, and how calls are processed.

SS-4737 - SSL Certificate Storage

We have done some work to better improve how SSL Certificates are managed on the softswitch. The list of improvements include a new DB table to track SSL certificates, XMLAPI methods to Create, Read, Upload, or Delete SSL Certificates, allow Let’s Encrypt to Automatically Update certificates, and notifications to the user about the expiration of your SSL Certificates. SSL Certificates now have their own menu option in the System Parameters making it easier than ever to manage your certificates.

SS-4002 - Stir\Shaken Support

STIR\SHAKEN can now be handled by the softswitch to both sign and verify calls locally. In the most recent versions of Sippy 2020 we backported signing functionality through 1 Call Connect. Calls were sent to them to be returned with a signature bound for their final destination. In Sippy 2021 Calls can be signed and verified using a local service on the softswitch instead of sending it off to a third party. This offers our customers some flexibility if they wish to handle the signing and verification themselves or send/receive the data to/from a third party offloading the work. All this to meet the latest regulatory compliance for Calls bound to North America.

SS-2399 - Update to Python3

Many of the components used in Sippy Softswitch were initially developed using Python 2.7 and have proven to be very reliable and robust since their initial design. Unfortunately Python 2.7 had reached the end of its days at the start of 2020. This means security patches and improvements to Python would no longer be made and it was time to update our codebase to Python3. Python 3 had a number of improvements as well as syntax changes that needed to be resolved as part of this migration and we took the time to update all our Python based components to use Python 3. Almost all of the critical components in our software needed to be adjusted including our Python version of B2BUA, XMLAPI and our monitoring are just a few examples where we needed to make changes. This will extend the life cycle of Sippy 2021 and future versions for some time.

SS-4492 - Submenu for System Parameter Pages

Our page for System Parameters has been growing and growing for some time and started to grow quickly with the addition of many parameters included in this release. It was finally time to divide the page into more discrete pages and eliminate the noise from other fields that aren’t relevant for the configuration choices you need to make. This change should make it easier for users to make the changes they need without having to feel distracted by other fields that are not relevant to the task at hand. A support article will be published outlining all the changes and articles in our support knowledge base will all be updated over the coming weeks.

SS-3424 - FreeBSD 12.2 and PostgreSQL 10

The OS version has been updated to support FreeBSD 12.2. PostgreSQL will also be updated to Postgres10.

SS-2728 - Privacy Header Support and Processing

We have done a major refactoring on privacy header support and processing. These changes will make privacy support consistent across multiple existing standards such as P-Asserted-Identity from RFC 3325 and Remote Party-ID from https://datatracker.ietf.org/doc/html/draft-ietf-sip-privacy-04. Configuration settings will be streamlined and will add missing features that have been requested in the past. A protocol-independent Privacy ID is implemented per session that will be generalised to be either send or receive as P-Asserted-ID or Remote-Party-ID.

SS-4704 - OpenSIPS 3.1

OpenSIPS 3.1 offers several modules key for some of the feature sets needed for our latest release including modules to help with features like STIR/SHAKEN and SIP TLS. It will also add new modules to take on new projects in the future to help deliver more robust signalling solutions.

SS-3360 - Capacity Credit - A Freight Switch Feature

We are introducing a new feature that will allow some more flexibility for high Concurrent Channel and Calls Per Second on your softswitch. Email warnings will better inform switch operators of high levels of traffic. This will help you better gauge when you need to add additional capacity to your softswitch. Messages will be sent out as you reach 95%, and 100%. An additional 5% capacity credit will be allowed thereby ensuring that during unusual high traffic activity you do not lose on completing those calls. New calls if you exceed this Capacity Credit will not be processed until traffic on your system subsides. To maintain this system, softswitch owners will be advised to ensure traffic to our systems is whitelisted as this will be a requirement going forward. Please contact support for an updated list of IP addresses to include on your whitelist for your firewall policies. If your softswitch is unable to connect to our servers for an extended period of time your switch capacity will be scaled back until you can reconnect to our server. This is also a further security measure that helps you control call traffic.

SS-2350 - ZFS File System - A Freight Switch Feature

ZFS file system offers a wide range of new features that are not available with Unix File Systems. ZFS offers some great tools to ensure checksum data integrity. Data volumes can be expanded easily. And the ability to generate snapshots of your system and have incremental backups is a huge improvement over what our softswitch typically uses. Our AWS builds were the first to move to this file system and FreightSwitch will adopt this new file system.

SS-1726 - CDR Separation - A Freight Switch Feature

The CDR data is by far the largest amount of data that is kept on the softswitch. It’s used for a wide range of features including billing, reporting, rerate procedures, and troubleshooting just to name a small few. CDRs make a large slice of the database pie and it made sense to separate it from the configuration database. So much like our work on balances in Sippy 5.0 we set off to make a database that’s separated from your configurations making this critical data more readily available to not only the switch but to external devices as well. By doing this we also gain the ability to centralise CDR records so multiple nodes on a network will be able to post records to a singular device. This becomes incredibly important for features like Clustering as all the nodes in a clustered network will need to be able to write to the same database in a timely manner.

New Features and Improvements:

SS-4722 - Add ability to enable/disable notifications sent by the softswitch on a system wide or per environment basis

We have added the ability to enable or disable notifications that are sent by the softswitch on a per environment or system wide basis. These notifications cover cases like Loss Prevention, Swap Utilisation, Replication, and Failover notices. Some of those could be configured on a per-environment basis.

SS-2562, SS-3856, SS-3858, SS-3920 - SNMP Improvements

We have added a few new options when it comes to tracking key switch metrics via SNMP. You will now be able to track Active Registrations, ASR/ACD, RTP Health and Calls per Second data all over SNMP. This can help switch operators get some improved metrics into the system health of their switch with their own reporting tools. For more information please see our support article here: https://support.sippysoft.com/a/solutions/articles/81166

SS-4003 - MegaCLI RAID monitoring utility included in builds

A new package to help manage RAID controllers was added to our builds that will work with a wider range of RAID controllers currently available.

SS-4352, SS-4353, SS-4354 - Improvements to the Transaction Details Page

We have made some improvements on the Transaction Records that are presented to the user and added a print button. We have also addressed an issue that shows a series of commas if the billing address information is not filled in.

SS-1242 - Add an icon for tariffs that do not have loss protection enabled.

An exclamation mark in the list of tariffs will now indicate those that do not have loss protection enabled making it easier to correct for setup mistakes that may have been overlooked.

SS-4497 - Make Expires parameter configurable when sending registration to a Vendor

An “expires” configuration value can now be passed during registration to a vendor. This mitigates the chance of a vendor replying back with a “423 Interval Too Brief” error. Previously a default value of 180 was used here but can now be configurable in the User Interface.

SS-3576 - Pass LRN RN value in Invite to Vendor/Connection

This new feature allows you to pass the RN number as part of the URI. This can be set in System Parameters and this will not be sent by default.

SS-4613 - LRN Redundancy

Switch operators will now be able to specify multiple LRN servers. A single LRN provider may present problems for a switch operator if LRN caching is not enabled. Having a second resource in the list will help minimise any single point of failure you may have for your LRN lookup.

SS-4531 - New macro ${Receipient_company_name} for balance notification

There is a new email macro available for balance notifications. {receipient_company_name} will show the company name of a customer when sending the balance notification emails.

SS-4496 - Low balance notification to show balance only (without credit limit)

Switch operators will be able to show the real balance in low balance emails to their accounts. A new macro ${real_balance} was added for this purpose.

SS-4498 - Single Outbound Port for Registrations

For the Registrations feature it’s now possible to force sending REGISTER from the main SIP port if a Single Outbound Port is enabled on a connection or from one of B2BUA ports if Single Outbound Port is disabled.

SS-4361 - Create DB tables for Audit Log References

We have added some improved audit log explanations of events. This improvement makes it easier for support agents of all sorts to identify events in the audit log such as bad authentications, when Multi Factor Authentication steps are taken, when billing runs start and end and much more. These descriptions will be shown when you hover over the “action” field describing the event.

SS-3872 - Logging Web password changes in audit logs

Password changes for web access are now recorded in our audit logs. This will include when and who is doing the changes. This is limited only to those who log into the web interface of the softswitch.

SS-3180 - Add Script to monitor whether connections destinations resolve properly

We have some new tools that will check the status for whether a given connection or trunk destination can be resolved to an IP address. This allows Switch operators to check their connections and avoid call processing issues as a result.

SS-4173, SS-4723 - Loss Protection Notification

We have created a daily summary email that contains the count of calls that were blocked due to loss protection. These can be enabled or disabled per environment. New email macros have been added to the loss_protection_notification.txt to show the “date_from” and the “date_to” that will show the start and end of the reporting period.

SS-1720, SS-4687 - Allow “+” in email addresses, allow first capital letter

To better allow for different email addresses we’ve changed some validation to our web interface to allow for the “+” character to be used in the email address fields and allow capital letter at the beginning of email.

SS-4716 - LRN Cache has a smaller time interval

LRN Cache in 2020 limited the cache timeout to 1 day as its smallest increment. A new system_config parameter is added that sets the LRN cache expiration in seconds, Web UI allows setting smaller values for cache expiration up to one hour.

SS-4670 - Removal of Auxiliary SIP Headers

We have added configuration settings to remove two SIP headers that are typically no longer used. “cisco-GUID” and “h323-conf-id” can now be removed from view. Both new installations and systems upgraded to 2021 will disable these parameters by default.

SS-4255 - Multifactor authentication is enabled after the user passes MFA for the first time.

Users will need to pass a Multi Factor Authentication at least once before this is set into place in order to prevent locking themselves out. Users are logged out once they enable Multi Factor Authentication and after successfully passing their first MFA attempt the new security settings will be applied to the user’s account.

SS-4244 - On demand reset MFA configuration for particular web user

Multi Factor Authentication can now be reset on demand by an administrator. This configuration is available in either Web User’s preferences or in Customer’s additional menu.

SS-4909 - Adding BALANCE, INVOICE_START_DATE, INVOICE_END_DATE macros to the Invoice Template editor Dropdown

New macros have been added to the invoice template editor. The {BALANCE} macro shows the balance of an Account at the end of the billed period. {INVOICE_START_DATE} Shows the start date of invoice period and {INVOICE_END_DATE} shows the end date of the invoice period.

SS-4884 - TestDialPlan to display error if Account is Expired

The Test Dial Plan will now show an appropriate error if an Account is Expired.

SS-4204 - PDD Quality Monitoring Tool

We have added additional tools to monitor the quality of a connection by tracking Post Dial Delay on the connection. The XMLAPI has been adjusted to support PDD quality

SS-4621 - SIP Log indexer will factor in CPU load or delays

The siplog indexer will now suspend itself if the CPU load exceeds a set threshold. This will help system performance in High CPU utilisation scenarios.

SS-4559 - “Login As” quick action button

The “login as” button is available in the action column instead of the drop down menu improving workflow for a switch operator to login as a given Customer or Account.

SS-4564 - Specific timeouts for follow me records using Service Codes

Switch operators can now specify the default value of “timeout, sec” for the follow me record once it’s created through the Service Code.

SS-4427 - Make Media timeout configurable via web UI

You can now set media timeout in the web interface the System Parameters -> Billing, SMTP Server section.

SS-3029 - include node-id into system alerts

This improvement includes some additional details into system alerts giving our support team some additional details from your system to better respond to your support requests.

SS-2560 - Add call authentication information to the Account CDR

Additional details around call authentication will now be included in Account CDRs. Depending on the context of the call this may include things like i_authentication, i_did_authorization, i_did, whether digest authentication was done, if an external translation is used, and i_post_auth_rule.

SS-1064 - Purge dated content of callshop_sessions table

We have added some changes to keep up to two records per Account in this database table. The change will help performance issues experienced while trying to access the page on our web interface.

SS-1662 - Record LRN Server’s result code in CDRs

We have now included LRN server result codes into the CDRs. This will help troubleshoot problems with successful or unsuccessful LRN lookups and some diagnostic information about what data is passed to the LRN.

SS-4655 - Message about auth. rules ambiguity in test dialplan

Test DialPlan XMLAPI and Web UI was adjusted to help in troubleshooting authentication ambiguity particularly related to Account’s Authentication Rules. An error is now returned, which matches the real call flow.

SS-4973 - Restore(re-rate) CDRs for a 2nd leg in Onnet calls

Refactoring was done around restoration of lost CDRs procedure, that is needed in some extreme cases like power outage of the server or so. Sippy is now able to perform restoration of the CDRs that were written in Onnet scenarios.

SS-4956 - Call Loop Detection in PAI - 2021 versions and later

Sippy takes into account the token from the received P-Asserted-ID/Remote-Party-Id header when detecting the call loop. The change was partially backported into our 2020 version, where behaviour is governed by system_config.

SS-4895, SS-4898 - End of Support and Update reminder notifications for the Softswitch

Two new notifications were added: reminder to contact support for arrangement of regular updates to the latest production version at a set interval and a notification about reaching End Of Support for the particular version.

SS-4453 - Difference between invoice amount and total CDRs cost

Rerate CDRs Web Tool (recalculate rates) now creates a payment as a result of successful recalculation for Account/Customer/Vendor, so that it’s possible to match the invoice amount and total CDRs cost in future invoices.

SS-4974 - Media IP is not showing in Active Calls

In some rare scenarios with INFO requests the Media IP could disappear from the Active Calls page for the running sessions. The fix addressed this issue. The change was backported up to the 2020 version.

SS-4994 - OpenSIPS out of memory issue

RAM allocation for OpenSIPs was not rechecked for quite a while. With this change the issue with running out of memory was addressed, the amount of RAM was bumped two times from previous values.

SS-4999 - Selling DID charging group is not applied on late DID

Fix for charges from Selling Charging Group for scenarios with Late DID was applied.

SS-4899 - Caching of STIR/SHAKEN Identity for all stir shaken connectors

Since STIR/SHAKENlookups might be a subject of extra surcharges, it was considered reasonable not to perform extra lookups for the same pair of CLI/CLD within one call for hunting different vendors. In some scenarios this could reduce the number of lookups to external STIR/SHAKEN Authentication server up to 70%.

SS-4469 - DNS Caching module from OpenSIPs

We have enabled a feature in OpenSIPS that allows DNS caching within OpenSIPS. Without this module enabled requests to your DNS server can happen quite frequently making the call processing time much higher than expected. With this new feature in place a DNS query is made once for a single destination hostname and is cached for a period of 5 minutes.

API changes

SS-4477, SS-4478, SS-4479 - getAccountCDRs(), exportVendorsCDRs_mera() and getCustomerCDRs() to use i_call as a string

Changing the data type here allows processing of data with bigger i_call values.

SS-4831 - Adjust XMLAPIto support PDD Quality Monitoring on Connection

A set of optional parameters are now included as part of connections management XMLAPI methods. qmon_pdd_enabled and qmon_pdd_threshold parameters can be used to set quality monitoring parameters for your vendor connections. For more information please see our support article here: https://support.sippysoft.com/a/solutions/articles/107435

SS-4405 - getCustomerCDRs() XMLAPI method to return reference for a particular CDR

To help match calls from accounts and customers we have added to the list of parameters XMLAPI method get CustomerCDRs returns two new attributes: call_id and i_call. This was also added to our Sippy 2020 release.

SS-4350 - parent_i_call returned in getAccountCDRs()

To add some clarity between two similar calling scenarios we have included parent_i_call in the getAccountCDRs(). Call from a DID provider to a DID number assigned to Account A generates only one Onnet_in CDR. Call from Account B to a DID number assigned to Account A will generate one Onnet_out and one Onnet_in CDR. Parent_i_call will return null in that first example but the second example will contain the parent_i_call value in the second CDR.

SS-4770 testDialplan XMLAPI to support new authentication for privacy methods

testDialplan() xmlapi can receive two new parameters pai_hdr - the username portion from SIP URI from P-Asserted-Identity and rpid_hdr - the username portion from SIP URI from Remote-Party-ID.

SS-4972 createVendorConnection XMLAPI process single_outbound_port incorrectly

The behaviour of createVendorConnection() was adjusted to process single_outbound_port parameter properly, in some scenarios it could be set to true, even if no outbound_ip was passed.

SS-4933 - add XMLAPI to manage the new tls/tcp transport port

A set of methods to supply CRUD for IP/Port/Proto Transport allocation were added.

SS-4109, SS-3935 - Per-environment failover for multi tenant systems

With a set of improvements to DB schema, replication scripts and configs it was made possible to setup per-environment replication and failover with ability to move services and active database to standby node for a particular environment only, leaving other environments still on the main node.

Stability Improvements:

SS-4772 - B2BUA does not resend re-invite from the vendor.

When a Vendor establishes a session where there is a delay in PRACK from the caller Sippy was not forwarding a re-invite. This issue has been corrected and backported to Sippy 2020. Thanks Ferry from VoIPed telecom for all your help in troubleshooting our PRACK feature.

SS-4585 - Malformed Remote Party ID fails to write a CDR for the call.

Our Friends at ServNet pointed out an issue in scenarios with malformed Remote-Party-ID header that would prevent a CDR to be written for the call. Balances were not affected and the affected call would be written to the transact_queue.dat.bad instead of the Database. This causes the transact_queue.dat.bad to grow. This fix has been backported to Sippy Softswitch 5.2 and higher.

SS-4450 - Billing issue for post-paid and suspended state

Bob from Callmart Telecommunications helped us identify an issue that prevented funds being successfully applied to an Account. If a Post-Paid Account was suspended when funds are added the Account is unsuspended but the funds added are not reflected. We have corrected this issue and the balance on the Account is now accurate. This fix has been applied for 5.2 systems and up.

SS-4411 - B2BUA ignores SIP Ports configured for environment

This issue was a fairly old issue. When sippy was reconfigured to use a non-standard SIP Port (anything other than port 5060) the B2BUA was not reading the new port number from the database and some requests were still sent via 5060.

SS-4985 - B2BUA listens to ports on unassigned IP

A security issue has been corrected that allows the B2BUA to listen to traffic on previously assigned IP addresses on the environments table. This could cause additional load for the B2BUA and has been patched in our 2021 release. Thanks to our friends at Sintel for raising this issue.

SS-4773 - Pass P-Asserted-ID on Account conflicts with Use CLI as P-Asserted-ID on Connection

An issue was identified in our 2020 release where enabling “Pass P-Asserted-ID” on an account prevented using P-Asserted-ID as CLI. We have corrected this both in the release and in our 2020 version.

SS-4759 - Buying charging group issue

We have corrected an issue where cdrs_connections_DIDs were not created in the database preventing vendor balances from being changed. This issue was fixed in Sippy 2020 with our thanks to TelecomIn LLC for reporting this issue.

SS-4538 - DNS Cache module in OpenSIPs does not use /etc/hosts

An issue was identified with OpenSIPs that caused some problems with DNS resolution. We have filed a pull request with OpenSIPs with a correction to improve DNS resolution processes and this patch has been added to all our supported production versions. Thank you Amtelfone for helping us identify this issue!

SS-1115 - Do not drop the replication on slave in case the master is unavailable and there is no failover

With the new behaviour standby system would keep the replication schema and do not drop the replication for itself, so that once master server is up and running, replication would proceed syncing to slave. This change affects only simple replication with no failover.

SS-4183, SS-3770 - A set of improvements for late offer model support

System behaviour was fixed on processing ACK from vendor and on re-INVITE handling.

SS-5015 - Find adequate hair conditioner for Pavel’s out of Control Mullet

In the pandemic times Pavel’s hair has grown out of control. This is likely caused by the backlog of tickets that require testing from our beloved Quality Assurance Leader. We have found him a special bottle of hair conditioner that his wife loves the smell of and his productivity has increased dramatically as a result.

Pre-Upgrade Checks:

Before you upgrade your system we will be ensuring your switch meets the pre-upgrade requirements.

  • Checks for OpenSIPS version 2.4
  • Checks for PostgreSQL 10
  • Checks for FreeBSD 11.3/12.2

Deprecated Functionality

SS-3988, SS-4905 - Deprecating SER and OpenSIPs 2.2

As part of Sippy 2020 we made users switch their signalling package over to OpenSIPS 2.2, 5.2 was the last version where it was still possible to use SER. In Sippy 2020 two OpenSIPS versions are allowed: 2.2 and 2.4. With this change we can now officially mark SER and OpenSIPS 2.2 deprecated in our release, with both OpenSIPS 2.4 and 3.1 supported as of Sippy 2021 release.

SS-4695 - Remove PostgreSQL 9.6 support from builds in master and releng_13

In favour of PostgreSQL 10 the older 9.6 version was marked off as deprecated for Sippy 2021.

SS-4702 - Remove paypal rest api v1

With the added payment gateway methods we have also removed the PayPal rest api v1. This will improve compliance with the latest security features offered by PayPal.

SS-2900 - Bank Asya payment processor is now deprecated.

We have deprecated Turkish Bank Asya from our list of payment processors. This bank has been closed for some time and will be deprecated in the release.