iSymphony 3.1.0 Change Log

Last modified by ryanp on 2021/09/09 20:55

The following is a complete list of changes made between iSymphony 3.0.3 and iSymphony 3.1.0. 

New Features

  • New permission system, featuring:
    • New consolidated permissions editing, under Users and Security->Permissions in the administration interface.
    • Permissions are edited from the perspective of who they are restricting, rather than which targets are being restricted. 
    • Permissions can be enabled or disabled globally. The default is disabled.
    • When editing a permission, you can either allow or deny it as a general rule, then specify exceptions to that rule. 
    • Multiple permissions can be quickly modified for one user or group by selecting their checkboxes and choosing the rule in a dropdown.
    • User groups can be specified as the targets of applicable permissions, to make it easier to segment an organization by user group. For example, you can specify that a hypothetical Sales user group can transfer calls to other extensions belonging to users in the Sales group, but not to any other extensions. 
    • Access to Extension Groups is no longer controlled by the permission system. Each extension group has a list of members (extensions and users that are included in the group), viewers (users who can use the extension group in Users widgets), and editors (users who can add and remove members, viewers, and editors). Additionally, a public option is provided which will override the viewers list to allow everyone access to the extension group. 
  • The three existing queue widgets have been combined into a single, more flexible widget:
    • The active queue can be quickly selected via the queue list.
    • The queue list displays basic health information for all queues, allowing users to get a quick overview of their entire queue system.
    • Individual sections (list, statistics, agents, and calls) of the widget can be hidden easily, to focus on the information that matters.
    • Multiple queue widgets can be linked via groups; changes to the active group in any widget in a group will be applied to all widgets in that group. 
    • Queue managers can log other agents into queues. 
  • XMPP support for the chat system:
    • The default chat system can be disabled and replaced by a system which connects to an external XMPP server.
    • When using XMPP, status changes in iSymphony will be synchronized to XMPP chat status, including notes.
  • The actions at the top of the client interface will now collapse into a 'More' menu when there are too many to display in the available space.
    • Opening the actions will now open a model dialog with the contents rather than a popup window underneath the action.
  • The actions at the top of the client interface will be hidden when they do not apply (e.g. when you are not on a call, the Hangup action will not be visible; or when you do not have permission to log into and out of queues, the queue action will not be visible).
    • The order of the actions has been slightly changed to reduce the "jumping" of the buttons as they are displayed and hidden based on call activity. 
    • Additionally, the PauseUnpause, and Pause All buttons in the queue action will be hidden when they are not applicable (whether by current login status or permissions). 
  • Added a basic Single Sign On feature:
    • A REST request can now be submitted with a username and password to pre-authenticate a login attempt. This request will return an authentication token which can then be supplied as a GET parameter when opening iSymphony. The authentication token is valid for 1 hour. 
  • A permission has been added to control whether notifications are provided for new voicemails. 

Performance Improvements:

  • An exponential performance degradation in one of our core 3rd party frameworks has been located and resolved. This affected the operation of most functions of the system, and will reduce the time required to start iSymphony, log in, or perform a number of other actions within the client interface.
  • Fixed an issue where the presence of a large number of recordings would delay iSymphony startup for up to 20 seconds. 
  • Greatly improved the internal communication system to route messages more intelligently. In particular, network traffic between the remote agent and primary iSymphony server has been greatly reduced.
  • Fixed an issue where a large number of users/extensions configured in the system would prevent the All Extensions extension group page from loading in the administration. 
  • Removed a rate limiter on the number of state updates sent to the browser when displaying call activity. It was no longer necessary and under high load situations could crash iSymphony. 
  • Fixed an issue in our UI library that would greatly increase the time required to login or switch to/from a dashboard containing the Users Widget, and smaller increases in other parts of the interface. 
  • Fixed a number of performance issues relating to the Users Widget when many users were visible. 
  • Greatly improved the performance of the Call and Transfer actions, decreasing login times in environments with many users and extensions.
  • Greatly reduced the amount of network traffic transmitted between the main iSymphony server and remote agents. 
  • Greatly improved the performance of the new Queue widget versus the old widgets, decreasing the amount of time required to switch to or from a dashboard containing a Queue widget
  • Improved the startup performance of the default chat system, decreasing the amount of time required to start iSymphony on systems with many users. 
  • Many actions in the panel have been converted to asynchronous actions, allowing the screen to continue updating from the PBX while the action is processing, rather than waiting until the action has completed to update. 

