We are excited to announce the general availability of sip:providerCE mr3.2.1 and sip:providerPRO mr3.2.1, aka the new v3.2 Version.

What’s the sip:provider platform?

sip:provider PRO Architecture Overview

The Sipwise sip:provider 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 sip:provider platform is available as a Community Edition (SPCE), which is fully free and open source, and as a commercial PRO appliance shipped turn-key in a high availability setup.

The SPCE 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.

Why mr3.2.1 instead of just v3.2?

Previous releases were called 3.1, 3.0, 2.8 and so on. Fixes were applied to the full version, but these changes were not reflected in the name, causing two 3.1 versions to be potentially different (one without patches, one with them). The only way to force a specific version at least temporarily was to upgrade to the latest packages within the release.

Since this version 3.2, we’ve changed the versioning scheme to mr3.2.1, which is short for Maintenance Release 3.2.1. We’re going to provide regular and short-cycle upgrades (weekly or bi-weekly, depending on the number of reported issues) which will only contain bug fixes. There won’t be any new features, API changes, DB changes or whatever between say mr3.2.1 and mr3.2.2. Only really critical issues will be applied as hot-fixes into various supported versions.

Also, the current release is reflected in the Debian package version of packages provided by Sipwise. Old packages were named like ngcp-panel 1.1.10, while the new format is ngcp-panel 1.2.0.1+0~mr3.2.1.1.

This change will make it easier to distinguish between various patch levels, so if you’re going to report an issue, please provide us with the new version name you’re using, e.g. mr3.2.1.

What’s new in mr3.2.1?

The most important changes for mr3.2.1 are:

  • NGCP-Panel

    • Initial version of REST-API available at /api
    • Localization/Translation for German, Italian, Spanish, Russian
    • Graphical visualization of Call Distribution per country
    • Webfax support
  • SIP Routing Enhancements

    • Support for parsing SS7/SIGTRAN TCAP bodies for LNP lookups via SS7
    • Allow to set an outbound hop (e.g. an SBC) on the way to a peer
    • Proper Contact masking for calls to WebRTC clients
    • Configurable number of TCP children on lb
    • Support for serial forking based on q-value
    • Support for relaying RTP/SAVPF via CloudPBX (PRO only)
    • Enhanced park/pickup for CloudPBX (PRO only)
    • Upgraded Kamailio version 4.1.2
  • General System Fixes and Enhancements

    • Speed-up of “ngcpcfg apply” execution time
    • External-ID properly copied to CDRs
    • Prepaid/Postpaid mode properly updated on Billing Profile Changes (PRO only)

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. Check the relevant section in the 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 SPCE mr3.2.1 from scratch.

For users of the SPCE v3.1, 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.

How can I contribute to the project?

Over the last months we’ve started to publish our software components at github.com/sipwise. This is still an on-going effort, which is done on a component-per-component basis. Please check back 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 SPCE-Dev Mailing-List at lists.sipwise.com/listinfo/spce-dev.

What’s coming up next?

In the last release notes, we mentioned a possible availability of DTLS-SRTP support for mediaproxy-ng in v3.2. The good news is that we’re proud to say that the implementation has finished and is working. The bad news is that it’s not considered stable enough to make it for mr3.2.1, but it will definitely land in mr3.3.1. In the meanwhile, you can compile the mediaproxy-ng from source if you want to try it out.

We’ve also provided a new REST interface with mr3.2.1. It’s not 100% complete yet in terms of functionality, but you can already get a good idea how it’s going to work. Most important functionality is there already (managing resellers, customers, subscribers, domains and their preferences, as well as billing profiles). For mr3.3.1 we’re going to provide the last missing pieces (refined ACLs especially for resellers, more query options for fine-grained control over filtering collections, and implementations for rewrite rules, sound sets, voicemail files etc).

Last but not least, we promised a shorter release cycle of 8 weeks. We were not able to keep up to this promise for mr3.2.1, because we had to rework a lot of our internal build and release infrastructure to support the new naming scheme, which took longer than expected. We’ve finished this tasks now, so the next release mr3.3.1 will be available in 8 weeks.

Acknowledgements

We want to thank our PRO customers and the SPCE community for their feedback, bug reports and feature suggestions to make this release happen. We hope you enjoy using the mr3.2.1 release 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!

