# Performing NMS native play and record

NMS native play and record enables applications to maintain the quality of audio data played and recorded over network interfaces while minimizing the encoding and decoding resources needed to process the audio data.

Applications can use the MSPP API to perform the following tasks with NMS native play and record:

- Record voice data from RTP data streams transferred through MSPP service endpoints.

- Play media recorded directly from RTP streams to PSTN (DS0) ports.

- Play and record media streams that contain silence, SID frames, RFC 2833 markers, and lost frame markers.

- Perform silence and DTMF detection while recording decoded RTP streams.

CG boards support NMS native play and record functionality.

## NMS native play and record advantages

When an application plays or records audio data over a TDM or IP network, typically the application must encode or decode the data. In TDM networks, audio data is normally coded in either mu-law or A-law format. In IP networks, audio data is often encoded in a compressed format such as G.711 or G.723.1. Encoding or decoding the audio stream can consume system resources and incrementally degrade the quality of the data.

When an application records audio data using native record, the audio is stored in the NMS EDTX (extended discontinuous transmission) format without encoding the data. The application can then either play the audio data directly to a DS0 or network interface or transfer the data to the interface through an encoder or decoder.

## Implementing NMS native play and record

NMS native play and record uses an NMS proprietary format called EDTX (extended discontinuous transmission) to store and play back codec frames to and from RTP endpoints. EDTX formatting incorporates an optional silence compression scheme that uses silence frames in the recorded stream to indicate periods of silence.

Native play and record supports the following encoding types:

- G.711A, G.711U

- G.723.1

- G.726

- G.729A/B

For more information about supported vocoder types, refer to the Fusion vocoder readme.txt files.

Applications can implement native play and record in the following ways:

Implementation | Description
Native play | Application plays a stream of audio data from an ADI port to an RTP endpoint.
Native record with inband silence and DTMF detection | Application receives and records a stream of audio data from an RTP endpoint, and in parallel, decodes the data from its network format (for example, G.711A or G.723.1). The application also performs silence detection, DTMF detection, or both with the data.
Native record without inband silence and DTMF detection | Application receives and records a stream of audio data from an RTP endpoint. No data decoding takes place, inband silence detection is not supported, and DTMF detection is supported only through Fusion RFC 2833 support.