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

The most important changes for mr4.3.1 compared to mr4.2.x are:

  • Trusted SSL certificates are mandatory for sip:provider now, please use free certificates from https://letsencrypt.org/ or buy any other trusted certificate.
  • NGCP uses Asterisk 11.13 now
  • [PRO/Carrier] New FAX engine: ngcp-faxserver which replaces discontinued hylafax based software/hardware FAX solutions. (Carrier only: ensure api_int is properly assigned in network.yml to grant faxserver access to REST API on WEB node. It is localhost by default).
  • [PRO/Carrier] ngcp-faxserver preserves old functionality and also provides support for T.38, Mail2Fax, NGCP REST API and many more
  • Location-based preferences: new layer of preferences which is tied to network blocks and allows to apply different admission control values and emergency values depending on the customer site.
  • Call routing verification: a new page Routing Verification is introduced, which allows to validate and simulate rewrite rules.
  • [PRO/Carrier] Emergency calls prioritization: when switched into emergency mode the system only allows calling to the privileged subscribers which offer emergency services and emergency numbers.
  • Local number portability (LNP) support: locally hosted LNP database with support of LNP specific rewrite rules.
  • Add Kamailio SIP signaling loop detection
  • Optimized and refactored ngcp-fraud-* checks, supports REST API (as /customerfraudevents) and EmailTemplates. NOTE: trusted SSL certificates are required now!
  • [PRO/Carrier] NGCP CloudPBX is installed and disabled by default. Additional license is required to use it in production.
  • Removed deprecated ngcp-ossbss (SOAP API)
  • Removed NGCP feature “Call distribution” to prevent central DB overloading

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-82eaf7e8
  • AMI ID for region us-west-2: ami-c7b741a7
  • AMI ID for region us-west-1: ami-ab720dcb
  • AMI ID for region eu-central-1: ami-e50beb8a
  • AMI ID for region eu-west-1: ami-ffee638c
  • AMI ID for region ap-southeast-1: ami-659b4f06
  • AMI ID for region ap-southeast-2: ami-35aa8856
  • AMI ID for region ap-northeast-1: ami-4bb7aa25
  • AMI ID for region sa-east-1: ami-369e105a

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.3.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.3.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#19057 ngcp-status reports annoying warning “Warning: Permanently added ‘…’ (ECDSA) to the list of known hosts.”
MT#19047 ngcp-status claims on missed /var/log/mysql/slow-queries2.log on Carrier proxy nodes
MT#18977 Freezed screen and wrongly formatted page pushing Flash Dialogic button
MT#18949 Add kamailio “latency” logging
MT#18947 use t_precheck_trans() to catch request duplicates
MT#18933 ngcp-insert-pbx-devices.pl stop with “Internal Server Error”
MT#18909 upgrade mr4.3->trunk failed to pass ngcp-check-status-integrity test
MT#18879 CDR Exporter exports 5000 cdrs in one file and only 1 cdr into another
MT#18865 Adapt GUI/API fax_journal to the new faxserver
MT#18843 wrong dispatcher ID is used for PBX MoH
MT#18803 Glusterfs unmoung /mnt/glusterfs if second “start” action has been called.
MT#18797 acc_caller_domain is not set correctly on call to huntgroup member
MT#18777 When provisioning only a 2nd line on a Panasonic KX-UT113/KX-UT123, the line cannot be used to call
MT#18757 sending faxes from PBX users using ngcp-faxserver is broken
MT#18727 Upgrade mr4.2.1->mr4.3 failed due to ngcp-fraud-auto-lock.tt2 ovnership switch to ngcp-templates-ce-ngcp-billing-tools
MT#18725 Prosody log contains SQL errors on CE in trunk
MT#18717 MySQL ALL_NON_LOSSY and slave_skip_errors are not pplied on Carrier DB nodes
MT#18713 ngcp upgrade carrier fixed for jessie (+ when http proxy is involved)
MT#18699 Billing Profiles table: error sorting for columns “Used (contracts)” or “Used (packages)”
MT#18697 Fixed approx usage with http_proxy for httpS transport
MT#18683 Increase success rate sending fax with spandsp/asterisk 11
MT#18677 REST API test t/api-rest/api-cert-auth.t failed on PRO sp1 just after installation “400 Bad Request” from nginx
MT#18649 app_lua [app_lua_sr.c:100]: lua_sr_log(): central:del[1:13] counter was -1
MT#18643 ssh process is not listening on ha_int shared IP
MT#18637 REST API call “customerzonecosts” not working
MT#18625 Add T38 RE-INVITE options for linksys-spa3xx cloudpbx-device
MT#18619 Remove ossbss from Monit/nsservices.yml/monitoring-tools
MT#18605 Collectd NGCP plugin causes high load even on standby node
MT#18593 Implement emergency priorization
MT#18587 build comx-fileshare-service package
MT#18563 Panasonic does not send Register with Expires:0 when reprovisioned
MT#18555 approx-gc cleans unnecessary (from it’s point of view) files from approx carrier cache every week
MT#18547 Internal ticket to analyse issue 7 – LI Pine Testing: direct pickup does not deliver X3
MT#18515 Uploading Billing Fees from CSV file allows to create a null Billing Zone
MT#18505 Don’t allow “302 Moved Temporarely” on subscriber side
MT#18499 Customer locations feature
MT#18485 After upgrade to 4.2.1 collectd says on the other node services are not running
MT#18473 recent docker builds fail due to lack of ca-certificates & Co
MT#18471 Call Forward loops are not detected for PBX users
MT#18463 Prevent false lua error while decreasing counters on blocked calls
MT#18455 Carrier mr4.1.1 cannot be upgraded to mr4.2.1 error processing ngcp-templates-carrier-redis (overwriting redis-server.tt2)
MT#18453 Failed to load default audio files
MT#18447 Fixed odbc / asterisk voicemail for new Asterisk
MT#18439 API Documentation: some APIs are displayed incorrectly
MT#18427 rewrite rule validation fails on kamailio-config-tests
MT#18417 BLF funtion should not be available on Yealink T19P
MT#18411 rework ngcp provisioning scripts for NGCP::API::Client
MT#18409 /api/customerbalances – filter by domain
MT#18407 Email templates API – allow internal templates selection
MT#18395 use ajax lazyloading for values shown in panel dashboards
MT#18381 Refactor ngcp fraud selection to REST API
MT#18361 Carrier: ngcp-collective-check reports error on PRX node for LB
MT#18355 ngcp-templates-carrier-redis doesn’t provide remplate /etc/ngcp-config/templates/etc/init.d/redis-master.tt2
MT#18341 No audio on call pickup using Panasonic KX-UT248
MT#18333 ngcp-sync-constants and YAML:Tiny
MT#18311 Simplify check-tool configuration
MT#18305 Include debian-goodies in our standard ngcp release
MT#18303 Move default_domain pua_reginfo to config.yml
MT#18273 Collectd does not record apache, ngcp-panel or nginx on LI nodes
MT#18255 create index on usr_preferences (attribute, value)
MT#18219 API: documentation points to a wrong fieldname for setting rewrite rule sets
MT#18199 ability to use forwarder’s user_cli as UPRN
MT#18121 add check_mk folder to etckeeper .gitignore file
MT#18089 API: showing errors
MT#18059 moving call to LNP route if callee is not local
MT#18057 LNP inap mode isup q.763
MT#18055 mod_sipwise_vjud: use proper fields for search by number
MT#18043 MySQL slow query: SELECT sum(DATA_LENGTH) FROM INFORMATION_SCHEMA.PARTITIONS where TABLE_SCHEMA=’sipstats’ AND TABLE_NAME …
MT#18041 mod_sipwise_vjud doesn’t work with discovery
MT#17967 Add new ngcp-sems-app package
MT#17955 cdr-exporter does not clean up /tmp
MT#17953 rebuild sems-pbx with thread pool
MT#17895 Unknown caller in call from PBX
MT#17893 ngcp-installer cannot use NGCP_PPA variable for not a trunk installations
MT#17887 Fix update of interceptions
MT#17877 Call from pstn to pbx user and reffered back to peer causes source_acc to null
MT#17855 Failed to update customer contract” error in trunk
MT#17849 Switch from pxelinux with static files to ipxe with configuration through API
MT#17841 Implement lua helper for kamailio proxy longest-match enhancement
MT#17837 update P-NFCP-Callee-Info user on Call Forward
MT#17805 Panel seems not able to correlate PCAP files with PBX calls
MT#17801 rest-api internal authentication for ngcp-* clients
MT#17787 Fix loose-routing ACK/BYE/re-INVITE etc. to outbound peers if they are proxies looping a call back
MT#17783 Wrong CLI is shown for different customers
MT#17781 Use strict locale for sipwise user en_US.UTF-8
MT#17771 Documentation improvement for mr4.3.1
MT#17761 LB shall never mask Contact in 200 OK to REGISTER
MT#17757 fix kamailio configs for ngcp-faxserver usage
MT#17753 Extension dialing not possible if destination subscriber has preference force_inbound_calls_to_peer set to True
MT#17739 ngcp-collective_check is not detected active node status. system(‘ngcp_check_active’) call returns -1 : No child processes
MT#17727 Last-Modified: Http header filled not according to rfc2616
MT#17719 Check package ‘check-mk-agent’ is installed and warn user to stop server monitoring for upgrade period
MT#17709 Redis counters issue in case of multiple call forwards
MT#17699 upgrade packages to Debian Policy 3.9.7.0
MT#17681 collective check fails to detect lb running on passive node
MT#17673 Jessie based Carrier cannot be installed due to a lot of issues
MT#17665 ngcp-upgrade failed: E: Couldn’t find any package by regex ‘linux-headers-2.6-amd64’
MT#17647 ngcp-support-access fails if user sipwise exists but no /var/sipwise/.ssh dir exists
MT#17645 Mediator is not handling field already containing PIPE symbol and the CDR fields are shifted in this case
MT#17641 API: add /api/admins/ to programmatically manage logins” “open” Andreas
MT#17631 Provide ngcp-support-upload to upload files from NGCP to a support ticket
MT#17625 ngcp-cloudpbx-pro: metapackage for pbx
MT#17623 Fix reloading dialplan cache on cloning/deleting rwr set
MT#17619 prosody process needs mysql service to be up
MT#17617 ngcp-panel: tests create “HASH(0x182bc908)example.org”
MT#17599 sems-pbx sends 500 if call is to huntgroup with zero members
MT#17577 LI (captagent or voisniff) is not under SNMP
MT#17575 Captagent init script is wrong
MT#17563 DB_ONLY mode for presence broke PBX in mr3.8.4
MT#17545 prosody-modules: get latest versions from upstream
MT#17543 Remove Call Distribution graph from ngcp-panel
MT#17541 NGCP support XEP-0191
MT#17529 improve partition alignment during partition table setup
MT#17523 cleanup-tools cron job sends a warning mail if “default” folder in /var/spool/asterisk/voicemail/ doesnt exist
MT#17517 vmnotify uses wrong via and binds to wrong local ip on carrier
MT#17507 ‘500 Internal server error’ configuring Off-peak-times
MT#17505 Add helper script to directly use git versions for ngcp-panel and dependencies
MT#17495 Move subscribe to diffent customer
MT#17491 REST API: speeddials documentation without actual format
MT#17487 Error generating API key for an Administrator User
MT#17477 Supporting new hardware version of Yealink SIP-T21P
MT#17473 Button “Add another range” in creation panel of pilot subscriber doesn´t work
MT#17465 Error defining an IP range of ‘allowed_ips’ for a Subscribers
MT#17457 ‘Can’t connect to localhost:1443’ executing  ngcp-insert-pbx-devices.pl
MT#17435 collective check detecting 2 mysql running on ICN (slb) as an error
MT#17415 ‘Too many errors’ executing ‘/usr/share/ngcp-panel/tools/generate_invoices.pl’ script
MT#17411 Can’t locate Data/Compare.pm when running “/usr/sbin/ngcp-insert-pbx-devices.pl”
MT#17405 ngcp-status check mounted root partition
MT#17383 Supporting new hardware version of Yealink SIP-T19P
MT#17373 wrong extra_socket selected for replies
MT#17355 Description of device features (soft keys, hard keys, line keys, VSC)
MT#17339 Check /etc/hostname content in ngcp-installer
MT#17309 REST API call to get “Customer” -> “Contract Balance” -> “Spent this interval” missing?”
MT#17283 Wrong generic-param format in Record Route header” “no change required
MT#17263 implement billing profile offpeak/onpeak editing for API
MT#17261 ratomat cdr fragmentation testcase
MT#17247 Increasing the limit for the number of digits in billing fees
MT#17231 asterisk 11.13 does not pass initiall testing in trunk
MT#17219 ngcpcfg: Various cleanups
MT#17215 Latest GRML-daily failed to run lvcreate: Option -y/–yes may not be repeated.
MT#17201 Termination of contracts gives 500 error on administrator web interface “Can’t call method “get_inflated_columns”
MT#17199 user_agent information not returned in API fuction subscriberregistrations
MT#17197 templates kamailio: remove PROXY_LOOKUP
MT#17185 Change digest-realm to use TO instead FROM
MT#17179 kamailio-config-tests failed if no shared IP defined
MT#17175 haproxy and ngcpcfg-api is missed into ngcp.inc
MT#17169 The upgrade repository could do with a README file
MT#17163 HA restart should happens right after Monit restart and before any other restarts
MT#17157 NGCP doesn’t restart LB on IP shared_ip change
MT#17153 The root filesystem contains a file named &STDOUT
MT#17145 Add support for Vagrant 1.8.1+
MT#17137 api: rewriterules and rewriteruleset
MT#17125 Sbc incorrectly changes C= in SDP for IPv6
MT#17117 heartbeat depends on transitional dummy package iproute
MT#17087 Libswrate: fix reversed parameters in mysql query
MT#17077 purge ifenslave-2.6 package from NGCP mr4.3+
MT#17069 Removed Dell OMSA mirror for Jessie
MT#17055 add action ‘status’ to voisniff-ng init script
MT#17053 Phone integration test procedure is missing in Handbook
MT#17049 List of supported devices extension
MT#17047 Make topology hiding on lb configurable via config.yml
MT#17043 Limit conference room participants per subscriber
MT#17029 keyring-piuparts reports error (no gerrit review): After purging files have been modified:  /etc/apt/trusted.gpg.d/sipwise.gpg
MT#17025 2.8 cannot be upgrade to 3.0/mr3.8* due to updated MySQL: E: Could not perform immediate configuration on ‘mysql-client-5.5’
MT#17023 Fake Alarm  rtpengine processes running, more than 1 or less than 1
MT#16985 Add possibility to connect to a different DB for interception data
MT#16983 Panel/API set new subscriber as part of all the PBX groups
MT#16979 check-tools should not try to get the node state directly
MT#16971 ngcp-support-acces piuparts reports error:  ‘/etc/sudoers.d/sipwise’: No such file or directory
MT#16965 perform_peer_lcr option should be boolean, not int
MT#16959 Redis counters are not descreased
MT#16937 prosody/lua-redis/lua-uri packages were keep not upgraded after mr4.1->mr4.2 upgrade
MT#16933 Rest API 400 Bad Request The SSL certificate error
MT#16913 UPN and NPN are lost when push is involved
MT#16911 Upgrade mr4.1->mr4.2  (wheezy->jessie) produces GRUB warnings on boot which doesn’t exist on fresh mr4.2 installation
MT#16883 CFB to voicemail set a CF to vmuXXXXX in DB instead of vmbXXXXX
MT#16855 Call history is loading too slowly
MT#16829 wrong CLI for inter customers extension transfers
MT#16827 asterisk-voicemail: debian package
MT#16825 check shared memory at proxy nodes
MT#16777 Implement local LNP DB
MT#16719 network.yml for Carrier deployment: support cloning of host sections
MT#16633 make rate-o-mat save when running multiple instances
MT#16429 system-tests are broken in jessie based trunk
MT#16393 ngcpcfg should check ‘master’ branch and report/checkout master if user outside “master”
MT#16273 Voisniff-ng integration with EVE Pine, Utimaco and Lima Group2000
MT#16225 [Jessie/sysv] Monit doesn’t detect collectd on Jessie based trunk due to wrong PID file location
MT#16183 ngcp-upgrade skips errors on apt-get update
MT#16121 Fixed REST API call GET /api/callforwards?rows=200 takes > 35 seconds
MT#16113 Improved translation
MT#16079 SIP-Signalling LOOP-Detection
MT#16017 asterisk 10.3+ as a complete fax solution
MT#15973 ‘ngcpcfg status’ reports nothing to do, while apply is necessary.
MT#15875 Improvement of Diversion header acconrding to RFC5806
MT#15779 Voicesniff’s generate-statistics.pl is overloading DB by “select id, method from messages where id>’$id’ order by id asc”
MT#15719 ngcp-panel debian package build job reports lintian errors for missed sources for some files
MT#15705 Removed line still active on Cisco ATA
MT#15633 Add REST API function in order to manage SIP Peerings
MT#15613 move cdr/event export fields to config.yml, no need to have customtt here anymore
MT#15519 Wrong number displayed at callee after blind call transfer
MT#15491 0015487: REST API for sending faxes (POST /api/faxes/) should be able to use text and file attachment(s) together
MT#15489 0015485: REST API for sending faxes (POST /api/faxes/) has problems with German Umlauts
MT#15455 Fixed IPv6 call fails because of a loop in ACK
MT#15201 e164_to_ruri does not work if the susbcriber is part of PBX group and I call the group
MT#15177 make kamaillio to load the “prepaid” flag directly from profile
MT#14679 Implement Mail2Fax
MT#14675 ngcp-ossbss (SOAP interface) removal from NGCP
MT#14667 Kamailio doesn’t update presentety for expired locations
MT#14659 Editing subscriber details produces multiple slow queries to CDR
MT#14477 0014461: REST API lacking method to send and retrieve fax
MT#14459 cdrexporter modification to be more flexible
MT#14457 rate-o-mat modification to be more flexible
MT#14263 add French asterisk-sounds on PRO
MT#14055 Fix cisco CA for autoprov client auth
MT#13337 Add local number portability to other carrier
MT#12385 Split EDR export per reseller
MT#12025 lua-ngcp-kamailio: improve code quality
MT#11767 Including Calling Card/Calling Through documentation into the handbook
MT#11731 API: wrong documentation for PUT request for PbxDeviceModels
MT#11387 fix failling piuparts jobs
MT#10537 Implement calllists as simplified way to fetch call history for a subscriber
MT#10199 Add NCOS Level in Subscriber Profile
MT#7571 kamailio-config-tests: migrate scripts to REST interface
MT#7227 Billing fee entry combination {source, destination, direction} can be entered twice
MT#6859 force ngcp-installer to LANG=C
MT#5349 NGCP-API: Implement domain handling
MT#5243 QoS in the ethernet traffic from-to SIPWISE
MT#2013 Special CLIP/CLIR handling according to German laws