VoIP Client Framework

By leveraging VoIP Engine, developers can focus on the functionality of the end application without dealing with the complexities of voice processing at the native layer.



VoIP Engine portable for use in conjunction with any application or operating system.

VoIP Engine (VE) is at the core of our ARM-based VoIP applications, it provides complete PCM to packet processing. The VoIP Engine software is a software engine package that handles all the voice processing from PCM to Packet and back. Its intended use is in VoIP enabled handsets or desktop phones.



» AnVoice™
» iPVoice™
» LnxVoice™

– VE source Code
– VE object Code
– VE Class Library
– VE SDK includes VE Class library and SIP Class Library
– VE Reference Kit includes Class Libraries and Sample Application code

Customizable to include multiple algorithms


ADT VoIP Engine is available on the following Platforms: Other configurations are available upon request.

  • Android Operating System: Android 2.1 and later
  • ARM
  • iOS4, and  iOS5 Operating Systems
  • MIPS Technologies (Imagination)
  • Windows 7, and Windows Vista


The VoIP engine is purely a data processing engine. It has no interface to drivers or peripherals and performs processing solely at the request of the host application. The host application feeds the VoIP engine PCM samples from the audio input and and RTP packets from the network input. The VoIP engine in turn returns, via callbacks to the host application, PCM samples to be sent to the audio output device and RTP packets to be sent to the network interface.
VoIP Handler

  •     G.711 with appendices 1 PLC and 2 (discontinuous transmission)
  •     G.729A Vocoder
  •     G.722 (wideband audio) with packet loss concealment
    AMR NB Vocoder*
  •     AMR NB (G.722.2) Vocoder *
  •     G.726*
  •     EVRC-B
  •     MELP*
  •     RTP/Jitter Buffer
  •     SRTP
  •     DTMF tone relay transmit (IETF RFC2833)

PCM Front End (Independently Accessible)

  • HD Acoustic Echo Cancellation
  • Noise Reduction*
  • Tone Generation
  • Gain Control
  • Automatic Gain Control
  • Diagnostics to assist in acoustic tuning
  • Equalization
  • SIP*

Future enhancements will include:

G.729AB (with Appendix B), Plug-in Codecs

High Definition Acoustic Echo Cancellation
The HD AEC is able to operate in environments where the bulk delay (audio delay to the speaker and back from the microphone due to buffering) is not known. This is notably the case in Android-based mobile phones.

  •    The HD AEC is based upon Adaptive Digital’s field-tested AEC technology.
  •     Automatically learns about the acoustics and delay based upon normal conversation.
  •     Requires no manual training on a per-model basis or upon handset OS updates.
  •     Superior Double-Talk Performance
  •     Supports 8 kHz and 16 kHz sampling rates
  •     Able to achieve greater than 40 dB of ERLE without nonlinear processor
  •     Supports tail length up to 256 milliseconds
  •     HD AEC is a newly integrated addition to Adaptive Digital’s VoIP Engine for Mobile devices.


Wideband Features

  •     Full duplex performance under a wide dynamic range of audio levels.
  •     Supports wideband audio (16 kHz, 32 kHz, 44.1, and 48 kHz sampling rates) with no artificial cutoff of high frequencies.
  •     Converges within one second regardless of tail length and sampling rate.

Today’s mobile phone applications include an extraordinary amount of functionality. In the Android space in particular, writing software at the native layer is difficult not only due to the complexity of Android but also due to the anarchistic nature of open-source software in general. The best-case scenario for a developer is therefore to work at the Java layer. But for performance reasons, much functionality needs to run at the native layer.

To make mobile phone application development manageable, developers have many development kits at their fingertips to handle the native layer complexity. Adaptive Digital’s VoIP Engine brings the necessary VoIP function­ality to the native layer. All the developer needs to do is access the VoIP engine using a simple API, and package the supplied VoIP Engine native layer application with the end user Android application.

VoIP Engine is supplied with a sample Java application and a sample native application that in turn interfaces with the VoIP Engine software. The sample Java application interfaces with the sample native application via Java Native Interface (JNI) to setup an RTP/IP to RTP/IP VoIP connection. Android developers can incorporate the Java sample code into more complete VoIP-enabled Android applications.

The VoIP Engine API is clean and simple to use.



In order to provide the best software possible, Adaptive Digital Technologies measures the performance of the VoIP Engine software package. These measurements are published in the number (in millions) of instructions needed per second for real-time, full-duplex operation. To get this data, the execution time of specific functions are measured, and averaged, over a large sample size. In order to keep this document brief, performance statistics for other platforms are not shown but are generally similar.
MIPS utilization under typical use-cases:

For reference, a 1 Gigahertz processor equals 1000 Million Instructions per Second (MIPS).

Codecs Millions of Instructions
Per Second (MIPS)
Noise Reduction – ON Noise Reduction – ON
G.711 MIPS 141 91
G.729 AB MIPS 170 115
G.722 MIPS 302 217



Codec / AEC AEC Disabled Without SRTP
AEC Tail Length 64 msec 128 msec 256 msec
G.711a1a2/AEC 9 100 118 154
G729*AB/AEC 48 144 165 198
G.711/AEC 40 266 338 403

CPU UTILIZATION – LnxVoice: Linux/Cortex-a8 VoIP Engine Mips, running at 720MHz on Sitara/Beaglebone AM335x
AEC Fast Update Forced On
*Note: G.729 library does not include most recent NEON optimization.