We are excited to announce the general availability of the Sipwise C5CE and C5PRO mr10.5.2 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.5.2?

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

  • IMPORTANT: [PRO-Carrier] The ‘ngcp-sems-modules’ package has been deprecated and all the code/libraries provided by that (.so plug-in’s) are from now on provided by the ‘ngcp-sems-pbx’ package. From the NGCP users perspective nothing has really changed, apart that ‘ngcp-sems-modules’ package does not exist anymore. The ‘ngcp-sems-pbx’ package provides .so plug-in’s into the ‘/usr/lib/sems-pbx/plug-in/’ directory of the file system. [TT#174554]

  • Added support for g729, g722 and Opus codec on SEMS. This allows SEMS to play announcements and music-on-hold using these new codecs [TT#169904].

  • Two new options are added to ‘config.yml’: ‘b2b.sbc.codec_list’ and ‘tpcc.codec_list’. The first indicates the list of codecs enabled on SEMS,
    while the second indicates the codecs used on TPCC’s generated calls. For both parameters the available options are ‘PCMA’ , ‘PCMU’, ‘g729’, ‘g722’ and ‘opus’.
    The codecs have to be listed in priority order with no spaces between the elementes, for example “PCMA,PCMU,g729,g722,opus”. [TT#169766].

  • The ‘tags_header’ concept for templating of sems-b2b configurations has been introduced. Now all the templating concerning sems-b2b is being done using it.
    In case of having any customtt files applied above the existing sems-b2b configurations, check them carefully to actualize them.
    And if your customtt files are covering a work on the templating scope of sems-b2b configurations, then rework your existing customtt files so,
    that they are applied above the ‘tags_header’ instead. [TT#168500]

  • For security reasons TLS protocol versions have been restricted to versions 1.2 and 1.3 where applicable. If support for older TLS versions (up to and including 1.1) is needed for certain services, then this support can be explicitly re-enabled through the respective configuration keys in ‘config.yml’ (under ‘nginx.ssl_*’ for HTTP interfaces, under ‘prosody.tls.‘ for XMMP, and under ‘kamailio.lb.tls.‘ for SIP). Not affected by this change is the interface for device auto-provisioning as such a change is likely to cause problems with existing devices. [TT#175102]

  • Removed obsolete RTC Engine, Janus and ComX components. [TT#175000]

  • New config.yml option kamailio.lb.filter_content_type. This option helps to filter from requests, reply or both some specific body content-type.
    This parameter substitutes the already existing kamailio.lb.remove_isup_body_from_replies, extending its functionality to other content types.
    The migration from the previous setting to the new one is automatically done during the upgrade.
    For additional info please see Message Body Filtering. [TT#68165]

  • [PRO-Carrier] The option kamailio.proxy.xfer_other_party_pai has been extended for both attended and unattended call transfers.
    If this option is set to “yes”, then newly generated P-Asserted-Identity SIP Header sent to the “Transfer Target” will contain data relative to the “Transferee” and vice versa.
    This will cause in the phones to update their display with data relative to the parties in conversation. [TT#165301] [TT#165302]

  • Removed Heartbeat v2 support, which was deprecated in mr10.0.
    Systems should switch the High Availability subsystem to Corosync/Pacemaker
    before upgrading. [TT#174750]

  • [PRO-Carrier] Add support for LNP lookup via an external 302 SIP redirect server. NGCP LNP Daemon now supports the possibility to query an external server that
    provides the redirecting number and lnp code in the Contact and X-LNP (it can be customized) headers of a plain 302 SIP reply message External LNP via LNP API. [TT#169903]

  • SIP Loop Detection option is now enabled at default inside config.yml,more info about loop detection here Sip Loop Detection. [TT#181350]

  • New config.yml options kamailio.proxy.presence.notifier_poll_rate and kamailio.proxy.presence.notifier_processes. These options help in tuning kamailio presence module behavior.
    In particular, the first parameter defines the number of times per second that the notifier processes should check for work, the latter controls the number of notifier processes that should be started.
    The default values are ‘3’ and ‘1’ respectively and are valid for system with low resources or systems that doesn’t use ‘presence’ feature too much.
    In systems where the ‘presence’ feature is highly used, the seggestion is to configure them to ’10’ and ‘3’ respectivelly. [TT#183550]

  • [CE] Header Manipulations and Phonebook features are now hidden on CE and not available on the UI and via the API anymore. This is for better consistency as while the features was shown on the UI/API the actual functionalty of these features was not availalbe for the CE users. [TT#182053] [TT#182101]

Some important technical points for those interested:

  • Handling of the transport protocol has been added for SIP peering outbound registrations (ngcp-panel). Now the main transport used in SIP peering configurations, is the one to be used for registering. [TT#167300]

  • [PRO-Carrier] ‘outbound_proxy_set’ and ‘outbound_proxy_set_port’ parameters has been added to the db_reg_agent.conf. Now if the SIP peering has a specific outbound_socket selected and the setup has multi-active LB architecture, outbound registrations will be sent via the correct LB only (the one owning this outbound_socket). [TT#167300]

  • The config.yml ‘sems’ settings are now migrated to the “b2b” section. The config.yml ‘sems’ section is from now on deprecated. The constants.yml ‘sems’ section is renamed to ‘b2b’. [TT#169602]

Deprecation notice:

  • [PRO-Carrier] The ‘libinewrate’ package and all the code/libraries provided by that will be deprecated starting from mr11.0.1. [TT#179901]

  • [PRO-Carrier] The config.yml parameter ‘b2b.prepaid.inew’ will be deprecated starting from mr11.0.1. [TT#179901]

  • API /api/journals endpoint is now managed by default by the new ngcp-rest-api server instead of ngcp-panel, it has got
    an enhanced security and visibility scope. [TT#180255]

  • the following new columns are available:

    • “reseller_id” (only visible for the “system” and “admin” roles)

    • “tx_id” (transaction id, possible to search the logs in /var/log/ngcp/ by the transaction id to backtrace the request)

    • “role” (admin user role name)

  • incompatible changes:

    • “timestamp” column is now returned as a unix timestamp (decimal 13,3) instead of the datetime string, there will be a config.yml option rest_api.legacy.inflate_timestamp that enables all timestamp values to be automatically returned as a datetime string

  • Some PBX devices are deprecated starting from mr10.5.1+ version. Those are phones for which the device manufacturer has dropped hardware and software support entirely.
    These are still available for autoprovisioning for now, but will no longer be supported and potentially removed in a future versions of NGCP. See the updated list at available pre-configured devices.

See the list of all changes in PDF Changelog_mr10.5.2

What is mr10.5.2?

The build mr10.5.2 is the next build for supported LTS release mr10.5, mr10.5.2 provides new bugfixes.

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

Yes, the release mr10.5 is an official LTS release. It will be supported till build mr10.5.14. 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-west-1: ami-0a941c5a0865ff5d2

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.5.2 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!