Summary
Following quickly on the heels of 14.10.1, the 15.04 release of sipXcom addresses a number of bugs and adds some additional functionality.
New Features:
Add IM ID to initial user creation page
Create Proxy plugin to solve MoH / Ringing overlap for poorly behaving SBCs (solves an issue with Acme)
Add option to bridge call when transferring through IVR (instead using REFER)
Implement expire grace period for registrations
Call forward from phone
Enable/Disable voicemail deposit option not shown in admin gui
Improvements:
TCP failover support.
Implement log-callback in order to catch mongo cxx driver's logs
Upgrade Freeswitch to 1.4.15
Upgrade Mongo to 2.6.5 including all drivers (Java / C++)
Notes
15.04 Full Release Notes are located here: http://wiki.sipxcom.org/display/sipXcom/sipXcom+15.04
- 15.04.1 Hot Fix Release Notes are located here: http://wiki.sipxcom.org/display/sipXcom/sipXcom+15.04.1
Who Should Install?
This release is recommended for all 14.XX installations.
New Installs
A new ISO is available for 15.04 at: http://download.sipxcom.org/pub/sipXecs/ISO/
Update
To update please edit your /etc/yum.repos.d/sipxecs.repo file and reference the new download server (download.sipxcom.org). The repo should look as follows:
[sipXcom]
name=sipXecs software for CentOS $releasever - $basearch
baseurl=http://download.sipxcom.org/pub/sipXecs/15.04/CentOS_$releasever/$basearch
gpgcheck=0
To edit this file, login to your sipX server as root and then use either vi or nano (easier).
vi /etc/yum.repos.d/sipxecs.repo
or
nano /etc/yum.repos.d/sipxecs.repo
Once the repo file is modified, run:
yum clean all
yum update
Issues Addressed
There are a couple more that need to be added in here and hope to get done shortly.
JIRA ID | JIRA name | RN Content | Enhancement/Fix/Known Issue |
---|---|---|---|
UC-1895 | Update Call Forwarding on Schedule change. | Fixed an issue where if you change the schedule later and press apply the changes will not be applied until you go to the Call Forwarding Tab an press apply there. | Support Improvement |
UW-167 | Request for conference/mybuddy/proxy to escape special characters | Fixed an issue where if a user pasted a phone number with special characters to dial a user or a number in conference, the call would disconnect. Solution was to escape special characters and only dial numbers entered. | Support Improvement |
UC-515 | Security Vulnerability: SNMP community string can be guessed | Added the ability to configure a custom Community string (under Diagnostics->Snmp->) where you can set a community password. | Support Bug |
XX-11567 | Backup/restore does not handle some prompts | Fixed an issue where backup / restore did not handle some uploaded media files. | Support Bug |
SIPX-7 | Create Proxy plugin to solve MoH / Ringing overlap for poorly behaving SBCs | Created a proxy plugin to: 1. Check if the sipfrag of a notify is a 180 Ringing 2. Convert to sipfrag 100 Trying before sending to Polycom End result: Polycom will only send BYE upon receipt of sipfrag 200 Ok. The intention is to let MoH play the entire alerting phase. | New Feature |
UC-108 | Add IM ID to initial user account setup page | Added the ability to configure a user's IM ID on the new user setup page. | New Feature |
XX-11238 | Authentication Rules should not authenticate calls to registered users from an SBC or gateway | Added a new feature where if an SBC handles remote worker registrations and it is also configured as a gateway with permission, calls to registered users will be authenticated. This will fail if the call is coming from the PSTN. | New Feature |
XX-11518 | Call forward from phone | Implement a new proxy plugin to handle call forward when enabled on a phone. The plugin will honor the 302 from phone and sign the contact. This will allow calls to get routed as if it came from config. Phones must be registered and the 302 must come from the same ip as the registration. Same as UC-3437. | New Feature |
XX-11551 | Implement expire grace period for registrations | Implement a configurable grace period before registrations are deemed expired to minimize the adverse effect of a delayed replication process for real time collections. | New Feature |
XX-11601 | Add option to bridge call when transferring through IVR (instead using REFER) | Added a new feature to change the transfer method and bridge the call in Freeswitch. Since some ITSPs does not support REFER with replaces, this feature is an attempt to remedy this problem. This will alow also ringback / MoH on transfer through IVR. Feature is disabled by default. | New Feature |
XX-11449 | Upgrade to Mongo 2.6.5 | Upgrade to Mongo 2.6.5 to make new client drivers available to openUC services. | Improvement |
XX-11450 | Update java MongoDB Client drivers for all system java components | Update java MongoDB Client Drivers for all system java components | Improvement |
XX-11451 | Update C++ MongoDB Client drivers for all system C++ components | Update C++ drivers for MongoDB in all system components that use it | Improvement |
XX-11503 | Enable/Disable voicemail deposit option not shown in admin gui | An improvement to the system was made so that the Administrator can enable or disable voicemail deposit for individual users. Users can change a setting called enable/disable voicemail deposit while logged in as their extension in GUI under Attendant settings. This option should also be shown when a superadmin user looks at the Attendant options for an extension but it is not. Since users accidently set (or forget) this option and call for support because their voicemail is not working, it would be handy for superadmin to see it. | Improvement |
XX-11576 | Upgrade Freeswitch to 1.4.15 | Updated Freeswitch to 1.4.15. There are 1000+ fixes to freeswitch since June 2014 version 1.4.6 (version of Freeswitch in 14.10). | Improvement |
XX-11579 | Implement log-callback in order to catch mongo cxx driver's logs | Created an improvement that created a hook in order to intercept mongo cxx driver's logs and save them in sipX components' log files | Improvement |
XX-11585 | TCP failover support. | Created an improvement to Proxy (sipXtackLib) so that when a write operation fails, the TCP transport will now look for an alternative flow (or create a new one). | Improvement |
SIPX-5 | IM User group completely removed from openfire after a name change | Fixed an issue where users would see in their rosters a removed user group. | Bug |
SIPX-6 | Logged messages are not escaped anymore | Fixed an issue, created by another commit, to re-enable the escape filter for log entries. The commit broke simple greps after INCOMING and OUTGOING messages. | Bug |
SIPX-8 | Openfire IM plugin doesn't handle call-transfer and multiple calls to/from the same user (copy of UC-3541) | Fixed an issue with the openfire IM plugin where it did not properly handle call transfer or multiple calls to the same user. In case of a call transfer, the presence for all users involved in the transfer will be 'available' even if 2 users should be on-call. In case of multiple calls for/from the same user, the presence will be set to 'available' after the 1st call is closed even if the 2nd call is still up. | Bug |
SIPX-16 | sipXconfig does not start when system is offline | Fixed an issue where www.springframework.org resolution is attempted and when system offlin sipxplugin2.beans.xml is not properly parsed. Changed the header to avoid this checking. | Bug |
UC-1382 | Consultative transfer must point to the exact gateway that accepted the initial INVITE | Fixed an issue that is caused when there are multiple gateways configured to handle the call, there is no guaranty that the initial INVITE and the transferred INVITE with replaces will follow the same forked path. The proxy should be able to tag the REPLACEs header with the absolute URI of the gateway that accepted the initial INVITE. The registrar fallback plugin should be able to parse this tag and return it as a solitary contact. To disable remove "SIPX_TRAN_HOOK_LIBRARY.905_gatewaydest: @sipxpbx.lib.dir@/transactionplugins/libGatewayDestPlugin.so" from /etc/sipxpbx/sipxproxy/sipXproxy-config.vm | Bug |
UC-2351 | 5 Minutes calls downtime after rebooting the server in a partitioned region | Fixed an issue with calls not being able to be completed for 5 minutes following a reboot of the server in a partitioned region. | Bug |
UC-3033 | Long call timeout malfunction - it sends notify too early, or when not needed or out of the expected time frame | Fixed some discovered issues around long call timeouts. These were: - there is a Notify sent to the watcher - 202 sent too early (a few seconds after the call confirmed status Notify) - every 64 seconds Notify messages are sent from sss - sometimes the 64 seconds interval is not respected | Bug |
UC-3409 | Make SIP components resilient to mongo slow query timeouts | By default the mongo read query timeout is set to 100 milliseconds in mongo-client.ini. Although this value should be more than enough for most cases, in extreme load conditions some read queries might still timeout. We need to make sure SIP components using mongo C++ driver handle properly the event when a mongo query fails because of timeout. Did the following: 1. Review all mongo subsystem interfaces from sipXcommServerLib and add support so the caller knows if a query failed because of timeout or a query returned no data. 2. Review all SIP components using mongo and implement additional handling for the failed mongo queries because of timeout, most likely this means answering with 5xx server error. | Bug |
UC-3475 | System audit: custom caller id settings labels not localized | Fixed an issue with new audit feature where custom caller id settings labels were not properly localized. | Bug |
UC-3541 | Openfire IM plugin doesn't handle call-transfer and multiple calls to/from the same user (copy of SIPX-8) | Fixed an issue with the openfire IM plugin where it did not properly handle call transfer or multiple calls to the same user. In case of a call transfer, the presence for all users involved in the transfer will be 'available' even if 2 users should be on-call. In case of multiple calls for/from the same user, the presence will be set to 'available' after the 1st call is closed even if the 2nd call is still up. (same as SIPX-8) | Bug |
UW-177 | Calling by name returns Number Not Found | Fixed an issue when click to call initiates, the unite users phone rings and upon answering call does not ring user X. Call ends and in Unite Web it displays Number not found | Bug |
UW-210 | UI issues if a user has a long enough name | Fixed an issue where if the user name of a user is long, it will be displayed on two lines. This means that the user name will overlap his profile picture, the search box or the phone number he dials, depending on the tab the user selects. | Bug |
UW-222 | New sipXcom User Portal cannot call from dialpad | Fixed an issue with click to call that was not working for the new sipXcom user portal. (Cloned to SIPX-13) | Bug |
XX-11281 | Incorrect dependencies on install from sources | Fixed an issue that caused a number of errors in the 14.04. install, when trying to create a build machine from sources on a CentOS 6.5 64bit machine. This was related to the wiki page "Installing from sources". 1. Errors on install (easily fixable) a. The "make setup.sh" step creates a sipxecs.repo file. However, it points to a repository which has recently changed and no longer exists. On top of that it points to a 4.6.0 directory - shouldn't it point to 14.04? b. The script creating "setup.sh" after cloning from git repository does not include all dependencies required to build sipx. Omitted is "resiprocate-devel" and its dependencies. They "seem" to show up in setup.sh but the names used there don't trigger an install. One has to run the following to get them with the proper names: yum install sipxresiprocate-devel yum install c-ares-devel Should be fixed so one does not have to rummage around trying to locate the missing dependencies. | Bug |
XX-11297 | Polycom group firmware setting overrides individual firmware setting | Fixed an issue with the Polycom template such that when setting the group firmware version in a phone group that a phone belongs to, that setting value will take precedence even if the firmware version is set at the phone level. Also, if there are conflicting firmware values in multiple groups a phone is assigned to, the system would arbitrarily choose a firmware version from one of the groups. The group with the highest precedent should be used. | Bug |
XX-11502 | Local region only 100% / All other regions 100% fail over plan results in failed calls / unregistered phones | Updated all Mongo drivers which addressed this issue as well. | Bug |
XX-11527 | Mongo read queries are very slow in cases there is no PRIMARY | While investigating the XX-11502, we discovered the underlying problem is due to the timeouts generated by mongo reads. Since there is no primary, mongo should not accept further writes but it should properly resolve the reads. While investigating we found the following: 1. for 1st mongo connection, the c++ driver is trying to reach the dead nodes first (as specified in the connectionString parameter from the /etc/sipxpbx/mongo-client.ini file) and this will take 5 secs (hardcoded in c++ mongo client driver) for each replica set. After eventually it connects to mongo, it tries to establish/detect a primary - operation that takes a lot of "random" time (i.e. i saw values of 10 secs, 32secs, ~300secs ...). After if finds out that there is no primary, the connection is, finally, returned to the caller - aproximative time is ~30 secs. 2. The mongo connections (i.e. tcp socket connections) returned through that c++ driver function are kept/cached in a connection-pool, also maintained inside c++ driver's code, in order to reuse the socket for further queries. Periodically (I've observed a 32secs interval, maybe it's configurable), this cached connections are trying to find out if meanwhile a primary has appeared. Thus, when we'll try to get an available connection using the C++ driver API, that function will block until the primary check is done. Updating Mongo drivers to 2.6 solves these issues. | Bug |
XX-11552 | XX-11585 UC-2921 Prevents Audiocodes gateways from working correctly when using TCP | Fixed an issue caused by UC-2921 where after upgrade to 14.10 Audiocodes FXS gateways would lose their registration status and sip calls over TCP connections would work once but fail after the first call. | Bug |
XX-11565 | Improve CDR XLS which only supports a maximum of 65536 rows at the moment | Fixed an issue with CDR XLS export where it only supported a maximum of 65536 rows. This caused the CDR XLS reports throw a JAVA exception. The newest POI library supports that higher limit but it is an internal dependency for another unupdated library (jasperreports-3.7.0.jar) which generate the CDR reports. See http://mvnrepository.com/artifact/net.sf.jasperreports/jasperreports/5.0.1. for compatibility. Updated all libraries and updated sipxconfig code with new APIs as required by new Jasper. | Bug |
XX-11586 | Park - Fail to ringback on key pressed / timeout through SBC | Fixed an issue with the new Park Orbit implementation where a call from external number came in, was subsequently parked, on timeout or on transfer key pressed the original caller should ring back but when using an SBC but the call was disconnected instead. | Bug |
XX-11595 | upgrade to 14.10 change working time attendant schedules | Fixed an issue where after upgrade to 14.10 the auto attendant hours were no longer correct. | Bug |
XX-11596 | sipXproxy doesn't set the right Record-Route header | Fixed an issue with sipXproxy where it did not set the TLS Record-Route in the SUBSCRIBE message. This caused further NOTIFY messages to be sent by the phone over TCP instead of TLS. Record-Route header should be set to TLS interface in order for further phone NOTIFY messages to be transported over TLS. | Bug |