Sippy SoftSwitch v5.1 Release Notes

Posted on


What to expect in Sippy Softswitch 5.1

The release of Sippy Softswitch will improve the experience of our Customers and Partners. Over the last few months we have collected a number of suggestions by our Customers to improve accessibility, functionality, configurations, and performance. We have worked hard over the past few months to bring to these ideas to fruition in our product. We have also addressed a number of concerns with the initial release of 5.0 and made a number of stability improvements. Keep sending us your thoughts on ways we can improve and we will be sure to keep working on them in future releases.


In Sippy Softswitch 5.1 you can expect to see a number of improvements. We have made great changes in how we handle rates as well as uploading files into our system. We have made some improvements in how Redirected (3xx) routing works as well as several changes for our Invoicing System. We have integrated new security tools for SSL Certificates and new financial integrations for currency exchanges. French is now also supported in our Web Interface. We have also included a number of stability improvements from our 5.0 release.

We would like to thank you for your continued business and support as we roll out this release.


Major Changes:

[SS-1333] - Rates upload processing in background.

A big improvement we have made in 5.1 is how we process our rates. In prior versions users would upload their rates and have to wait until the processing of those rates would be complete before moving on. The large amount of data needing to be processed took quite a bit of time. We have now streamlined the process to allow the processing of the rates to occur in the background. This new feature will really help out customers who rely on the web-ui to update their rates. For those who have built applications to help out the next feature described will be for you.


[SS-2609] - XML-RPC API method for uploading binary data. (updated June 29th, 2018)

In 5.1 we have created an XML-RPC API method for users to upload files to the softswitch to use for data files such as .csv and .xsl files. When using this API method you will make a request for a temporary URL and returns a token that will be used to track this transactions as well as the URL to upload the file to. This change will help facilitate development efforts to have XML-RPC API methods for any type of file that is currently handled through only the web interface. For right now this works for handling of our routes but we do plan on adding additional file handling for other types of files in the near future. For more information on this feature please review the technical documentation on our support portal here.


UPDATED: June 29th, 2018 - As promised we have added file handling for rates to supplement this great feature. Now you will be able to pass an excel or csv file to the soft switch and process your rates and routes through this XML-RPC API method.


[SS-2561] - Improvements to DID invoicing.

We have improved our invoicing system to take into account a number of new variables that were not previously available. New macros include Payment_time, Date, amount, currency, and names of the charges. The new invoicing system gives us more flexibility to create invoices on a weekly basis and handle setup fees. This change required a number of changes for billing and how invoicing was handled on our end. These changes will make it a bit easier for our development team to work on invoicing in the future.


[SS-2520] - SSL Certificates can now be generated from the softswitch… for free!

We now offer our customers the ability to generate SSL certificates for use on their own switch. We have integrated letsencrpt.org to fetch SSL certificates based on your domain names. Customers now have the option of uploading their own certificate or generate a SSL certificate via this new service. The certificates will automatically be generated and renewed once the relevant data is entered. This service will require access to letsencrypt.org over port 80 and the softswitch is setup to automatically open and close this port at the time of certificate generation and renewal if it is blocked. For more information on this feature please review our implementation details published here.


[SS-2804] - Alpha Vantage Currency Conversion. Yahoo Finance Service Error. (updated April 16, 2018)

Currency conversion became problematic for many of our customers on November 1st 2017 when Yahoo Finance unexpectedly ended support of a stable API call used to fetch updated currency rates. The end of support for this API call meant we needed to find and use new sources for currency conversion. We have now implemented Alpha Vantage as as a currency exchange rate service. Alphavantage will work much like Yahoo finance or google finance and will update the values of currency every 15 minutes. This fix is now standard as part of our 5.1 installations and also available to customers with active support agreements running Sippy Softswitch 4.4 and later.


UPDATED: April 16th, 2018 - The initial fix for this issue also added in the Google Finance service. Since it’s implementation Google Finance API is also no longer available. Thankfully we added alpha vantage as an alternative. Customers are encouraged to switch the currency exchange to make use of Alpha Vanatage for their currency exchange instead of Google Finance or Yahoo Finance. Users will be presented an error stating that there is a communication issue with Google Finance. Customers can change the source to use Alpha Vantage instead to clear up the problem. We are looking to add another service for redundancy in the future.


