92 Voice API Programming Guide — June 2005
Recording and Playback
Subsequent pairs of the code words are packed in the same way into successive octets, with the
first code word of each pair placed in the least significant four bits of the octet. It is preferable
to extend the voice sample with silence such that the encoded value consists of an even number
of code words. However, if the voice sample consists of an odd number of code words, then the
last code word will be discarded.
The G.726 encoding for VPIM is illustrated here:
+--+--+--+--+--+--+--+--+
|B3|B2|B1|B0|A3|A2|A1|A0|
+--+--+--+--+--+--+--+--+
MSB -> | 7| 6| 5| 4| 3| 2| 1| 0| <- LSB
+--+--+--+--+--+--+--+--+
32K ADPCM / Octet Mapping
For more information on G.726 and VPIM, see RFC 3802 on the Internet Engineering Task Force
website at http://www.ietf.org.
To use the G.726 voice coder, specify the coder in the DX_XPB structure. Then use
dx_playiottdata( ) and dx_reciottdata( ) functions to play and record with this coder.
Alternatively, you can also use dx_playvox() and dx_recvox( ) convenience functions.
To determine the voice resource handles used with the play and record functions, use SRL device
mapper functions to return information about the structure of the system, such as a list of all
physical boards in a system, a list of all virtual boards on a physical board, and a list of all
subdevices on a virtual board.
See the Voice API Library Reference for more information on voice functions and data structures.
See the Standard Runtime Library API Library Reference for more information on SRL functions.
8.7 Transaction Record
Transaction record enables the recording of a two-party conversation by allowing two time-division
multiplexing (TDM) bus time slots from a single channel to be recorded. This feature is useful for
call center applications where it is necessary to archive a verbal transaction or record a live
conversation. A live conversation requires two time slots on the TDM bus, but Intel voice boards
today can only record one time slot at a time. No loss of channel density is realized with this
feature. Voice activity on two channels can be summed and stored in a single file, or in a
combination of files, devices, and/or memory.
Note: Transaction record is not supported on all boards. For a list of board support, see the Release Guide
for your system release.
On DM3 boards as well as Springware boards on Windows, use the following function for
transaction record:
dx_mreciottdata()
records voice data from two channels to a data file, memory, or custom device