14. Software Upgrade

14.1. Release Notes
14.2. Upgrade from previous versions to mr6.0.2
14.2.1. Set the proper software repositories
14.2.2. Preparing for maintenance mode
14.2.3. Switch to new repositories
14.2.4. Upgrade the sip:provider CE
14.3. Post-upgrade tasks
14.3.1. Disabling maintenance mode
14.3.2. Post-upgrade checks
14.4. Applying the Latest Hotfixes
14.4.1. Apply hotfixes

14.1. Release Notes

The sip:provider CE version mr6.0.2 has the following important changes:

  • Optimized default ports for NGCP components. It is necessary to prevent lack of RTP ports in production. IMPORTANT: check new defaults and tune firewall settings if necessary! See new port details in /usr/share/ngcp-cfg-schema/cfg_scripts/config/16341_refactor_media_port_ranges.up on your NGCP system. [TT#22016]
  • Store MOS values returned by rtpengine in CDRs: MOS score, average jitter, packet loss and round trip time are saved in the cdr_mos_data table [TT#7525].
  • Preparation for migration on systemd. CE users can start playing with it and report the noticed issues. Run "sudo ngcp-toggle-init-system --enable-systemd" and reboot the server. IMPORTANT: THIS IS FOR TESTING/RESEARCH ONLY! IT IS NOT PRODUCTION READY!
  • A lot of stabilisation fixes after migration to Debian stretch. Most of them are also available as mr5.5.2
  • Set net.ipv6.ip_nonlocal_bind = 1 to force nginx listens non-available IPv6 HA/VIP IPs. [TT#25550]
  • All Sipwise authored architecture dependent packages come now with matching debugging symbol packages (ending in -dbgsym, the old -dbg packages have been migrated).
  • ngcp-status reports BIOS version/release date/manufacture. [TT#26854]
  • Add notification about maintenance mode into motd (message of the day). [TT#23506]
  • [PRO/Carrier] ngcp-backup has been redesigned to improve the speed and CPU/IO usage. [TT#24414]
  • Allow grafana admin access via ngcp-panel. [TT#23755]
  • Increase default min_expires for kamailio proxy from 60 to 600 seconds. [TT#24216]
  • [PRO/Carrier] Carrier’s command ngcpcfg push all is available on PRO now. [TT#24095]
  • Add cleanup script for voicemails in the database. [TT#23290]
  • The sipwise Admin UI/API user is not removable once created or already exists, it can be only enabled or disabled. The user is mandatory for customers with an active Sipwise support contract.
  • Add cdr costs rating split peak periods support [TT#24111]
  • Address an issue with cdr costs rating for scenarios with forwarded prepaid calls [TT#23153]
  • Address an issue causing duplicate calls in the call lists representation [TT#16675]
  • New API /api/conversations method to fetch calls,voicemails,faxes,sms at once [TT#20315]
  • Add invoices generation support by using the /api/invoices POST method [TT#23705]
  • Default port ranges have changed for media (RTP), in particular for external RTP from 30000-40000 to 30000-44999 [TT#22016]

Please find the complete changelog in our release notes on our WEB site.

14.2. Upgrade from previous versions to mr6.0.2

The sip:provider CE system upgrade to mr6.0.2 will be performed in several steps:

  • Verify APT source lists
  • Upgrade the NGCP software packages
  • Upgrade the NGCP configuration templates
  • Upgrade the NGCP DB schema
  • Upgrade the NGCP configuration schema
  • Upgrade the base system within Debian 9 (stretch) to the latest package versions

14.2.1. Set the proper software repositories

warning

Ensure you are using the Sipwise APT repositories. Public Debian mirrors may not provide packages for old Debian releases anymore. Also, they might be outdated. Consider using Sipwise repositories for the time of the upgrade.

Execute the following commands as root:

echo "# Please visit /etc/apt/sources.list.d/ instead." > /etc/apt/sources.list

mkdir -p /etc/apt/sources.list.d
for file in /etc/apt/sources.list.d/*.list ; do mv "${file}" "${file}.DISABLED" ; done

NGCP_CURRENT_VERSION=$(cat /etc/ngcp_version)
cat > /etc/apt/sources.list.d/debian.list << EOF
# Debian repositories, deployed via upgrade ${NGCP_CURRENT_VERSION}->mr6.0.2
deb https://debian.sipwise.com/debian/ stretch main contrib non-free
#deb-src https://debian.sipwise.com/debian/ stretch main contrib non-free
#
deb https://debian.sipwise.com/debian-security/ stretch-security main contrib non-free
#deb-src https://debian.sipwise.com/debian-security/ stretch-security main contrib non-free
#
deb https://debian.sipwise.com/debian/ stretch-updates main contrib non-free
#deb-src https://debian.sipwise.com/debian/ stretch-updates main contrib non-free

deb https://debian.sipwise.com/debian-debug/ stretch-debug main contrib non-free
#deb-src https://debian.sipwise.com/debian-debug/ stretch-debug main contrib non-free
EOF

NGCP_CURRENT_VERSION=$(cat /etc/ngcp_version)
cat > /etc/apt/sources.list.d/sipwise.list << EOF
# NGCP_MANAGED_FILE
# Sipwise repository, deployed via upgrade ${NGCP_CURRENT_VERSION}->mr6.0.2
deb https://deb.sipwise.com/spce/${NGCP_CURRENT_VERSION}/ stretch main
#deb-src https://deb.sipwise.com/spce/${NGCP_CURRENT_VERSION}/ stretch main
EOF
warning

Do not use "ngcpcfg apply/build" after executing the steps from the above block, as otherwise the changes will be overwritten and you will have to redo these steps.

Run "apt-get update" and ensure you have no warnings/errors here.

14.2.2. Preparing for maintenance mode

Sipwise NGCP introduces Maintenance Mode with its mr5.4.1 release. The maintenance mode of NGCP will disable some background services (for instance: mediator) during the software upgrade. It thus prevents the system from getting into an inconsistent state while the upgrade is being performed. You can activate maintenance mode by applying a simple configuration change as described later.

  • Enable maintenance mode:
ngcpcfg set /etc/ngcp-config/config.yml "general.maintenance=yes"
  • Apply configuration changes by executing:
ngcpcfg apply 'Enabling maintenance mode before the upgrade to mr6.0.2'

14.2.3. Switch to new repositories

To upgrade the sip:provider CE to release mr6.0.2, execute the following commands:

NGCP_CURRENT_VERSION=$(cat /etc/ngcp_version)
sed -i "s/$NGCP_CURRENT_VERSION/mr6.0.2/" /etc/apt/sources.list.d/sipwise.list

apt-get update
apt-get install ngcp-upgrade-ce

14.2.4. Upgrade the sip:provider CE

Run the upgrade script as root like this:

ngcp-upgrade
info

sip:provider CE can be upgraded to mr6.0.2 from previous release or previous build only. The script ngcp-upgrade will find all the possible destination releases for the upgrade and allow to choose the proper one.

info

If there is an error during the upgrade, the ngcp-upgrade script will request you to solve it. Once you’ve fixed the problem, just execute ngcp-upgrade again and it will continue from the previous step.

The upgrade script will ask you to confirm that you want to start. Read the given information carefully, and if you agree, proceed with y.

The upgrade process will take several minutes, depending on your network connection and server performance. After everything has been updated successfully, it will finally ask you to reboot your system. Confirm to let the system reboot (it will boot with an updated kernel).

Once up again, double-check your config file /etc/ngcp-config/config.yml (sections will be rearranged now and will contain more parameters) and your domain/subscriber/peer configuration and test the setup.

14.3. Post-upgrade tasks

14.3.1. Disabling maintenance mode

In order to disable the maintenance mode, do the following:

  • Disable the maintenance mode:
ngcpcfg set /etc/ngcp-config/config.yml "general.maintenance=no"
  • Apply the changes to configuration templates:
ngcpcfg apply 'Disable the maintenance mode after the upgrade to mr6.0.2'

14.3.2. Post-upgrade checks

When everything has finished successfully, check that replication is running. Check ngcp-status. Finally, do a basic functionality test. Check the web interface, register two test subscribers and perform a test call between them to ensure call routing works.

info

You can find a backup of some important configuration files of your existing installation under /var/backup/ngcp-mr6.0.2-* (where * is a place holder for a timestamp) in case you need to roll back something at any time. A log file of the upgrade procedure is available at /var/backup/ngcp-mr6.0.2-*/upgrade.log.

14.4. Applying the Latest Hotfixes

If your current release is already the latest or you prefer to be on the LTS release, we still suggest appling the latest hotfixes and critical bug fixes.

Execute all steps as described in Section 14.2, “Upgrade from previous versions to mr6.0.2”. They include the system checks, customtt handling, maintenance mode enabling and others. It is important to execute all the steps from the above chapter.

14.4.1. Apply hotfixes

ngcp-update

Execute the final steps as described in Section 14.3, “Post-upgrade tasks”. They include maintenance mode disabling and the system checks.