[SS-2461] - 300 Multiple Choice Routing.

We now support 300 Multiple Choice routing options in our soft switch. 300 Multiple choices contain contact header fields to indicate that the location service has returned multiple possible locations for the SIP URI in the Request-URI. To enable this feature we have renamed the configuration setting from Accept 302 Redirects to Accept 3xx Redirects.


[SS-2485] - Additional language Support for French

Bonjour! We have now translated our softswitch web interface into French. In addition to French our Web interface is also available in English, Arabic, Chinese, Portuguese, Russian, Spanish and Turkish. French IVR prompts for voicemail have long been available. Let us know if you see any problems with the translations and we can make corrections to this with ease s’il vous plait. Merci becoup!


[SS-2639] - FreeBSD 11.1 to be installed by Default.

Sippy Softswitch in 5.1 will be installed with FreeBSD 11.1 as default. We will still continue to support 5.X systems running on FreeBSD 10.3 and 11.0.


[SS-2497] - SSH Key Provisioning System

We have improved our support processes by implementing a new secure method of connecting to your device. SSH keys are generated and the private Key, public key, and randomly generated passphrase are all stored in separate geographically separated databases. A separate API will be used to fetch the relevant data needed to connect to a device and it will allow our support engineers to address your support concerns.


[SS-2719] - DB Bouncer Facelift

One of the less known and still very important components of the Softswitch is PostgreSQL database selector “db_bouncer”. This service allows us switching all other services that are accessing the database from master to a hot stand-by and back in a synchronized manner. It also acts as a gatekeeper helping prevent environments from accessing each other databases enhancing overall security of the solution. Its performance is critical for database-intensive tasks such as periodic CDR archivals, database backups or accessing bulk call records data. We have re-engineered db_bouncer to improve its maximum throughput by a factor of up to 10. Significant improvement of the time to completion of the above mentioned and other tasks has been observed as well as slight improvement in the load time of pages on the web interface.


New Features and Improvements:

[SS-2686] - Optimize the DID Load Procedure

We have worked to improve CPU usage when the system have thousands of DIDs. In 5.0 and earlier versions we would load the DIDs every minute that caused the CPU usage to spike every time the DIDs were loaded. We have optimized the DID loading process to stabilize CPU usage.


[SS-2405] - Display DNC lookup on Test Dial Plan.

The test dial plan now check if the CLD hits the Do Not Call List or not without placing a call. Switch operators should find this much easier to maintain their DNCL as a result.


[SS-2625] - Include $notepad, $customer_name, and $server_name into CDR re-rate completion email

We have created new macros that can be used for our email templates for re-rate emails. The re-rate emails can now include target, server_name, and notepad macros.


[SS-2258] - Web to reflect the destination set state according to refactored replication

Switch operators will now be able to determine the health of their importable destination sets. This is indicated by a balloons next to the destination set. Red indicates that the destination set has been permanently banned. Yellow indicates a temporary ban on the destination set. Green indicates the destination set is valid. You can mouse over these balloons for the date and time of when the bans may have went into effect.


[SS-2780] - Disable LRN dipping for On-Net calls

We no longer perform LRN Dipping for on net calls when the call is Account-Account, DID-Account-Trunk, DID of sub-customer-Account-Trunk, and Delegated DID-Account-Trunk calling scenarios.


[SS-2726] - Rename CLD Translation rule to DID translation

We have renamed a feature previously reffered to as CLD rule to DID translation. This renaming make it a bit clearer as to its core functions. This is reflected both in our XMLRPC- API methods as well as our WebUI. We have updated our documentation that can be found here: https://support.sippysoft.com/solution/articles/107502-xml-rpc-api-dids-management.


[SS-2572] - Reduce update interval on all call-related and CPU graphs to 1 second.

Any Call related graphs and CPU graphs now update at 1 second intervals instead of 5. In prior versions only RTP related graphs were updated at 1 second intervals.


[SS-2319] - Web to support onnet timeouts change on Routing Groups

Users are now able to set on-net timeouts through the website. users can now adjust 100, 1xx, and 2xx timeouts accordingly through the web interface and xml api.


[SS-2700] - onnet timeout should default to 60 seconds

