# MSPP API overview

The Media Stream Protocol Processing (MSPP) API provides functions for creating media channels between endpoints established at different ends of a Fusion gateway. The MSPP API enables applications to create unified voice and fax gateway applications by creating, connecting, configuring, and destroying media endpoints and channels. You can use the MSPP API with other NaturalAccess API, such as the ADI and NCC APIs, to provide an interface for PSTN call control and IVR applications.

## MSPP connections

The MSPP API provides a mechanism for configuring and managing service components, eliciting runtime query information, and sending runtime commands to MSPP API objects. The MSPP API programming model provides three basic components:

Component | Description
Endpoints | Entry and exit points for data that passes through MSPP channels.
Channels | Linked sets of functions that transform a real-time flow of voice or fax data from one network format to another. Channels can either carry data in two directions (duplex) or one direction (simplex).
Connections | One-way or two-way data streams through the gateway created by associating MSPP endpoints with MSPP channels. When connections are enabled, data flows through the associated channels to the connected endpoints.

When an application connects an MSPP channel to two MSPP endpoints, it forms a complete MSPP connection. Enabling the connection allows data to flow through the gateway from one network interface to another. The following illustration shows MSPP API connection components:

## MSPP filters

MSPP connections consist of linked sets of MSPP filters that transform a real-time flow of voice or fax data from one format to another. An MSPP filter is a subset of operations that transforms the data that flows through an MSPP connection. Endpoints consist of a single filter that translates between a network specific transport format (for example, DS0 or IP format) and a media-specific format (for example, T.38 fax, G.711 voice). A channel consists one or more MSPP filters that perform specific tasks with data that moves between two endpoints.

For example, G.723.1 duplex voice channels use filters to encode and decode (according to the G.723.1 algorithm) a bidirectional flow of data as the data moves between a PSTN and packet network. G.723.1 duplex voice channels also use a jitter filter to perform packet reordering and provide a buffering mechanism for smoothing jitter in the packet stream. Once a connection is created, depending on the characteristics of the filters that make up the connection, the application can command and query individual filters within the connection. In this way, the application can manage and monitor the flow of data through the connection. The following illustration shows MSPP API endpoint and channel filters:

For more information, refer to MSPP endpoint filters or MSPP channel filters.