Resolved Bugs:

  • Resolved an issue preventing logging from being enabled for certain components of iSymphony.
  • Resolved an issue where selecting a specific extension in My Stream and then logging out (saving that selection) will cause many error dialogs to appear for every subsequent login until All Accounts has been selected again.
  • Resolved an issue where logging out while a voicemail is selected in the voicemail widget will cause an error dialog to be displayed. 
  • Resolved an issue where the remote agent would attempt to reconnect to the main server every 5 milliseconds, rather than the intended 5 seconds. 
  • Resolved an issue where failing to connect to the Asterisk CDR database would trigger a loop which would log an error and immediately attempt to connect again, saturating the log files and resulting in a lot of connection attempts that would not succeed.
  • Resolved an issue where iSymphony would reach a limit on the number of threads it is allowed to launch and crash.
  • Resolved an issue where a problem loading initial call state on startup would prevent iSymphony from connecting to Asterisk until it is restarted or the connection information has been modified.
  • Resolved a race condition in the permission system which would randomly prevent iSymphony from starting.
  • Resolved an issue where the remote agent would completely reinitialize if connection to the main iSymphony server was lost. 
  • Resolved an issue where the recordings widget would flicker if a user was logged in while recording information was still loading immediately after startup. 
  • Resolved an issue where a network timeout when attempting to load recording information from the Asterisk CDR database would lock up iSymphony until the connection attempt timed out.
  • Resolved a timing issue that would occasionally cause an error dialog to appear when logging out.
  • Resolved a race condition in the queue widgets that would cause an error dialog to appear randomly when call activity occurred on a queue that was being monitored with the Queue Agents widget.
  • Resolved a race condition in the queue action that prevented users from being able to log themselves into a queue via the queue action.
  • Resolved an issue where attempting to set the status of another user would fail and cause an error dialog to appear.
  • Resolved an issue where the display name of a user group was not properly checked for uniqueness. 
  • Resolved a bug that would corrupt the configuration of any new core servers added, thereby preventing iSymphony from starting the next time. 
  • Resolved a bug preventing the Policy selection from opening in certain operating system/browser combinations.
  • Resolved a bug causing the incorrect type of PBX objects to appear in the Exceptions list in the permission editor. 
  • Resolved a bug that would prevent the client interface from correctly determining whether a chat session already existed between the logged in user and another user in some circumstances. This would prevent the logged in user from starting a chat session with other users.
  • Fixed a bug causing the Penalty column in the Queue Agents table to report the value of Calls Taken instead. 
  • Resolved an issue preventing users from using iSymphony to unpark calls that were originally parked via an attended transfer on the phone.
  • Resolved an issue causing errors in the logs and a potential memory leak when the browser tab is closed without logging out.
  • Resolved an issue causing an error to appear when trying to delete a core server.
  • Resolved an issue causing an occasional error dialog to appear when another user gets on a new call.
  • Resolved an issue preventing remote agents from properly reconnecting when the main iSymphony server restarts.
  • Resolved an issue preventing iSymphony from automatically starting when the OS boots, even if the init script is used. 
  • Resolved an issue causing the incorrect information to be replaced in the CRM widget URL when it is launched from the button in the My Stream widget.
  • Resolved an issue preventing the previously selected dashboard from being loaded when logging back in. 
  • Resolved an issue causing the text "null" to be entered as first and last names for some users who didn't otherwise have a name set.
  • Resolved an issue causing voicemail to disappear from iSymphony when it is moved through the phone or Asterisk itself.
  • Resolved an issue preventing contact information for users from being removed from the configuration when a user is removed.
  • Resolved an issue causing a harmless exception to be logged when first connecting to Asterisk. 
  • Resolved an issue preventing the rate limiting to be properly applied to the updating of queue information.
  • Resolved an issue sometimes preventing iSymphony from properly filling out call information for new recordings that are made while iSymphony is running. 
  • Resolved an issue where placing a call on hold via iSymphony, then reloading the Asterisk dialplan before picking that call up again would prevent iSymphony from correctly reloading its call state.

Other Improvements and Changes:

  • The success notification when deleting a voicemail is now a transient notification, rather than a dialog which had to be closed.
  • Multiple libraries that we use have been upgraded to more recent versions.
  • The name of the MySQL database used for CDR records can now be specified. 
  • As previously announced, iSymphony 3.1 now requires Java 7 or higher. 
  • Improved the thread handling in iSymphony to reduce the possibility of iSymphony consuming excessive resources on its host.
  • The number of items on a single "page" of the Extension Group filter (in the Users widget in the client) can now be specified.
    • To do so, add the following line to /opt/isymphony3/server/jvm.args: 

       

      -Dcom.xmlnamespace.panel.client.pbx.account.filter.ExtensionGroupUserAccountFilter.comboBox.pageLength=10

       

      Be sure to replace the 10 with the number of items you want to appear on each page. Then save the file and restart iSymphony. 

  • The current version of iSymphony will be logged on startup to assist with determining the running version. 
  • Added the ability to activate a production license on a beta system without binding the license to that hardware. This allows paid license owners to run a separate instance of iSymphony using the same license without interfering with the functioning of their existing production system. 
  • The paths where the module cache, configuration, and iSymphony installation are located can be specified separately now, allowing system administrators to relocate the configuration directory. 
  • Improved the handling of the tooltip over the Full/Lite column of the users list in the administration interface, to make it less likely to get in the way when trying to toggle the full/lite status of many users.
  • Extension groups can now contain external numbers (cell phones). 
  • The members, viewers, and editors of extension groups can now be managed through the REST API. 
  • Calls that are in a conference room, queue, parking lot, or some other situations without another "linked" end can now be recorded. 
  • When the Call, Transfer, ConferencePark, or Queue actions are opened, the existing text in the filter field is automatically selected, so that it can be replaced without needing to be cleared first. 
  • The LogoutPause, and Penalty buttons will now appear on queue agents that are on an extension that's not configured in iSymphony. 
  • Improved the automatic grouping of updates to the call information displayed in the client interface, so it's more likely that successive updates will appear as a single batch correctly. 
  • Improved the matching behavior of the right side of the Call and Transfer actions. If the text entered into the filter field is a number that can be dialed, the automatically selected result will be to dial that number. 
  • If an RPM upgrade of iSymphony will upgrade the server to a version which is not supported by one or more installed licenses, the upgrade will fail with an error message indicating this. 

 

   
iSymphony