Creating MSPP endpoints

An MSPP endpoint provides entry and exit points through which data can flow across a Fusion gateway. Endpoints perform the following operations with the data that passes through them:

The MSPP API provides a standard set of endpoints from which to build MSPP connections. Each type of endpoint is capable of sending and receiving data to and from a particular network-specific format.

Available endpoint types include:

Endpoint

Description

DS0

Receive and send data to and from a PCM source (for example, a PSTN).

RTP IPv4

Receive and send data (time stamped with RTP header) to and from the IPv4 network. Endpoints can be simplex or duplex.

RTP IPv6

Receive and send data (time stamped with RTP header) to and from the IPv6 network. Endpoints can be simplex or duplex.

TPKT

Receive and send data to and from an IP network while multiplexing and de-multiplexing packets according to the ThroughPacket algorithm. For more information about ThroughPacket multiplexing, refer to the Dialogic® NaturalAccess™ Fusion VoIP API Developer's Manual.

T38UDP

Receive and send data to and from the IP network for T.38 fax channels.

Using mspCreateEndpoint to create endpoints

Applications create MSPP endpoints by invoking mspCreateEndpoint. This function requires a ctahd that has been used to open an MSPP API instance (refer to Opening MSPP API instances).

When using mspCreateEndpoint, applications specify the board number on which to create the endpoint, a filter ID that indicates the type of endpoint to create, and the timeslot used to open the MSPP API on the context. The application then specifies an address structure and a parameter structure.

The address structure provides basic configuration information about the endpoint, usually the source and destination address for transferred data. The parameter structure specifies the features that are available on the MSPP endpoint.

The following table provides an overview of the information provided with mspCreateEndpoint for different types of MSPP endpoints (RTP IPv4 and RTP IPv6 endpoints are available in simplex and full duplex form):

Endpoint type

Address structure

Parameter structure

DS0

  • Board number

  • Timeslot

  • Type of data transmission: voice or fax

RTP IPv4

  • Board number

  • Source UDP port and IPv4 address

  • Destination UDP port and IPv4 address

  • Board interface number

For simplex endpoints, some of these fields are left NULL because they are inapplicable (for example, the Destination address field is irrelevant for simplex receive endpoints).

  • IPv4 type of service information

  • Number of frames assembled in each packet payload

  • RTP timestamp frequency

  • RTCP session parameters

  • Types of unsolicited events the endpoint returns

RTP IPv6

  • Board number

  • Source UDP port and IPv6 address

  • Destination UDP port and IPv6 address

  • Board interface number

For simplex endpoints, some of these fields are left NULL because they are inapplicable (for example, the Destination address field is irrelevant for simplex receive endpoints).

  • Traffic class of the IP packets transferred through the endpoint

  • Flow label

  • Number of frames assembled in each packet payload

  • RTP timestamp frequency

  • RTCP session parameters

  • Types of unsolicited events the endpoint returns

TPKT

  • Board number

IPv6 is not currently supported.

  • Remote and local session ID

  • Destination gateway IPv4 address

  • Vocoder type

T38UDP

  • Board number

  • Source port and IPv4 address

  • Destination port and IPv4 address

IPv6 is not currently supported.

  • IFP decoder parameters

  • IFP encoder parameters

  • UDPTL decoder parameters

  • UDPTL encoder parameters

When an application creates MSPP endpoints, the MSPP API returns a unique endpoint object handle (ephd) that the application can use to configure and control the endpoint.

When an application creates MSPP endpoints with mspCreateEndpoint, it uses an address structure to specify the address information associated with the endpoint. The following example shows the DS0_ENDPOINT_ADDR structure:

typedef struct tag_DS0_ENDPOINT_ADDR
{
  /* Address attributes */   
  INT32           nTimeslot;           /* Timeslot address */
} DS0_ENDPOINT_ADDR;

While creating MSPP endpoints, applications also specify parameter structures that define endpoint behavior. The following example shows the DS0_ENDPOINT_PARMS structure:

typedef struct tag_DS0_ENDPOINT_PARMS
{
DWORD size
  MSP_MEDIA  media; 
} DS0_ENDPOINT_PARMS;

The DS0_ENDPOINT_PARMS structure defines whether the DS0 endpoint transfers data in voice or fax mode. Parameter structures for RTP, TPKT, and T38UDP endpoints contain considerably more information.

When creating an endpoint, the application can specify the value 0xFFFF for 16-bit values or 0xFFFFFFFF for 32-bit values (or -1 in decimal format) to accept the default value for any parameters within the endpoint parameter structure. Otherwise, the MSPP API expects the application to provide valid settings for each parameter in the endpoint parameter structure.

When the endpoint is connected, it processes data according to the settings specified when it was created.

For more information, refer to Overview of endpoint structures.

Disabling and enabling MSPP endpoints

By default, when an application creates an endpoint, the endpoint is enabled and ready to transfer information between the network and an MSPP channel. However, the application can use mspDisableEndpoint to halt the flow of data through a particular endpoint. Although it usually makes more sense to stop the flow of data by disabling the channel that connects two endpoints, mspDisableEndpoint can also be used to interrupt the flow of data through an MSPP connection.

Applications can restart the flow of data through an enabled endpoint by invoking mspEnableEndpoint.