This upgrade makes no changes to the cdrs, so "enswitch upgrade" should run quickly even on large systems.

In Enswitch 4.4, the code is moved from being stored in subversion to being stored in git. Different Enswitch versions have different git branches, rather than being stored in different subdirectories. There is no '/opt/enswitch/current' symlink to point to the active version. Instead, the code in /opt/enswitch is used directly, with the version being set by the git branch checked out.

Before upgrading

  1. Review the functional changes, and ensure that none will cause problems.
  2. If running MySQL 8.x, check that its server configuration files do not include the "STRICT_TRANS_TABLES" value for the "sql_mode" option, because it will cause runtime failures in some Enswitch functionalities.
  3. If the database or some of its tables use the "latin1" character set, change it to "utf8mb4".
  4. Make sure the root user on each Enswitch machine has the same SSH public key.
  5. Ask Enswitch support to add your SSH public to the Enswitch git repository.

To upgrade

  1. On all machines running Debian or Ubuntu:
    • apt install git
  2. On all machines running CentOS, Redhat Enterprise, or Fedora:
    • yum install git
  3. On all machines:
    • cpanm Config::IniFiles.pm
    • cd /opt
    • mv enswitch enswitch-svn
    • git clone git@git.integrics.com:enswitch -b 4.4
    • ln -sfn /opt/enswitch/lib /usr/local/lib/site_perl/Enswitch
    • enswitch upgrade_config_files
    • grep -R /opt/enswitch/current /etc 2>/dev/null   # And fix any found
  4. On the primary database machine:
    • enswitch upgrade
  5. On all machines:
    • enswitch restart
  6. Test calls and the web interface.
  7. On the primary database machine:
    • enswitch after_upgrade
  8. If any of the scripts below are used with non-default parameters then please take a look at the GetOptions() subroutine in first lines of the script's source code to identify the new or renamed parameters.
    • analytics_run
    • audit_archive
    • audit_archive_remote
    • calld
    • cdrs_archive
    • cdrs_archive_remote
    • cdrs_delete
    • cdrs_delete_zero
    • cleanup
    • cleanup_local
    • events_archive
    • events_archive_remote
    • export_cdrs
    • export_queue
    • fees
    • queue_events_archive
    • queue_events_archive_remote
    • transactions_archive
    • transactions_archive_remote