Powerful servers and IP telephony have given rise to the host-media-processing (HMP) media server. The term “HMP” is loosely applied since not all HMP media servers actually process a call’s media stream. The IETF RFC2833, which specifies how in-band telephony tones can be transported in RTP packets, allows the signal processing needed to detect these tones to be outsourced to the media gateway. And messaging can be implemented by simply storing the RTP packet payload.

But what happens when real media processing is required? For example, often the requirements for in-band call-progress analysis for dial-and-deliver applications in messaging servers exceed the capabilities of media gateways. And what if voice messages are stored in G.711 or G.726, and the playback requires a different codec, perhaps a MIPS-hungry low-bit-rate vocoder? How about T.38 or G.711 pass-through fax termination?

That’s when you need HMPturbo.

HMPturbo Transcoding Subsystem (TSS) is available in two versions: one requires no additional hardware. It’s for the processing-challenged media server. Here, HMPturbo is needed to meet additional requirements, as described above. Packet buffers are sent to the HMPturbo subsystem through an easy-to-use API. The subsystem can handle, for example, in-band call-progress analysis, DTMF, real-time IP fax (G.711 or T.38) termination (and relay), and vocoder transcoding. The second version is functionally identical and exposes the same API, but uses Commetrex’ MSP-320 to really “turn on the turbo.” The same media-processing functions are available, but they are executed by the PCI board’s DSPs.

The MSP-320 includes two TI TMS320C6201 DSPs, each with the resources to process 20 G.729a/b streams or approximately the same number of V.17 fax-modem receivers.



Transcoding Capabilities

Streams can be transcoding by specifying a decoder-encoder pair. Not all combinations are allowed, for example, G.723.1 decode and DTMF decode, while G.711 decode and DTMF decode are allowed. The following media technologies are available:

System Overview

HMPturbo utilizes Commetrex’ acclaimed OpenMedia media-stream environment to host the Transcoding Subsystem (TSS). A strong feature of OpenMedia is that it renders the stream-processing execution environment transparent to the controlling application. TSS leverages this feature is by the to implement host- and hardware-based versions of HMPturbo.

The hardware-based version offloads media-processing resource requirements onto an adjunct processor. The first hardware version of HMPturbo utilizes the Commetrex MSP-320 PCI card, which processes 40 G.729a/b streams. A subsequent version will utilize the MSP-640, which processes 300 such streams. As the specifics of the signal-processing compute resource are hidden from the client, the system can be easily modified to utilize other resources.

OpenMedia is an open-architecture media-streams environment (http://www.msp.org/), as shown below.


The TSS MSP Application, at the top of the above figure, receives commands from the client API and sends the appropriate lower-level commands to the execution environments using the OpenMedia M.100 API. The Session Manager then routes the command to the proper Execution Environment.

Since media data are exchanged between the client and the TSS Application via the TSS API, the TSS application is required to source the stream data for the Execution Environments, as shown in the figure below.

RTP media streams are brought into the system by host-based telephony framework, and sent to the TSS, if necessary. The transcoded result is then typically sent to a message store. The process is reversed to send/play a message.


The client application is provided with a shared-object library or DLL that routes commands to the TSS MSP Application, shown in Figure 2. The TSS Application maps the client-API-level command to the proper OpenMedia M.100 API command, which is then routed to the Session Manager (MSES). MSES then routes the command to one of six possible execution environments, two on each of three possible boards.

MSP-320 Capacity

The total mega-cycles per second (MCPS) available on each DSP on the MSP-320 is 200, and there are two DSPs. The following table can be used to calculate the maximum number of channels of various combinations of media.

TechnologyDecode (MCPS)Encode (MCPS)
G.723.1 (6.3K)10.01.4
V.17 fax8.25.6

License Options

Commetrex offers software licenses designed to meet different needs. Typically, a user will license the HMPturbo SDK, which includes an initial system, and then use per-system/per-media licenses for recurring systems. However, for those OEMs that intend to add significant value to the underlying system, Commetrex offers paid-up and royalty-based source-code licenses.

Related Publications