Onnet Timeouts default to 60 seconds instead of 15 seconds. Our customers have let us know that a 15 second timeout period was too short. This setting is now accessible in the web interface of the Softswitch. We have adjusted 2xx timeouts to also default to 60 seconds to match.


[SS-2779] - LRN cache state changed to false after update to 5.0

In 5.0 we added a configuration option to control LRN cache. With this change we changed the default behaviour of this feature. The prior setting in 4.5 will now be respected after the upgrade to 5.0 or 5.1.


[SS-2646] - Switch operators can now enable and disable notifications for replication failures for destination sets.

Switch operators can now enable notifications for the switch operators in there is a problem with the replication of importable destination sets.


[SS-2757] - Do not hold the transaction queue lock during balanced startup.

In 5.0 the Balance-D would lock on the transaction cache if the server crashed. The balance=d would lock the cache until it was fully scanned preventing other subsystems like b2bua from starting or operating. The balance-d now scans the cache in the background and responds on balances found in the transaction cache.


[SS-2619] - Track Traffic on loopback network.

We noted that there were some performance issues on fairly robust systems that impacted the number of RTP sessions that could be handled. Loopback traffic is now displayed on both throughput and bandwidth graphs.


[SS-2566] - clear RTPProxy sessions immediately after b2bua no longer needs it.

B2BUA would not clear RTP sessions immediately after disconnecting. The RTP proxy would allow the session to remain until it timed out or when the call state was cleared by the B2BUA itself. This resulted in the number of sessions persisting longer than it should nad skewing statistics while also driving up load.


[SS-2883] - Upgrade paypal PHP SDK to 1.13.0

We have updated the SDK used for paypal payments. The old version was on 1.18.0 and the current version included in our software is 1.13.


UPDATED: July 19th, 2018

[SS-2964] - Callback leg should never try to record the voicemail.

When IVR is configured to work via callback the callback leg may be routed to a local account and the account maybe inaccessible (ex busy or unregistered). If the account has voiceemail turned on the voicemail will be a recording of the prompts of the IVR application. We have corrected this by having the b2bua detect the callback call leg and disable the voicemail on it if the voicemail is turned on.

UPDATED: July 19th, 2018


[SS-2965] - Limit the size of the voicemail box

We have added an IVR configuration setting to limit the maximum number of voicemails in a box. We allow for two behaviours when this is in effect. Switch operators can choose between rejecting new voicemails or purge old ones and record new voicemails. These settings are accessible in the system config ton a per environment basis.


API changes

[SS-2584] - Add an ability to specify the time of a payment.

You can now pass the payment time as a parameter as in a XML-API call. Additional details about this can be found across these Articles Refund a Vendor, Refund a Customer, and Refunding an account.


[SS-2660] - Rename cld_translation_rule to translation_rule

We have decided to rename this to be clearer since it more applicable to DID translations. Please note that this also affects API calls that used cld_translation_rule as a parameter. For more information you can find the updated documentation listed here


[SS-2314] - XML-API to support onnet timeouts change on Routing Groups

An XML-API method now exist to be able to set 100, 1XX, and 2XX on-net timeout changes in routing groups. The changes including their new default values can be found here.


Stability Improvements:

[SS-1396] - No BYE request sent to caller in case of no response to the re-INVITE

We have corrected an issue with bye requests not being sent out to the calling party when there was no response from the re-invite. In version 4.5 BYE requests were only being sent to the vendor but not for the calling party. This issue can be patched on our 4.5 versions and is included in the latest 5.0 and 5.1 releases of our software.


[SS-259] - Need to collect DB size RRD graphs

The monitoring graphs now show the size of the databases for active environments and the balances db. Any stopped environments are not included in the calculation of disk space but they do count. We may return to this and factor in stopped environments later in the future. This will help switch operators monitor disk space usage.


[SS-2726] - bzip2 format issue for Dump format SQL Dump (TAR).

Loic Lafhej of Yooth-IT has identified a problem with how we handle our database backups. In scenarios where you have a Dump Format SQL Dump (TAR) and when compression is set to Bzip there can result in DB backup service failures. Users who experienced this problem used configuration settings that specified Dump Format = “SQL Dump (TAR)” and the compression was set to “bzip2”. We have merged this change into the most recent 4.5 releases all the way to 5.1. Users can also change the Dump format to “SQL Dump (text), or compression to “gzip” as a workaround.