Full Changelog of Bugfixes and Enhancements

0006185: [Bugfix] lval_pvar_assign(): non existing right pvar during sending a fax
0005615: [Bugfix] API doesn’t work on Debian Wheezy due to Data::HAL issue
0005599: [Enhancement] Rework ngcp-panel auth/authz to support password-based API access
0005601: [Bugfix] editing Device Model gets removed all the keys config of PBX Device
0006047: [New Feature] Show field devices in ngcp-panel device management
0003933: [New Feature] NGCP-API: Implement subscriber handling
0003935: [New Feature] NGCP-API: Implement subscriber preference handling
0005299: [New Feature] NGCP-API: Implement billing profile handling
0005255: [New Feature] NGCP-API: Implement contact handling
0003961: [Enhancement] NGCP-Panel: Implement localization framework
0005835: [Enhancement] Translate ngcp-panel to Spanish
0005837: [Enhancement] Translate ngcp-panel to Russian
0005833: [Enhancement] Translate ngcp-panel to Italian
0004967: [Enhancement] For PBX subscribers let Extension-Subscribers “steal” alias numbers from admin subscriber
0005349: [New Feature] NGCP-API: Implement domain handling
0003931: [New Feature] NGCP-API: Implement customer contract handling
0003927: [New Feature] NGCP-API: Implement auth/authz based on client certificates
0005199: [Bugfix] API Cert needs to be stored in DB instead of file system
0003929: [New Feature] NGCP-Panel: Implement client certificate management for admins and resellers
0003949: [New Feature] NGCP-API: Implement reseller contract handling
0005215: [New Feature] NGCP-API: provide deb packages for API dependencies
0005103: [New Feature] Implement graphing call distributions
0003997: [New Feature] kamailio: implement pre-loaded route in provisioning
0006065: [Bugfix] restore $rU to the E.164 number before matching peers if force_inbound_calls_to_peer=yes
0006135: [Bugfix] snmpd doesn’t start on inactive node
0006133: [Bugfix] upgrade script must use sipwise user for mysql
0006151: [Bugfix] Contact masking is broken in 3.2 for webrtc endpoints
0006081: [Bugfix] CFT to VM has From anomymous if callee with CFT set has CLIR
0006263: [Bugfix] reject_emergency usr/dom preference doesn’t work
0006279: [Bugfix] force_outbound_calls_to_peer enabled on peer forces call to PSTN even if callee is local
0005027: [Enhancement] ngcpcfg: Performance optimisation of “ngcpcfg apply” (execution time), part #2
0005513: [Enhancement] Ability to configure tcp_children for kamailio-proxy
0005469: [Enhancement] simplify installer version handling
0005427: [Enhancement] Add -f flag to ngcp-update-db-schema to force update on active node
0006173: [Bugfix] ossbss tests were broken by commit 1055288755d03c5e7e18591aa8b58a6dc6a74bce
0005905: [Bugfix] error with apache when executing ngcpcfg apply on PRO
0002495: [New Feature] Add russian translation support
0003995: [New Feature] kamailio: implement pre-loaded route in peer routing
0006317: [Bugfix] Preferences without a label
0005325: [Enhancement] provide Debian packaging for libtcap
0005581: [Enhancement] Debianize dhtest repo
0005797: [Enhancement] Don’t put Link headers into collection GETs
0003779: [Enhancement] Some Observations on v3.0 Web Admin/Reseller from customers
0005575: [Bugfix] Clear audio cache on sems-pbx
0006209: [Bugfix] piuparts jobs failing when perl-base is involved
0005627: [Enhancement] Sems-PBX cannot relay RTP/SAVPF
0005083: [Enhancement] Port sendfax from www-csc to ngcp-panel
0006219: [Bugfix] upgrade kamailio to 4.1.2
0005571: [Bugfix] prosody ctrl port set to 0 if internal address changes
0006169: [Bugfix] Fix Debian warning obsolete-relation-form-in-source
0005967: [Bugfix] allowed_ips – add input validation
0005473: [Bugfix] ngcp-panel : Failed to create peering server. Duplicate entry “INSERT INTO `provisioning`.`voip_peer_hosts`”
0006063: [Bugfix] ngcp-panel: Cannot create device profile (DataTables warning table id = ‘configidtable’)
0006091: [Bugfix] PBX rewrite rule documentation is broken
0006023: [Bugfix] Removed glusterd restart if loadavg(5min) greater than 10 for 8 cycles of monit
0004541: [Bugfix] proxy/pbx: Implement constraints for call park/unpark
0005583: [Bugfix] user_cli is not used in case of API method send_fax
0005949: [Enhancement] serial forking based on q-value
0005929: [Bugfix] Subscriber External-ID if set is not copied to CDRs
0005995: [Bugfix] Auto upgrades 2.8->…->trunk failed (cumulative ticket for the fixes).
0005887: [Bugfix] kamailio-config-test affects ngcp-selenium-panel test
0005935: [Bugfix] firefox has been updated on selenium-client* (selenium tests stops working)
0005959: [Documentation] More generic link to Debian netinstall ISO
0003335: [Bugfix] sbc mode peer selection broken
0005921: [Bugfix] Outbound Display-Name has not double-quotes
0005645: [Enhancement] Support Romanian language in app_voicemail
0004621: [Enhancement] Add warning to log if mediaproxy is running in user space
0002563: [Bugfix] ngcp-delete_subscriber script calls non-existing get_voip_acount function
0005741: [Bugfix] NGCP-Panel doesn’t allow uppercase chars in subscriber usernames
0003553: [Bugfix] [new ngcp-panel][Android] Logout button and popup menu “Settings” doesn’t work in Chrome on Android
0001583: [Bugfix] Fix fax/voicebox/conference forwards on number change
0003745: [Enhancement] cfg-schema: provide support for config.d/$FILENAME/$REV handling
0004007: [New Feature] kamailio: implement aa/office-hours in routing
0004819: [Enhancement] Add pbx functions to XML API
0005709: [Enhancement] more flexible installer version support to easily install mr releases on demand
0005301: [Enhancement] upgrade kamailio to last stable version 4.1.0
0005587: [Enhancement] remove migration commands from apache -> nginx
0005633: [Bugfix] add kamailio presence tests
0005851: [Bugfix] kamailio-config-tests: fix lintian error
0005739: [Documentation] Document voicebox IVR hierarchy
0005225: [Bugfix] Mask/unmask local contact using the extra_socket
0005781: [Documentation] Document mobile app config
0005701: [Bugfix] strict routing support
0005771: [Bugfix] ngcp-panel: all web tests failed due to added languages support
0005677: [Bugfix] lacking conflicts in binary packages produced by template source package
0005101: [New Feature] Make force-outbound-calls-to-peer more flexible
0004003: [New Feature] kamailio: implement sla handling in routing
0005661: [Bugfix] Changing billing profile from prepaid to postpaid doesn’t delete attribute in usr_preferences
0005629: [Bugfix] External ID not saved when adding Subscriber
0005609: [Bugfix] collectd: mysql plugin: Failed to get slave statistics: `SHOW SLAVE STATUS’ did not return any rows.
0005611: [Bugfix] heartbeat: wrong ucast configuration in case if ha_iface is different on sp1 and sp2
0005613: [Documentation] Add “modarate/send” emails to spce-users@ as last step of releasing new update.
0005379: [Bugfix] kamailio-config-tests fail because of calling ROUTE_CHECK_USERPROV_CLI for null UPRN
0003713: [Bugfix] double sdp rewriting due to “udptl” hack rewriting the sdp
0005529: [Bugfix] Rate-o-mat locked on Dumper line
0005487: [Bugfix] Wrong checking for “using peer auth realm of peer”
0004009: [Enhancement] integrate kamailio tests in jenkins
0004533: [Bugfix] Implement music-on-hold in PBX
0005355: [Bugfix] Sems is not updated via XMLRPC if peer_auth_* prefs are set
0005371: [Bugfix] ngcp: helper/sync-db + sbin/ngcp-sync-constants depend on DBI module
0005343: [Bugfix] ngcp-www-cs init.d script provides wrong service name
0005321: [Bugfix] debian changelog for ngcp-sems-ha in trunk smaller then in 3.1 branch.
0005183: [Enhancement] Jenkins: create NGCP upgrade autotest
0005141: [Bugfix] PRO upgrade 3.1->trunk failed (sed: can’t read /etc/default/ipmievd: No such file or directory)
0003859: [Enhancement] provisioning and web interface logging options