Prosody application note: Migrating from TiNG v2 to TiNG v3 firmware

Introduction

In order to add new features such as wideband audio and video, it has been necessary to make significant changes to the TiNG firmware. In essence, these involved moving away from a fixed 8KHz sampling rate to allow media with arbitrary rates. Since these changes are significant, the major version of the firmware has incremented from v2 to v3. The code underlying this new firmware also forms the basis of Prosody S v3.

The TiNG API and library have undergone various changes in order to expose the new functionality. However, as these changes are incremental and, in particular, as application code written to use TiNG v2 firmware will work without modification on TiNG v3 firmware, it's major version stays at v2.

The remainder of this note describes the issues to consider when migrating from TiNG firmware v2 to TiNG v3 firmware.

New features

The following new features have been added in TiNG v3 firmware:

Features no longer supported

All features supported in TiNG v2 firmware are supported in TiNG v3 firmware apart from:

Existing applications

Applications written to use TiNG v2 firmware should work without modification on TiNG v3 firmware. Those built against the TiNG shared library should not need to be rebuilt, but a recent version of the TiNG libraries package must be installed. Those built against the TiNG static library, a minority, must be rebuilt against a recent version of the TiNG libraries package.

Deployments

Before upgrading a deployed system from TiNG v2 to TiNG v3 firmware, it is strongly recommended that thorough qualification testing be performed. Please also refer to the Firmware memory usage section.

DSP heartbeat LED

Each TiNG DSP has an associated row of LEDs near the top of the card. These are used for debug and, in particular, one of them acts as a flashing heartbeat to indicate that the DSP is running. For TiNG v2 firmware, the heartbeat LED was red. For TiNG v3 firmware, it is green.

Firmware files

TiNG v3 firmware contains every firmware file contained in TiNG v2 plus a few new ones to implement, for example, RTP video I/O. Also, all these firmware files perform the same tasks. Therefore, if you downloaded a set of TiNG v2 firmware files to achieve a certain functionality, then you need to download the same set of TiNG v3 firmwares. There is one unusual exception: With TiNG v2 firmwares, if you only ever need to output inband tones (no general audio) then, while you needed to load tonegen.sob, you did not need to download outchan.sob. With TiNG v3 firmware, you need to download both.

Note that TiNG v2 firmware contained a file called sync.sob. This was for Aculab test purposes only, but sometimes was erroneously thought necessary by users. This file is not contained in TiNG v3 firmware.

Firmware memory usage

In TiNG v2 and TiNG v3 firmware, all downloaded firmware files consume DSP memory. Although we try to be careful that the amount of each type of DSP memory consumed doesn't increase significantly with new releases, this is not possible to guarantee. Thus if a given system runs close to a particular DSP memory limit once all firmware files are downloaded and it is running at full capacity, it is possible that a new release could cause this limit to be exceeded. This could, and occasionally did, occur between TiNG v2 releases and Aculab Support worked with affected customers to address it.

Given the more significant code changes between TiNG v2 and TiNG v3 firmware, this is more likely to occur. Thus it would be sensible to test that you can still download the set of firmware files you require, and that your system does not encounter resource issues when running at full capacity.

For more information on this topic, please see the Prosody application note: ProsodyX TiNG Algorithm Placement.