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:
Incoming data: Translate data between a network transport format (for example, RTP or DS0) and the Dialogic media transport format, so that MSPP channels can receive the data, process it, and pass it on.
Outgoing data: Translate processed data between the Dialogic media transport format and a network transport format so that the data can be transferred to the network.
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. |
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 |
|
|
RTP IPv4 |
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). |
|
RTP IPv6 |
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). |
|
TPKT |
IPv6 is not currently supported. |
|
T38UDP |
IPv6 is not currently supported. |
|
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.
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.