[SS-2694] - Max Calls Per Second and Max Sessions Customer Configuration not saving.

We have fixed an issue relating to saving variables for Max Calls per Second and Max sessions on the customer level. The values can be set but not saved. This issue has been fixed and will be available for all 5.X release. Thanks again for the suggestion Yooth-IT!


[SS-2663] - Search filter not working.

Some customer have pointed out our balance related filters on our reports are not working as a result of the balances daemon implemented in 5.0. You were right - and these have been patched both as part of our 5.0 release and 5.1. Shout outs to Ben Sebagh (SipLab SARL) and Rajkumar Singh (Magik Telecom) for pointing this out to us. We value your feedback.


[SS-2764] - Callshop: Cost column displaying issue

Sahra Teknik is to thank for this web interface issue. Invoices were generated correctly here but were showing incorrect on the web. This has been fixed both in 5.0 and 5.1.


[SS-2764] - Top-up one account with balance of another via compat_vouchers does not work since 5.0

We have fixed a problem introduced in 5.0 that would affect topping up accounts when using compat_vouchers.


[SS-2650] - Restrict b2bua_ports for incoming traffic case SIP firewall rule is set to deny.

When SIP firewall rule is set to deny the softswitch would block traffic on the SIP port 5060 but port 5061 was left accessible. We have expanded this rule to now include the b2bua port 5061 as well. Thank you Trevor Steyn (IMobility) for this great suggestion.


[SS-2612] - Forward DID in URI is not working for the Late DID recognition and Registered account Incoming Routing setting.

Claude Hayn pointed out to us that in the upgrade from 4.5 to 5.0 we were not completing onnet calls properly. This related to how we were handling the forward DID in URI option. This has been patched in our current 5.0 as well as 5.1.

[SS-2799] - Allow to block/unblock accounts via bulk upload.

We fixed an issue introduced into 5.0 where Block and unblocked accounts were not set properly through the bulk upload. This was a result of a missing API call on our end. Once again - this was patched in our 5.0 and 5.1 versions of our software.


[SS-2605] - Diversion header is not initialized properly

Thanks to John Mathew (Divox International) we have identified a certain case scenario where the Diversion header is not parsed properly. This may cause outbound calls to fail. We have fixed this in our 5.0 versions and will be addressed in subsequent versions.


[SS-2760] - Bug while Adding Balance with a long text note

There’s a fringe case where if you are attempting to add funds to an account along with a long note thats longer than 256 characters the transaction would present an error complaining about the character limit of the note but still add the balance. This might lead the user to believe the funds weren’t added in the first place and repeating these steps. When the error message is now presented to the user (the note has more than 256 characters) the balance will not be added.


[SS-1395] - 200 OK’ and ‘BYE’ race condition issue

There is a possible race condition when a “200 OK” is sent by Vendor 1 followed by a “BYE” request within 0.005 Seconds. When this race condition is met it was possible that the B2BUA did not successfully process the initial “200 OK” and the call would be passed to the Vendor 2 as a result. We have removed this race condition as part of our 5.1 release.


[SS-2578] - High CPT spike due local hostname lookup via DNS

We have correct Call Processing Time spikes visible in our monitoring graphs. B2BUA was sending a DNS Lookup before sending the SIP Message if the local hostname was not in /etc/hosts. When the request to the DNS Server was slow or unresponsive it created the delay in the SIP message processing. The issue is no longer reproducible in our or latest 5.0 or 5.1 releases.


[SS-2587] - Record-Route is not added into ACK following re-INVITE

We have fixed an issue where the softswitch could send ACK to the wrong URI instead of following the Record-Route provided in the invite. This resulted in calls getting dropped from the remote party end because of the missing ACK. This has been fixed for both our latest 5.0 and 5.1 Releases.


[SS-2604] - Status is not updated for external media relay

We have fixed an issue where updating the online status showed some irregularities when the Database did not accurately reflect the b2bua ports for a given environment.


[SS-2637] - md0.uzip size has to be increased on FreeBSD 11

We have increased the amount of disk space available for /dev/md0.uzip for 5.0 and 5.1 if you have FreeBSD 11 installed. Previously this was slightly undersized. Customers using earlier versions of FreeBSD will be unaffected by this change.

