We are excited to announce the general availability of sip:providerCE mr4.2.1 and sip:providerPRO mr4.2.1.

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.

What’s new in mr4.2.1?

The most important changes for mr4.2.1 compared to mr4.1.x are:

  • Upgrade to Debian GNU/Linux 8.3 (jessie)
  • System V is still in use, migration to Systemd is planned for upcoming releases
  • Upgrade Kamailio to latest stable version 4.3.4
  • Prosody: introduce XMPP clustering support
  • Force ‘ngcpcfg apply’ to ask for the commit message
  • Introduce ngcp-service helper
  • New ngcp-upgrade framework
  • Updated authorized_key for sipwise user
  • Improve ngcp-panel start time/decrease memory usage
  • PRO/Carrier documentation is now available to public
  • Pushd server supports MUC (multi-users-conference) messages
  • SOAP API is broken in Jessie and will be dropped in mr4.3, please migrate to REST API (SOAP is deprecated since mr3.8)

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 us-east-1: ami-4fe8c525
  • AMI ID for region us-west-2: ami-3b11f65b
  • AMI ID for region us-west-1: ami-4f8afd2f
  • AMI ID for region eu-central-1: ami-b4332bd8
  • AMI ID for region eu-west-1: ami-9872c5eb
  • AMI ID for region ap-southeast-1: ami-461bd425
  • AMI ID for region ap-southeast-2: ami-09e4c06a
  • AMI ID for region ap-northeast-1: ami-d9a69eb7
  • AMI ID for region sa-east-1: ami-af62e2c3

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

For the users of the previous version of the SPCE, 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.

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 mr4.2.1 build 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

