We are excited to announce the general availability of sip:providerCE mr3.3.1 and sip:providerPRO mr3.3.1, aka the new v3.3 Version.
What’s the sip:provider platform?
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 mr3.3.1?
The most important changes for mr3.3.1 are:
-
NGCP-Panel
- Feature-Completion of the REST-API at /api – over 40 new API resources available
- New customer preferences mechanism to provision customer-wide preferences – currently ncos and block preferences
- Subscriber Profile Handling – limit subscriber preferences (features) by assigning feature profiles
- Password Auto-Generation – control password policies and auto-generate them
- Password Recovery – Let users reset passwords via CSC
- Email Notification on subscriber creation and password reset
- Allow reseller rebranding of CSC and admin panel via CSS overrides
- PDF Invoice Generation – customized via SVG templates in online editor
- Cisco SPA Directory Service (CloudPBX only)
-
SIP/RTP Core Enhancements
- Allow to disable 100rel support
- New bypass_rtpproxy preference to bypass rtpproxy for subscribers in same LAN
- Possibility to enable/disable SIP INFO method
- Rename mediaproxy-ng to rtpengine
- Full DTLS transcoding support for WebRTC
- New option dos_whitelisted_subnets for flexible DoS mitigation control
- Implement serial forking based on q-value
-
General System Fixes and Enhancements
- New HA watchdog to recover after split-brain (PRO only)
- Lots of CloudPBX enhancements
- Preparation of systemd support
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.3.1 from scratch.
For users of the SPCE mr3.2.x, 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?
The mr3.3.1 release contains a huge number of new features considering the short release cycle. For the upcoming mr3.4.1 we’re preparing the system for a new LTS version, so it will mainly be optimization and bug fixing. Nonetheless, we’re currently working on Event Detail Records (compared to Call Detail Records), so you could charge customers based on the features they are using instead of the calls, allowing for attractive product modeling. Also, there will be some further enhancements to the REST-API, so any feedback on the current state is highly appreciated, as it is the first version we consider stable and feature-complete. The SOAP/XMLRPC API does not receive any new features anymore, so this is a good time to consider switching to the new API.
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.3.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
MT#7569 fix CLIR for PBX subscribers
MT#7535 Remove REFER parameter from Allow header in case of Allow_refer is NO
MT#7531 kamailio-config-tests add label ERROR to tap output to find broken place quickly
MT#7501 Change order of services startup on failover
MT#7499 add config.yml option to disable 100rel
MT#7495 Implement contract preference ncos and block handling
MT#7487 NGCP-API: allow filter on profile_id in subscribers
MT#7485 NGCP-API: allow filter on soundset name
MT#7471 Introduce contract preferences
MT#7469 ngcp-panel: clean-up device provisioning config
MT#7455 P-* headers are duplicated in ROUTE_EXECUTE_CF_LOOP on hunting
MT#7453 CloudPBX: implement Cisco SPA directory service
MT#7449 CloudPBX: provide config template for spa-1xx and spa-2xx
MT#7439 ngcp-panel: Fix typo in the Call Through label
MT#7421 rest api: empty filename of soundfile returns error
MT#7417 monit: heartbeat failover lasts more than 30 seconds
MT#7415 ngcp-panel: delete ncos assignments when deleting an ncos level
MT#7407 Move sems option media_processor_threads to config.yml
MT#7405 NGCP-API: allow filter on folders for /api/voicemails
MT#7399 create sems cache directory
MT#7397 create subscribers through SOAP interface fail.
MT#7395 API REST: requests api for managing NCOS levels
MT#7377 CloudPBX: add dedicated is_pbx_pilot field to subscribers instead of using admin flag
MT#7355 sems restart sometimes exit with non-zero exit code (missed –oknodo)
MT#7347 sems crashes in dsm module on sems stop
MT#7323 REST API: desire API support a method to retrieve all handles of a collection
MT#7309 REST API: unable to create/update autoattendant slots
MT#7307 REST API: unpossible to reset speeddial
MT#7275 templates/lsb_scripts are out of sync with debian/${init} scripts
MT#7271 REST API: Callforward settings are set, but not applied.
MT#7265 Fix back button for reseller in panel
MT#7239 REST API: clir can’t be set to false
MT#7233 Implement basic number block management (WIP)
MT#7219 NGCP-API: document HTTP error codes
MT#7211 API: implement autoattendant
MT#7199 Add iban and bic to contacts
MT#7191 ngcp-panel: select country in contact by datatables
MT#7183 Changing GUI language subscribers/customers are terminated without confirmation windows
MT#7179 aa_welcome sound is not deleted from cache when a new file is uploaded
MT#7175 NGCP-API: make role handling more robust in api doc
MT#7171 ngcp-panel-rest-api broken by huge OPTION reply on URI :1443/API/
MT#7169 max_concurrent_calls should exclude pbx-internal calls
MT#7155 ngcp-panel init script can be started in parallel, leaving untraced processes behind
MT#7153 Missing Create PBX Group button if not defined the max extension number in the customer
MT#7141 upgrade packaging style to 3.0
MT#7137 deployment.sh doesn’t rebuild configs for adjust_for_low_performance mode
MT#7131 sipwise-kamailio-config-tests produce warning on start
MT#7119 REST API: add order_by as query filter for GET API calls
MT#7113 REST API: missing possibility to define/update hunt-policy and hunt-timeout in subscriber
MT#7109 kamailio-config-tests: add kamailio mem info
MT#7099 update sems-pbx core to latest upstream
MT#7095 Document pbx device bootstrap, monitoring oids and device profiles
MT#7089 Fix url-encoded ; in Route of CANCEL and ACK
MT#7077 CloudPBX: Fix SPA handling with dot in SIP username
MT#7067 NGCP-API: Implement sound handling
MT#7065 fixing some lintian errors
MT#7061 NGCP-API: Implement reminder settings
MT#7053 mod_sipwise_vjud can’t connect to mysql
MT#7051 Webusername – if not set – is not initialize using API
MT#7039 NGCP-API: Implement SIP registration handling
MT#7037 CloudPBX: Linksys SPA configuation tweaks
MT#7029 REST API: Can’t create subscriber with specific customer_id
MT#7007 Use dom/usr outbound_* preferences when force_outbound_calls_to_peer=1
MT#7005 wrong call flow for PBX users with CFU
MT#7003 set ringtimeout only once in case callee is a PBX user with CFT
MT#6985 REST API: filter subscribers by customer_id field
MT#6981 kamailio: add variables support to dialplan module rules
MT#6979 REST API: include id property in pbxdeviceprofiles response
MT#6969 ngcp-panel: trigger SPA device resync via SIP NOTIFY
MT#6967 ngcp-panel: implement number range handling for aliases and cleanup subscriber editing as a whole
MT#6963 Remove wheezy-backports repository from NGCP installations
MT#6959 Replace huge Conflicts sections to Provides for ngcp-upgrdae
MT#6931 Make voicebox dial-in match more tight
MT#6919 mysql prosody user has allways the same password in ALL installations
MT#6913 NGCP-API: Manage profiles and profile sets
MT#6909 NGCP-API: implement email templates
MT#6907 mysql upgrade 5.5.35->5.5.37changes the password and mysql init script stops working
MT#6895 ngcpcfg: Improve the output/error reporting for no-root users
MT#6871 Updating subscribers using REST fails
MT#6865 SLA feature: sems-pbx crashes if the immediate NOTIFY times out
MT#6863 Hide webfax link if faxserver is not enabled
MT#6849 ngcp-panel: doesn’t start in trunk, lacking libcatalyst-plugin-email-perl
MT#6843 Implement automatic password generation for subscribers
MT#6841 Customer section in Create Sound Set menu gets mixed up
MT#6839 ngcp-panel: fix lintian errors
MT#6835 Set UPRN in case of call deflection (302 message)
MT#6833 ngcp-panel: uses the /etc/ssl/ngcp/api directory but we are using /etc/ngcp-panel/api_ssl/ now
MT#6831 Implement global password policy
MT#6829 ngcp-upgrade: line 169: etckeeper: command not found
MT#6827 NGCP-API: Implement pbxdevices for cloudpbx customers
MT#6819 support squeeze-lts repository in our LTS release
MT#6817 failing kamailio-config-tests in mr3.2.1 PRO
MT#6815 ngcp-panel/ngcp-templates-*ngcp-panel installation broken in trunk
MT#6811 CFT doesn’t work for PBX users
MT#6807 systemd support for our stack
MT#6789 Email notification after subscriber creation and for password reset
MT#6783 block_out_override_pin doesn’t work after pbx loop
MT#6775 sems-ha VSC module doesn’t know about $avp(s:caller_cloud_pbx_base_cli)
MT#6773 subscsriber preferences API call doesn’t return the collection reopened
MT#6771 http_proxy prevents applieing of voisniff configuration
MT#6761 Glusterfs migration script fails when proxy is configured
MT#6731 ngcp-panel: Failed to create reseller (no such column)
MT#6729 Cloud PBX: skip CF to local endpoints when hunting
MT#6727 XMLRPC function call fails if the response include custom values
MT#6695 Separate certificate for REST API
MT#6693 ngcp-panel: implement subscriber profiles for subscriber csc feature control
MT#6687 ngcp-panel: use db transaction when cloning rewrite rule set
MT#6683 Possibility to enable/disable SIP INFO method
MT#6667 Update documentation to use user ‘root’ instead of ‘sipwise’ (which has no password access anymore)
MT#6665 False Billing Fee successfully uploaded message
MT#6663 Contract (billing.billing_mappings) should always have billing_profile
MT#6659 Prepare and release mr3.3.1 (release 3.3 build 1)
MT#6657 Prepare and release mr3.2.2 (release 3.2 build 2)
MT#6633 Fix stdout redirection in rate-o-mat daemonize procedure
MT#6611 ngcp-rtpengine-daemon fails to start on current trunk installations
MT#6565 kamailio-config-tests: fix problems on heavy load systems
MT#6563 mr3.2.1->trunk upgrade is broken (ngcp-services-pro, ngcp-templates-pro have been kept back)
MT#6561 ngcp-ngcp-pro cannot be removed
MT#6559 reduce perl dependencies
MT#6551 ngcp-panel: Improve Build script
MT#6543 Generate TAP results for kamailio-config-tests if no sources were found
MT#6525 ngcp-sems-ha depends on external-package sems-python-modules
MT#6523 lua-lemock depends on binary version of lua-unit package
MT#6521 ngcp-templates-pro-hylafaxplus fails to install in clean environment due to dependency on ngcpcfg
MT#6517 unify Debian packaging
MT#6513 ngcp-panel: usage of Replaces/Breaks in Debian package
MT#6511 Bump Standards-Version of Debian packages to current policy version
MT#6509 Prosody doesn’t start due to missed port (redis shared location storage regression)
MT#6507 Ship bootlogd by default
MT#6501 Install ngcp-templates-pro-hylafaxplus-iax by default on PRO
MT#6499 kamailio-config-tests: fix problems on EC2 environment
MT#6497 API: Implement callforward handling for subscribers
MT#6495 acc-cleanup tool fails to DUMP cdr table cause /var/backups/cdr doesn’t exist
MT#6493 Time set shows obsolete years
MT#6491 Calling route(ROUTE_CLIR) from route[ROUTE_FIND_CALLEE] instead of route[ROUTE_INVITE]
MT#6487 ngcp-panel: support self-signup
MT#6479 NGCP-API: Review admin/reseller ACL
MT#6469 Prosody: Loaded modules
MT#6463 Server string still says NGCP 2.X
MT#6461 Load reseller-specific css on top of system css
MT#6459 Update peering contract and peering auth prefs fails
MT#6457 Add rtpengine support to monit (‘mediaproxy’ failed to start)
MT#6443 Dashboard calculates Customer revenue wrong
MT#6425 Integrate translation check into nightly builds
MT#6423 error upgrading to the latest version of ngcp-mediaproxy-ng-daemon
MT#6411 prosody: shared location storage
MT#6409 prosody: be able to connect to admin_telnet from the internal network
MT#6405 kamailio/lb: implement new option dos_whitelisted_subnets
MT#6389 Fix system-tester and integrate it into daily-build-testrunner
MT#6363 piuparts error: glusterfs-client: depends-on-obsolete-package depends: fuse-utils (>= 2.7.4)
MT#6359 Inconsistent kamailio lcr_gw, lcr_rule_target handling for gateways with non-unique IP
MT#6345 move libtcap module to its own debian package
MT#6335 kamailio-config-tests: invite_allowip should check for ANY integer allowed_ips_grp
MT#6323 Mysql plug-in of Collectd fail to connect if root password set
MT#6317 Preferences without a label
MT#6295 fix api tests: preference no longer required
MT#6285 prosody 0.9.3 released
MT#6283 NGCP-API: Implement search framework for collections
MT#6279 force_outbound_calls_to_peer enabled on peer forces call to PSTN even if callee is local
MT#6277 installer: support VPC with elastic IP on EC2
MT#6271 Change contact postcode field type from int to string in SOAP Provisioning
MT#6265 Interruptions not managed correctly
MT#6263 reject_emergency usr/dom preference doesn’t work
MT#6243 allow multipart body on kamailio
MT#6219 upgrade kamailio to 4.1.2
MT#6207 API get_sip_peering_contracts replies with ValueError: invalid literal for int()
MT#6195 NGCP-API: Implement rewrite rule handling
MT#6191 Intermediate acc records (acc failsafe)
MT#6185 lval_pvar_assign(): non existing right pvar during sending a fax
MT#6173 ossbss tests were broken by commit 1055288755d03c5e7e18591aa8b58a6dc6a74bce
MT#6169 Fix Debian warning obsolete-relation-form-in-source
MT#6165 kamailio-config-tests: reduce running time
MT#6151 Contact masking is broken in 3.2 for webrtc endpoints
MT#6141 Impossible to switch active node to sp2 (hb_watchdog returns sctive status tp sp1)
MT#6135 snmpd doesn’t start on inactive node
MT#6133 upgrade script must use sipwise user for mysql
MT#6119 SOAP function set_subscriber_preferences configure wrong ‘allowed_ips’ references if network is the same
MT#6101 provide libtcap for squeeze + 2.8 release
MT#6091 PBX rewrite rule documentation is broken
MT#6081 CFT to VM has From anomymous if callee with CFT set has CLIR
MT#6075 stop monit on upgrade script
MT#6065 restore $rU to the E.164 number before matching peers if force_inbound_calls_to_peer=yes
MT#6039 Implement ECR
MT#6025 templates-piuparts fails because of problems installing diva-drivers
MT#6023 Removed glusterd restart if loadavg(5min) greater than 10 for 8 cycles of monit
MT#6021 Parallel forking with 302 – per branch failure routing block
MT#6013 Race condition in contract balances creation
MT#5959 More generic link to Debian netinstall ISO
MT#5949 serial forking based on q-value
MT#5947 kamailio-config-tests: add ban/dos tests scenarios
MT#5933 Deleting one trusted source from GUI cause delettion of all entries with same IP in DB
MT#5921 Outbound Display-Name has not double-quotes
MT#5911 Provide single entry-point for websocket connections
MT#5905 error with apache when executing ngcpcfg apply on PRO
MT#5891 clean lintian warnings from kamailio
MT#5889 Cleanup warnings from sems-*-binaries jenkins jobs
MT#5887 kamailio-config-test affects ngcp-selenium-panel test
MT#5879 PDF Invoice generation
MT#5865 kamailio-config-tests: Add more documentation
MT#5851 kamailio-config-tests: fix lintian error
MT#5837 Translate ngcp-panel to Russian
MT#5811 Add UC client to ngcp-panel reopened
MT#5789 kamailio-config-tests: add call from/to foreign domain
MT#5787 kamailio-config-tests: add max concurrent calls tests
MT#5775 ringtimeout preference can’t be changed via SOAP
MT#5751 avoid sleep X statements in selenium tests
MT#5715 heartbeat: sometimes cannot be restarted due to error in log
MT#5701 strict routing support
MT#5645 Support Romanian language in app_voicemail won’t fix
MT#5599 Rework ngcp-panel auth/authz to support password-based API access
MT#5583 user_cli is not used in case of API method send_fax
MT#5571 prosody ctrl port set to 0 if internal address changes
MT#5473 ngcp-panel : Failed to create peering server. Duplicate entry INSERT INTO `provisioning`.`voip_peer_hosts`
MT#5349 NGCP-API: Implement domain handling
MT#5301 upgrade kamailio to last stable version 4.1.0
MT#5251 Significantly improved fees upload speed (Fixed 504 Gateway Time-out during upload fees)
MT#5103 Implement graphing call distributions
MT#5101 Make force-outbound-calls-to-peer more flexible
MT#5083 Port sendfax from www-csc to ngcp-panel
MT#4967 For PBX subscribers let Extension-Subscribers steal alias numbers from admin subscriber
MT#4921 Enhance PBX installation process
MT#4865 enable SRTP if there is a m-line with RTP/SAVP profile
MT#4825 heartbeat: hb_watchdog is not running by default on PRO
MT#4759 Lb sends to proxy always messages with Max-forwards header set to 16
MT#4541 proxy/pbx: Implement constraints for call park/unpark
MT#4489 Add log information to mitigate brute force attacks
MT#4393 Call forwarding loops create high system load
MT#4369 Sip Calls Flow page seems is not working
MT#4363 Fixed init daemon dependency (proper starting order)
MT#4235 Migrate JitsiProvisioning from www-csc to ngcp-panel
MT#3955 NGCP-API: Implement fetching of call costs for given billing interval
MT#3947 NGCP-API: Implement voicemail settings handling for subscribers
MT#3945 NGCP-API: Implement faxserver settings handling for subscribers
MT#3943 NGCP-API: Implement call list handling for subscribers
MT#3941 NGCP-API: Implement voicemail handling for subscribers
MT#3939 NGCP-API: Implement trusted source handling for subscribers
MT#3937 NGCP-API: Implement speed-dial handling for subscribers
MT#3935 NGCP-API: Implement subscriber preference handling
MT#3933 NGCP-API: Implement subscriber handling
MT#3931 NGCP-API: Implement customer contract handling
MT#3335 Fix sbc mode peer selection