We are excited to announce the general availability of the Sipwise C5CE and C5PRO mr10.4.1 release.

What is the Sipwise C5 platform?

Sipwise C5 PRO Architecture Overview

The Sipwise C5 platform is a highly versatile open source based VoIP soft-switch for ISPs and ITSPs to serve large numbers of SIP subscribers. It leverages existing building blocks like Kamailio, Sems and Asterisk to create a feature-rich and high-performance system by glueing them together in a best-practice approach and implementing missing pieces on top of it. Sipwise engineers have been working with Asterisk and Kamailio (and its predecessors SER and OpenSER) since 2004, and have roles on the management board of Kamailio and are contributing to these projects both in terms of patches and also financially by sponsoring development tasks. The Sipwise C5 platform is available as a Community Edition (CE), which is fully free and open source, and as a commercial PRO appliance shipped turn-key in a high availability setup. The Sipwise C5 provides secure and feature-rich voice and video communication to end customers (voice, video, instant messaging, presence, buddy lists, file transfer, screen sharing, remote desktop control) and connect them to other SIP-, Mobile- or traditional PSTN-networks. It can therefore act as open Skype replacement system, traditional PSTN replacement, Over-The-Top (OTT) platform and also as a Session Border Controller in front of existing VoIP services in order to enable signaling encryption, IPv6 support, fraud- and Denial-of-Service prevention. Another use-case is to act as a Class4 SIP concentrator to bundle multiple SIP peerings for other VoIP services.

What’s new in mr10.4.1?

The most important changes for mr10.4 compared to mr10.3 are:

  • Russian language/prompts have been removed from NGCP. Sipwise against Russian aggression in Ukraine: https://war.ukraine.ua/ [TT#166550]

  • Run the media/RTP proxy service (rtpengine) as unprivileged non-root user by default. A new option was introduced to ‘config.yml’ (‘rtpproxy.run_as_root’) to run the service as fully privileged root user anyway, which can be necessary for certain features (e.g. directly managing firewall rules through an iptables chain). If any such features are enabled then the setting ‘rtpproxy.run_as_root’ must be set to ‘yes’. If call recording with a non-standard output directory is in use, then care must be taken about the permissions as well. [TT#157800]

  • Internal NGCP communications between rtpengine instances now uses by default rtpc-mux. Audio streams now have a data protocol RTP and control protocol RTCP multiplexed, this allows to save some ports especially in case of call forking scenarios. [TT#158652]

  • Reworked ngcp-io-scheduler behavior:

    • support for multiple disks was added, e.g. for usage in Software RAID setups

    • new I/O scheduler default (uses none by default, for rotational/spinning disks deadline scheduler is used, in virtualized environments the default scheduler doesn’t get modified)

    • ngcp-io-scheduler behavior can be customized via /etc/default/io-scheduler [TT#160100]

  • Sip header P-Early-Media implemented according to rfc5009. More info at P-Early-Media. [TT#140851]

  • In case of the call redirection with the 302 response code and with the preference ‘redirected_forward’ enabled, before relaying the call, the final destination is being checked against ‘NCOS’ and ‘CF NCOS’, in the same way it happens in case of the internal call forwards. [TT#168201]

  • [PRO/Carrier] The config.yml option ‘kamailio.proxy.pbx.skip_busy_hg_members’ has been replaced by the ‘busy_hg_member_mode’ preference available at domain or subscriber level. This improvement offers more flexibility in the configuration allowing to change the behavior on domain or subscriber basis instead of system wide. The upgrade procedure automatically migrates the ‘config.yml’ setting to all the domain preferences. [TT#157500]

  • [Carrier] Implementation for NGCP instances support to provide active-active mode for Kamailio-Proxy [TT#139455]

  • [Carrier] Implementation for NGCP instances support to provide active-active mode for Sems-B2B [TT#157251]

  • [Carrier] Implementation for NGCP instances support to provide active-active mode for Asterisk [TT#158004]

  • [Carrier] Initial implementation for NGCP instances connections to define preferred connections between instances [TT#139459]

  • Set ‘kamailio.proxy.usrloc_dbmode’ preference in config.yml to 3. This is necessary to unify the behavior of CE/PRO systems, previously set to value 1 (Write-Through scheme), with the Carrier, previously already set to 3 (DB-Only scheme). [TT#139455]

  • Call forwards destinations to emergency numbers are now checked against ‘NCOS’ and ‘NCOS CF’ rules after the CF loop. This is done in order to have the possibility to forbid call forwards to emergency numbers via ‘NCOS CF’ patters [TT#168200].

    Some important technical points for those interested:
  • [CE/PRO] As mentioned in the important changes, the kamailio usrloc db_mode parameter has been switched from 1 to 3 for Pro and CE systems. This parameter controls how and where the usrloc (subscriber locations) are stored: kamailio cache or database. Here the link to the official kamailio documentation: https://www.kamailio.org/docs/modules/stable/modules/usrloc.html#usrloc.p.db_mode.
    Starting from now the locations are only stored in the database and not kept in the internal kamailio cache. Administrators can switch back the config.yml parameter to the previous value, but this could prevent the possibility of using future new features. [TT#139455]

  • Added Grandstream User/Password options into ngcp-insert-pbx-devices script [TT#160200]

    Deprecation notice:
  • The config.yml option ‘kamailio.proxy.pbx.skip_busy_hg_members’ is now deprecated and replaced by the ‘busy_hg_member_mode’ preference available at domain or subscriber level. [TT#157500]

See the list of all changes in PDF Changelog_mr10.4.1

What is mr10.4.1?

The build mr10.4.1 is the first build for release mr10.4, mr10.4.1 provides new features and bugfixes.

Is mr10.4 LTS (long time supported) release?

 

No. See the release calendar on https://www.sipwise.com/releases/.

How do I test-drive the new version?

As usual, we’re providing a VMWare Image, a Virtualbox Image and a Vagrant Box for quick evaluation testing. For those of you using Amazon Cloud we provide the EC2 AMIs in the following regions:

  • AMI ID for region eu-central-1: ami-0648c2974f6ca0369

Check the relevant section in the Sipwise C5 CE Handbook for detailed instructions.

How do I install the new version or upgrade from an older one?

For new users, please follow the Installation Instructions in the Handbook to set up the Sipwise C5 CE mr10.4.1 from scratch. For the users of the previous version of Sipwise C5 CE, please follow the upgrade procedure outlined in the Handbook. If you have customized your configurations using customtt.tt2 files, you must migrate your changes to the new configuration files after the upgrade, otherwise, all your calls will most certainly fail. Hint: modern patchtt.tt2 framework can help you here in the future.

How can I contribute to the project?

Sipwise is publishing software components at github.com/sipwise. Please check it regularly for new projects to appear there, and feel free to fork them and send us pull requests. For development related questions, please subscribe to our Dev Mailing-List.

Acknowledgements

We want to thank our PRO/Carrier customers and the Sipwise C5 CE community for their feedback,bug reports and feature suggestions to make this release happen. We hope you enjoy using our software and keep your input coming. A big thank you also to all the developers of Kamailio, Sems and Prosody, who make it possible for us to provide an innovative and future-proof SIP/XMPP engine as the core of our platform! And last but not least a HUGE thank you to the Sipwise development team, who worked insanely hard to create this release. You are awesome!