[SS-2690] - Stuck sessions in strackerd/B2BUA after reload of environment

We have fixed an issue that caused several hung calls in the strackerd that resulted in customers showing insufficient balance. This was caused by some incorrect b2bua behaviour when the environment is stopped.


[SS-2697] - DID authentication issue

We have fixed an issue that affected DID authentication caused by a conflicting processes of the loading of IP addresses and the domain names getting resolved.


[SS-2759] - SER is crashing doing DNS lookup

This issue looks to have been caused by a missing variable in the process of dns resolution. We’ve fixed this across 4.5 and newer.


[SS-2644] - Top Up with vouchers fails.

A combination of configuration settings where Payment Gateway=Vouchers and Card Type =Top-up voucher would create an error. This has now been corrected.


[SS-2866] - updateAccount should not process base_currency parameter.

The updateAccount xmlapi allows alteration of base_currency attribute of an account. This attribute is set to the account upon creation and is inherited from the currency assigned as part of the service plan. The base currency wasn’t intended to be able to be changed.


[SS-2812] - Media timeout disconnect is not working when SMG (or external RTP Proxy) is in use

When SMG is enabled the media timeout notification is not requested when setting up RTP session. As a result the call won’t be disconnected when media disappears for calls that are placed through the SMG.


[SS-2832] - SMG is not picked up in case of Trunk use.

Media Relay from the routing group is not honored if both accounts and connections have Use media Relay = Always.


[SS-2786] - Fix Geka’s Squeaky Chair

Geka is our beloved web developer. Our daily developer scrums are impacted every time he squirms when looking at his task list. He has a long task list of things to improve and he refused to get out of his chair long enough for us to fix his squeaky chair. Now that all his issues are poised for release we finally got around to fixing this chair and our testing team can finally work in some peace and quiet.


End of Support for Sippy Softswitch v4.4

Sad news Fam. With the introduction of Sippy 5.1 we will be bidding Sippy Softswitch 4.4 a bonne nuit when it comes to Support. You can still continue to operate your 4.4 softswitch as you do today but you will be met with requests to upgrade your switch to 4.5 or later when you file any further support tickets. Customers with active support agreements can request to schedule upgrades to any supported version currently offered (4.5, 5.0, or 5.1). We will no longer be merging security fixes, or feature requests into 4.4 going forward.


Some cool forward facing projects we are looking at in future versions:

  • SS-2869 - Gavin needs a Mirror in the bathroom.

Gavin our beloved Director of Sales needs a mirror in the bathroom of our Vancouver Office. This has been a bit of an impedement to our sales strategy. We’d like to make sure Gavin is ready at any point to handle your sales inquiries and if getting this man a bathroom mirror will help improve sales then thats just what we are going to doing. We might have to take some heavy handed approaches to solving this problem. We are software developers and not construction contractors after all.


  • SS-2606 - Create a VOIP test Suite to pass through to a diagnostic environment (AKA - Pavel 2.0)

Pavel is our Quality Assurance lead. He spent many hours testing and working hard to make sure this release worked great for all our customers. But he’s over worked and has to spend his days working along side Geka’s Squeeky chair. We decided to try and make his working days a bit easier by automating a number of repetative test call scenarios that are continuously run against our development code Branches. There is also alot of great opportunities to optimze both Pavel 1.0 and Pavel 2.0 to help out in the future.


  • SS-1726 - CDRs separated to their own database.

We’re looking into ways to make our system a bit more modular. Much like how the Balance daemon took the strain of looking up financials moving the CDR records to their own database will be a good step towards minimizing downtime for our customers and make our solution a bit more scalable. There’s much work to be done in this regard but Andriy and Max assuredly have a solid plan in place to work on moving this forward.


  • SS-1114 - Revised Side Menu on our web interface

We want to start looking at ways to improve our Side Menu on our Web Interface. In our 5.2 Version we’ll make your life a bit easier by reorganizing elements that are relevant for each type of user together.

Do you have any questions or comments about the features you see here? Would you like to submit a future feature request? I suggest a visit our support forums where you can make a post about your idea, or submit a Ticket and we will take a look and see if we can fit some of these items into our road map.