MT#17465 Error defining an IP range of ‘allowed_ips’ for a Subscribers
MT#17415 Fixed ‘Too many errors’ executing ‘/usr/share/ngcp-panel/tools/generate_invoices.pl’ script
MT#17411 Fixed can’t locate Data/Compare.pm when running “/usr/sbin/ngcp-insert-pbx-devices.pl”
MT#17373 Fixed wrong extra_socket selected for replies
MT#17339 Add check /etc/hostname content in ngcp-installer
MT#17231 debian/control: add asterisk-modules to conflicts
MT#17215 Fixed latest GRML-daily failed to run lvcreate: Option -y/–yes may not be repeated.
MT#17211 Improved stability of libswrate-abi-check test
MT#17179 kamailio-config-tests failed if no shared IP defined
MT#17163 [PRO] HA restart should happens right after Monit restart and before any other restarts
MT#17157 Improve ngcpcfg/ngcp-services debug output
MT#17153 The root filesystem contains a file named &STDOUT, removed.
MT#17125 Sbc incorrectly changes C= in SDP for IPv6
MT#17087 Fix reversed parameters in mysql query in libswrate
MT#17029 keyring-piuparts reports error: After purging files have been modified:  /etc/apt/trusted.gpg.d/sipwise.gpg
MT#17025 Fixed 2.8 upgrade to 3.0/mr3.8* due to updated MySQL: E: Could not perform immediate configuration on ‘mysql-client-5.5’
MT#16979 check-tools should not try to get the node state directly
MT#16971 Fixed ngcp-support-acces piuparts reports error:  ‘/etc/sudoers.d/sipwise’: No such file or directory
MT#16959 [PRO] enable realtime dialog DB update for smooth switchover
MT#16955 API – query params and null values
MT#16943 [PRO] Fixed wrong template for monitoring-tools/collective-check.conf
MT#16941 kwalify’s “bool” type unreliable and not used correctly, switch to strick string definitions
MT#16937 Fixed prosody/lua-redis/lua-uri packages were keep not upgraded after mr4.1->mr4.2 upgrade
MT#16923 cfg/schema: fix template typos
MT#16895 Add prefix to lnp_providers table
MT#16883 [CloudPBX] Fix CFB to voicemail set a CF to vmuXXXXX in DB instead of vmbXXXXX
MT#16877 [CloudPBX] set colp and sca rr params in branch route
MT#16861 asterisk – activate app_read module
MT#16829 [CloudPBX] wrong CLI for inter customers extension transfers
MT#16825 [PRO] Add kamailio shared memory monitoring/check
MT#16795 [Carrier 3.x] Missing inetd.conf.services template file
MT#16783 rtpengine: support via-branch matching in `delete` messages
MT#16777 Add initial implementation for local LNP DB
MT#16775 [CloudPBX] Call to Offline user ends up in a double announcement
MT#16773 Fix kamailio counters: don’t allow negative values
MT#16763 [CloudPBX] Incorrect ID column in reseller MySQL query (was: UTF-8 encoded reseller name cause empty EDR files)
MT#16743 mod_swrating.conf provisioning db connectivity uses pair instead of central
MT#16703 Upgrade kamailio to latest stable version 4.3.4
MT#16697 Improve NGCP templates makefiles to prevent human mistakes
MT#16685 Update NGCP metapackage and dependency to linux kernel in mr4.2/Jessie
MT#16683 Prepare upgrade to mr4.2 Jessie
MT#16671 [Carrier 3.x] Improved call handling after push messages (add one_device_per_subscriber)
MT#16661 [PRO] hb_watchdog ‘gotta do something’ should happens in split brain situation only
MT#16655 provide “minutes” unit for contract_balance intervals
MT#16637 introduce ngcp_type at constants.yml to detect NGCP type (CE, PRO, CARRIER)
MT#16619 improve outbound_socket fetching from replies
MT#16607 Fix ngcp-service mysql support
MT#16605 Improve topup log
MT#16587 Fix brocken UTF encoding in field “alert” sent to Apple Push server (APNS)
MT#16577 Sync collectd configuration with latest installed version
MT#16491 Add accounting.cdr index for calls query optimization
MT#16489 Vagrant provisioning cannot start in trunk due to overwritten .ssh/authorized_keys
MT#16475 Add extra protection to prevent lb from banning localhost
MT#16473 Updating debian/copyright files to be up-2-date with software licenses
MT#16467 [CloudPBX] “Create Sound Set” dialog should  allow to select only the Cloud PBX customers
MT#16465 Optimize ngcp-panel: remove Moose and other heavy stuff to reduce start time of ngcp-panel.
MT#16463 Add debug packages for build ngcp-libswrate0-dbg, captagent-dbg
MT#16445 Add ability to disable kamailo-options logs from config.yml
MT#16443 API: fix creation of customercontacts as reseller
MT#16429 Fix system-tests jessie, switch them on goss tool
MT#16415 Add various documentation improvement
MT#16401 Fix ngcp-create_domain reports “Can’t connect to 127.0.0.1:1443” due to selfsigned ceritificate
MT#16387 Tracking and reporting of required reboot
MT#16377 libswrate: fix testing expiry time limits
MT#16371 Typos and spelling error fixes in documentation
MT#16369 Save cores by default
MT#16367 [PRO] Fix voisniff scripts (rotate-partitions.pl)
MT#16365 Fix Reverse Media Negotiation not working when first INVITE is without RTP – rtpengine not in mediapath
MT#16355 Show NGCP version on web interface
MT#16341 [Carrier 3.x] Fix JSON UTF8 encoding send to Google Push server (GCM)
MT#16337 SOAP Error after Upgrade to 3.8.3: restore adm_cf_ncos preference
MT#16329 Fix handling user=phone parameter
MT#16325 add ngcpcfg.services file to /etc/kamailio/lb/db/
MT#16323 REST API call to calllists lacking rating_status, which is available in SOAP
MT#16321 REST API call GET /api/subscribers?username=xxx takes too long (> 1.5s)
MT#16309 Fix top up handling
MT#16307 add option to disable early media in mobile_push.dsm
MT#16275 ngcp-service: should not read network.yml or config.yml directly
MT#16271 [Jessie-sysv] Improve the way we handle active/inactive services
MT#16253 Add example of CSV file to upload billing fees
MT#16237 [Jessie/sysv] kamailio-config-test failed in trunk on Jessie
MT#16235 500 Internal error: Namespace  Data::HAL::URI issue for ngcp-panel in Jessie
MT#16233 [Jessie/sysv] ngcp-collective-check produces warnings “push on reference is experimental”
MT#16231 Fixed ngcp-panel to apply rewrite rules in Received Fax Journal web page
MT#16229 [Jessie/sysv] kamailio reports errors for missed replies from rtpengine while rtpengine reports “replied”
MT#16225 [Jessie/sysv] Monit doesn’t detect collectd on Jessie based trunk due to wrong PID file location
MT#16221 [Jessie/sysv] ngcp-panel is zombie on pro-trunk-jessie-sp1
MT#16219 [Jessie/sysv] support: script to switch between sysv and systemd
MT#16217 use sysvinit on Debian/jessie until we’ve full systemd support
MT#16213 Clear redis clounters that are unused for e.g. 24 hours
MT#16211 [Jessie/sysv] monit/services: switch to jessie issues
MT#16199 Move glusterfs volumes related config to separate package
MT#16197 Fix typo in documentation about peering weights
MT#16189 Abort upgrade if system has packets on hold
MT#16183 ngcp-upgrade skips errors on apt-get update
MT#16171 [Carrier 3.x] A lot of slow queries on db01 node
MT#16169 Add chapter in handbook for description of DoS attack prevention in NGCP
MT#16163 Add priority=high to pushd messages to support Android 6+
MT#16157 [libinewrate] implement reconnect attempts to I-New server
MT#16155 Adjust documentation on config.yml
MT#16127 Update Glusterfs configs on Jessie based installations
MT#16121 REST API call GET /api/callforwards?rows=200 takes > 35 seconds
MT#16089 [CloudPBX] Add list of supported HPBX phones and devices to documentation
MT#16083 Fix problem setting outbound_pai_user when profile_preferences are involved
MT#16075 [Carrier 3.x] Moving apns PUSH parameter to config.yml
MT#16059 [Carrier 3.x] prosody pushd: support muc messages
MT#16057 Fix DBIx::Class syntax for searching numbers in /api/interceptions
MT#16045 Rating including free time- 10 euro package: notopup expiry for balance intervals output
MT#16033 Improve preference description for “force_outbound_calls_to_peer”
MT#15979 Fixed ngcp-panel cannot be restarted using ngcp-service (zombie appears): sh: 0: getcwd() failed: No such file or directory
MT#15977 Prepare debian/jessie infrastraucture for mr4.2+
MT#15973 Fix ‘ngcpcfg status’ which reports nothing to do, while apply is necessary.
MT#15969 [Carrier 3.x] Fixed pushd service for CFNR scenario.
MT#15957 Put PRO and CARRIER documentation in HTML public
MT#15943 Force ngcpcfg apply to ask for the commit comment
MT#15919 [CloudPBX] CLIR not kept is destination number is a queue
MT#15903 ngcp-installer failed to install spce on debian plain if “ca-certificates” is not installed
MT#15893 prosody-modules: query vcard for non existent user returns a vcard not an error
MT#15839 [Carrier 3.x] Fix Pushd issues on Carrier 3.x after improving security
MT#15837 Fixed errors in prosody after mr4.1: mod_sipwise_vcard_cusax.lua:110: attempt to concatenate field ‘user’
MT#15835 Fixed error in libswrate in mr4.1: Failed to fetch billing profile from DB: Unknown column ‘d.product_id’ in ‘field list’
MT#15825 Include haproxy forwarding to prx01 only
MT#15821 UI datatable selection unusable due to long cell values
MT#15819 [Carrier 3.x] Push to apple for group chat  creation does not contain “Alert”
MT#15803 [PRO] ngcpcfg: check pull before ngcpcfg apply
MT#15797 Add abilitity to skip kamailio/prosody reload on REST API “create a new domains” requests
MT#15795 “ngcp-status –integrity” reports integrity issue for /var/spool/hylafax/etc/xferfaxlog after sending FAX
MT#15785 Fix error in handbook for emergency rewriting
MT#15761 ngcp-sync-constants a schema with multi 2nd level keys is not supported
MT#15759 make hourly balance intervals save against DST transitions
MT#15757 Not possible to disable Voicemail notification via Email
MT#15745 [CloudPBX] Call Lists – Change the display in the following cases: Call Transfer
MT#15719 Fix ngcp-panel debian package build job reports lintian errors for missed sources for some files
MT#15693 Deny to remove Reseller’s contract id 1
MT#15685 Panel get 404 Not Found when editing Rewriting Rules
MT#15631 [CloudPBX] Disable blf function for the Panasonic UT113, UT123
MT#15593 Rtpengin DKMS kernel module failed to be installed (added only to dkms)
MT#15519 [CloudPBX] Wrong number displayed at callee after blind call transfer
MT#15489 15485: REST API for sending faxes (POST /api/faxes/) has problems with German Umlauts
MT#15455 Fixed kamailio: IPv6 call fails because of a loop in ACK
MT#15441 API api/subscribers modify also preferences
MT#15399 Billing profile can not by edited or deleted for reseller!
MT#15363 ngcpcfg push –shared-only in the middle of upgrade
MT#15353 [PRO] MySQL: add slave_type_conversions = ALL_NON_LOSSY by default, skip mysql slave replication error 1032
MT#15289 [Carrier 3.x] ngcp does not send gcm registration id
MT#15281 [CloudPBX] fix bypass_rtpproxy option for PBX users
MT#15203 [CloudPBX] PBX group subscriber cannot be edit
MT#15185 [Carrier 3.x] Prosody connects to main DB by default for AUTH requests (should be LOCAL on Carrier 3.x)
MT#15177 make kamaillio to load the “prepaid” flag directly from profile
MT#15175 Change behavior of packet ngcp-support-access
MT#15141 Report merge conflicts in ngcp-status
MT#15111 move defualt ring timeout in config.yml
MT#14993 Support static routes in network.yml
MT#14867 Pushd service migrated form MGMT to LB node.
MT#14557 Lock out subscriber – expiry time window
MT#14487 Add rest-api data dumper tool
MT#14255 balance “underrun” update cronjob
MT#14243 Implement missing gaps for libswrate for balance underrun
MT#13669 support kwalify tool in our ngcpcfg checks
MT#13367 Softclient Desktop must be in the Subscriber Profile’s properties
MT#13155 [CloudPBX] Audible ringing for calling user continues for 3 minutes even when huntgroup member ringing stops after 10 seconds
MT#12937 [CloudPBX] Order of huntgroup member in API call
MT#12927 ngcp-panel: set charset to API response
MT#12307 e164_to_ruri option doesn’t work for PBX users
MT#12061 Rate Incoming calls and add money to the callee” “no change required”
MT#12013 Fix Kamailio bug – kamailio set $au=NULL to ACK and CANCEL
MT#11097 Fix ngcp-network: “keys on reference is experimental” message with Perl on Debian/jessie
MT#10553 Report a severity for every log line written by a daemon
MT#10015 provide monit/service restart wrapper
MT#9963 Tools to get concurrent dialogs from REDIS: ngcp-redis-helper
MT#9759 Add mpre checks to ngcp-status
MT#7571 kamailio-config-tests: ongoing migration of tests to REST interface
MT#7227 Billing fee entry combination {source, destination, direction} can be entered twice
MT#6961 Improve ngcp-upgrade to be able restart from any point on exception
MT#6407 Prosody: introduce clustering support
MT#2161 Add user=phone param for calls from/to phone numbers
MT#2013 Improve special CLIP/CLIR handling according to German laws