We are excited to announce the general availability of sip:providerCE mr4.1.1 and sip:providerPRO mr4.1.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.1.1?

The most important changes for mr4.1.1 compared to mr4.0.x are:

  • Sipwise rtpengine-redis plugin is publicly available now within rtpengine.git
  • Upgrade Kamailio to 4.3.3
  • New feature Malicious Call Identification (MCID)
  • ngcpcfg uses “pull –rebase”  now (MT#15141)
  • ngcpcfg YML configs can be validated using ‘ngcpcfg check’ (set VALIDATE_SCHEMA=”true” in /etc/ngcp-config/ngcpcfg.cfg)
  • Minimizing amount of customtt files in use, moving some of the kamailio modparam parameter to config.yml
  • Limiting various components listen necessary interfaces only
  • Improved stability of Kamailio counters in Redis on Kamailio restart/HA switchover

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-698dd10c
  • AMI ID for region us-west-2: ami-b4896b87
  • AMI ID for region us-west-1: ami-7fea293b
  • AMI ID for region eu-central-1: ami-d2e5e9cf
  • AMI ID for region eu-west-1: ami-af003fd8
  • AMI ID for region ap-southeast-1: ami-a0f6e5f2
  • AMI ID for region ap-southeast-2: ami-8fcb81b5
  • AMI ID for region ap-northeast-1: ami-ca711cca
  • AMI ID for region sa-east-1: ami-0109981c

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 mr4.1.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.1.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#15903 Ngcp-installer failed to install spce on Debian plain if “ca-certificates” is not installed
MT#15839 Pushd issues on Carrier 3.x after improving security
MT#15835 Fixed runtime SQL typo error in libswrate
MT#15821 UI datatable selection unusable due to long cell values
MT#15819 Push to Apple for group chat creation does not contain “Alert”
MT#15759 Rate-o-mat will brutally fail upon summer->winter time transitions
MT#15709 Rest API: api-cert-auth.t fails on “check valid client certificate”
MT#15701 REST API create/delete domain calls xmpp/SIP before commiting changes to DB
MT#15665 Add a TIP to handbook regarding how to change base URL for provisioning devices.
MT#15663 Adding extra OID 47-52 in handbook for Carrier only
MT#15659 Sems-pbx/dsm: keep same call-id for outgoing call from AA and callqueues
MT#15657 libinewrate-binaries job fails because of lintian error
MT#15651 Provide debug package for libinewrate
MT#15627 Drop unnecessary constant.yml option “mysql: ~” from spce
MT#15609 Moving some of the kamailio modparam parameter to config.yml
MT#15599 Add asterisk.emaildateformat to config.yml
MT#15593 Rtpengin DKMS kernel module failed to be installed (added only to dkms)
MT#15583 Subscriber admin cannot access Customer Details page
MT#15575 Upgrade kamailio to 4.3.3 (latest stable)
MT#15555 Ability to set ACC flags after transaction has been created
MT#15553 Destination-URI is not reset after 302 reply from UA
MT#15551 Improve DNS template (resolve.conf)
MT#15525 Ngcp-sems-ha hangs on start
MT#15519 CloudPBX: Wrong number displayed at callee after blind call transfer
MT#15515 No media proxy with reverse media negotiation
MT#15509 Ngcp-sems and sems-pbx should clear audio cache on start
MT#15501 Prevent pushd running on every nodes
MT#15477 Implement topup log api/panel UI
MT#15463 Rate-o-mat depends on my RATEOMAT_PROVISIONING_DB_USER which doesn’t necessarily exist
MT#15459 Fix ngcp-panel: SIP password with < symbol not displayed correctly
MT#15443 Fix mistyping in the ngcp-panel “force_outbound_calls_to_peer” “use domain defalut”
MT#15441 API api/subscribers modify also preferences
MT#15427 Improve captagent templates
MT#15425 Audio_cache reload is not triggered after deleting file
MT#15423 Add captagent to the list of services
MT#15413 Push not received if multiple tokens in DB from the same account and from the same device
MT#15399 Billing profile can not by edited or deleted for reseller!
MT#15397 Mediator on carrier deadlocks each other  on stats update on central server
MT#15395 Info stats query is not logged on critical error” “no change required”
MT#15393 API documentation has some confusing examples
MT#15389 Errors during the switchover
MT#15383 Carrier 3.x: Add proxy support to inetd/approx configuration
MT#15381 Mediator mr3.6+ doesn’t recognize accounting from mr3.5
MT#15367 Panel shows wrong zones
MT#15361 CloudPBX: Update MoH – Old file is still played
MT#15359 CLI Presentation issues with CFU
MT#15343 CloudPBX: CFU not working if destination has PBX Call Queue enabled
MT#15341 CloudPBX: When calling to AA the subscriber see from 00311 displaying in second leg call.
MT#15311 Sems-pbx issue with PRACK when UAC/UAS are both sems
MT#15307 Move SEMS prompts filename to contants.yml
MT#15303 Implementing DoS/DDoS attack against XMPP
MT#15293 [ngcpcfg] user friendly “pull –rebase”  feature (skip detached branch, better error outputs)
MT#15261 ngcpcfg: ability to redefine general options for node-type and specific node
MT#15247 CloudPBX: Always force https in autoprov config
MT#15237 interfaces.yml should contain interfaces from all hosts in carrier
MT#15225 ngcp-sems takes care about sems.prepaid.inew.enable config option
MT#15193 Add provisioningdb credentials for ratomat
MT#15185 Prosody connects to main DB by default for AUTH requests (should be LOCAL on Carrier 3.x)
MT#15157 Move rtpengine-redis.git code into rtpengine.git and discontinue rtpengine-redis.git
MT#15141 Report merge conflicts in ngcp-status
MT#15123 ACK goes in loop in a IPV6 call
MT#15119 Add ability to trace XMPP connection details for particular user
MT#15117 CloudPBX: Pickup on yealink t48g does not work on BLF button
MT#15113 Domain rewrite rules support for terminated subscribers
MT#15111 Move defualt ring timeout in config.yml
MT#15107 queue_greeting and queue_waiting_music audio file is not playing after uploading a new audio file
MT#15079 CloudPBX: Line/Key Range incorrect for Cisco SPA501G
MT#15075 Call from SRTP user to RTP user has no audio at all
MT#15057 CloudPBX: strip down autoprov HTTP headers and add Last-Modified
MT#15053 Improve ComX service stability
MT#15033 ngcp-panel: rework Build.PL
MT#15025 CLIR set, but call with *31* does not disable CLIR
MT#14993 Support static routes in network.yml
MT#14989 registrar xavp_rcd is not set after registered() check
MT#14979 REST direction filter not working
MT#14977 BLF turns green during running call when duration >90 seconds
MT#14967 kamailio-config-tests: return error but TAP has no error
MT#14939 Call to fax server on Carrier fails sometimes with 403
MT#14923 Webfax on Carrier does not work out of the box
MT#14921 Add call-id to pushd log to simplify debugging.
MT#14911 Add Kamailio to ssl-cert group by default
MT#14901 Removed outdated ngcp-panel link /login/reseller
MT#14875 Kamailio is selecting wrong value for transport_protocol for peer used multiple time
MT#14867 Pushd service must be migrated form MGMT to LB node.
MT#14865 CloudPBX: groups need to set the display_name too for ldap queries
MT#14843 Invite message sent to the wrong IP in faoilover case
MT#14817 SRTP does not work if callee/caller are PBX users
MT#14803 The REST API returns an internal error. Even if the requested entry is not existing, a HTTP error “404 not found” would be expec
MT#14747 Fix Yealink W52P base firmware fetching
MT#14743 ngcp-panel.nginx-site: enable access.log for phone provisioning
MT#14741 Fix /api/trustedsources/ when called with reseller creds
MT#14739 REST API returns “201 Created” but no “Location” for “POST /subscriberregistrations/”
MT#14729 CloudPBX: Enhance labels and front images for SIP-T28P + EXP39 & SIP-T28P + 2xEXP39 phone models
MT#14721 kamailio-config-tests needs to support event_route[dialog:start]
MT#14715 Return UUID in /api/subscribers/
MT#14703 Fix libinewrate and charging long duration calls
MT#14673 Pushd call failed randomly (LB loops B invite on itself due to wrong P-D-URI)
MT#14667 Kamailio doesn’t update presentety for expired locations
MT#14653 Various REST API fixes
MT#14641 CloudPBX: Fix Cisco Telephone restarting all the time – SPA514G
MT#14635 Carrier 3.x: Improve mobile pushd options
MT#14631 Topup REST API takes care about package id
MT#14629 Improved documentation for REST API
MT#14625 CloudPBX: PBX Call Queues improvements
MT#14597 Fixed NGCP Dashboard – Can’t change E164 number of the client
MT#14559 Deleted User still register at peer through remote authentication
MT#14557 Fix ‘1970-01-…’ lock detection timestamps on rate-o-mat
MT#14549 Improve Voisniff performance/stability
MT#14513 CF destination set drop-down menu not ordered alphabetically
MT#14485 Avoid duplicate CDRs for in/out within the same reseller
MT#14479 ngcp-status: provide support for checking ntp setup
MT#14461 Implement REST API method to send and retrieve FAXes
MT#14445 Fixed billing fees upload
MT#14405 Backported kamailio upsteam fix registrar max_contacts having sip.instance
MT#14395 push notification sent before checking prepaid credit
MT#14391 panel deletes certain alias numbers when editing subscriber
MT#14383 Caller number is shown in Web Interface for customer in spite of suppressed number (anonymous Calls)
MT#14365 Sound cache reload fails if PBX is not enabled
MT#14327 Check possibility to switch hfaxd listens localhost only
MT#14317 REST API test failed randomly due to new tests in api-balanceintervals_t
MT#14311 ngcp-sync-db: is missing the <id>_not_replicated.up info at ngcp.db_chema
MT#14301 Improved ngcp-panel billing packages handling
MT#14293 ngcp-prosody-modules: add luacheck job tests and try to create unit test
MT#14281 prosody pushd module not using urlencode?
MT#14267 REST API Documentation change
MT#14255 Implement balance “underrun” update cronjob
MT#14253 Disable invoice generation by default
MT#14243 Implement missing gaps for libswrate for balance underrun
MT#14229 fix shellscripting issues caught by *-tap-test Jenkins jobs
MT#14227 Add libinewrate support to all ngcp components
MT#14217 Implement basic Kapsch LNP support in kamailio proxy.
MT#14199 Add ngcp-update support to ngcp-ppa
MT#14179 support ‘enabled’ on config.yml to all our services in order to be able to customize developments
MT#14159 Voucher field description is wrong
MT#14153 LI enhancement for VM use case
MT#14141 initial loop to PBX is using default lbrtp_set
MT#14107 Add possibility to set default language for new ngcp-pnale CSC
MT#14079 Add package coturn server and templates
MT#14067 /usr/share/perl5/NGCP/CDR/Transfer.pm fails if spaces in dir name
MT#14063 Phone based call forwarding no CDR generated for fwd’ed call leg, enable acc_prepare_always and fix missing acc after 302 redirect.
MT#14055 Fix cisco CA for autoprov client auth
MT#14011 system-tests: fail if no config is found. Do not skip
MT#13985 there are missing steps at paragraph 3.1.1
MT#13971 Hide debug output for ngcp-db-schema/db_scripts/diff/15167.up
MT#13969 Yealink provisioning does not work as expected
MT#13957 Dispatchers errors in log on start
MT#13949 Default ssl files can’t be read by slapd service
MT#13931 Import phone device configuration from web interface
MT#13919 CloudPBX: Integrate Innovaphone phones to PBX
MT#13917 Call Push notification failing on melita
MT#13909 Cleanup/remove section www_csc from config.yml
MT#13903 Dynamic balance interval duration and start (including topup)” “reopened”
MT#13847 API Callists preserve number after rewrite rules
MT#13833 Carrier 3.x: Backport changes for pushd service in 3.8LTS
MT#13825 Carrier 3.x: Cannot start astetrisk on package upgrade if dnsmask is disabled (Debian bug #703805/#773170)
MT#13749 CloudPBX: Fixed caller ends up in wrong VM box, after CFT
MT#13747 CloudPBX: Fixed call from PSTN with CFU to PSTN not working
MT#13743 Sems (libswrate) is writing prepaid_cost table on db01 but rate-o-mat is checking that table on localhost (prx)
MT#13717 ngcp-panel nigtly tests failed in trunk (selenium-ruby contact search problems + 13 errors on REST API)
MT#13669 Support kwalify tool in our ngcpcfg checks
MT#13611 Subscribers own number in CSC is now shown with 00 and sip-username, and not the number. F.e. the sip-username is 10172
MT#13597 Playbalance played in loop and call cannot be CANCELED
MT#13573 CloudPBX: CallList incorrect for records of terminated subscriber
MT#13471 Call Lists – Caller displayed as anonymous
MT#13459 Add Romanian voice prompts to ngcp-prompts
MT#13387 Ring Timeout on Hunt Group CFT should prevail over the Ring Timeout of individual HG members
MT#13363 Auto attendant destination not working if destination has PBX Call Queue enabled
MT#13359 No incoming call from call queue after attended call transfer
MT#13251 Customer Music On Hold file is not being played, fixed MoH reload
MT#13229 New Captagent package
MT#13183 Improve direct carrier upgrade mr3.5.1->mr3.8.x
MT#13155 Fix playing early announcement to caller after hunting
MT#13059 CloudPBS: Auto attendant destination not working if destination has PBX Call Queue enabled, fixed the empty P-AA-Account header
MT#13015 Vagrant-ngcp: migrate to REST API
MT#13011 Fix accounting on calls to AA target
MT#13007 PBX sounds reload in System sound set is not handled correctly
MT#12999 render_schema.pl tool to generate dbix entity model graphs
MT#12985 Subscriber cannot edit “Block List for inbound calls”
MT#12977 Backport sngrep to ngcp platform
MT#12937 CloudPBX: Order of huntgroup member in API call
MT#12873 CloudPBX: Improved PBX Call Queue stability
MT#12825 Exporting button for billing fees
MT#12757 CSC – VAT in costs included in Source Cust Cost
MT#12707 New feature “Feature Malicious Call Identification (MCID)”
MT#12691 One-way audio after mobile push
MT#12365 Carrier 3.x: Add leastused distribution policy for 2.x carrier
MT#12347 REST API Tests rewritten without copy-paste of handreds lines of code
MT#11921 Clean shellcheck errors/warnings
MT#11831 Add Romanian language to the enum preference
MT#11509 fraud-lock query creates slow-query when cdr entry are high
MT#11465 error in test invite_foreign_dom
MT#11243 Add ability to disable PXE ( dnsmasq )
MT#11239 dsm/mod_utils: rename the prompts for single digits after the tens
MT#11147 Establish predefined line sets as special type of the device models – extension
MT#10697 Move REST certificats ‘api_ca’ generation from templates.postint to installer
MT#9759 Add better Carrier 3.x support to ngcp-status
MT#9721 Undocumented properties in the REST API
MT#8457 Easy way to duplicate billing profiles
MT#7335 Fix Debian/jessie issues in ngcp and related packages
MT#5599 Rework ngcp-panel auth/authz to support password-based API access