Creates an MSPP media channel.
DWORD mspCreateChannel ( CTAHD ctahd, MSP_CHANNEL_ADDR* addr, MSP_CHANNEL_PARAMETER* parm, MSPHD* chnhd )
Argument |
Description |
ctahd |
Context handle used to open the MSPP service. |
addr |
Pointer to an MSP_CHANNEL_ADDR structure, as shown: typedef struct tag_MSP_CHANNEL_ADDR |
parm |
Pointer to the MSP_CHANNEL_PARAMETER structure, as shown: typedef struct tag_MSP_CHANNEL_PARMS This structure is not required for RTP switching channels. When creating record channels, applications specify channel parameters in a MSP_VOICE_CHANNEL_PARMS structure. Since record channels only contain a single jitter filter, the application only specifies jitter parameters in the structure. |
chnhd |
Pointer to an MSPP return channel handle. |
Return value |
Description |
SUCCESS |
|
CTAERR_BAD_ARGUMENT |
A function argument includes an invalid value or a required pointer argument is NULL. |
CTAERR_INVALID_CTAHD |
The handle is invalid. |
CTAERR_INVALID_HANDLE |
An invalid handle was passed as an argument to this function. |
MSPERR_CHANNEL_NOT_DEFINED |
The MSPP channel name specified is not defined. |
Event |
Description |
MSPEVN_CREATE_CHANNEL_DONE |
Generated when an MSPP channel is created in response to mspCreateChannel. The event.value field can contain the following: CTA_REASON_FINISHED MSPRSN_FAILED_TO_ALLOCATE The MSPP service is unable to allocate on-board resources. For example, the necessary DSP resources may not be loaded, or the specified UDP port may not be available. The event.objHd indicates the chnhd of the created channel. |
When invoking mspCreateChannel, applications specify a context handle (ctahd), channel type, and the board number for the channel. When it creates the MSPP channel, the MSPP service returns a unique channel object handle (chnhd) that the application can use to configure and control the channel. Once you have created an MSPP channel and enabled it, you can use it to connect MSPP endpoints to create a media path for voice or fax data. For more information, refer to Creating MSPP channels.
Supported MSPP channels include:
Channel ID |
Description |
FaxRelayFullDuplex |
Processes a full duplex data stream by modulating and demodulating T.38 fax data. |
G711DecodeSimplex |
Processes a simplex data stream by decoding voice data according to the G.711 algorithm. |
G711EncodeSimplex |
Processes a simplex data stream by encoding voice data according to the G.711 algorithm. |
G711FullDuplex |
Processes a full duplex data stream by encoding and decoding voice data according to the G.711 algorithm. |
G711RecordChannel |
Performs jitter buffering and transfers an incoming data stream from an RTP endpoint to a record filter. G.711 recorder channels contain only a jitter filter and can be used with ADI record functions when there is no need to decode the incoming data stream. G.711 recorder channels do not require DSP resources. |
G723DecodeSimplex |
Processes a simplex data stream by decoding voice data according to the G.723.1/A algorithm. |
G723EncodeSimplex |
Processes a simplex data stream by encoding voice data according to the G.723.1/A algorithm. |
G723FullDuplex |
Processes a full duplex data stream by encoding and decoding voice data according to the G.723.1/A algorithm. |
G723RecordChannel |
Performs jitter buffering and transfers an incoming data stream from an RTP endpoint to a record filter. G.723.1 recorder channels contain only a jitter filter and can be used with ADI record functions when there is no need to decode the incoming data stream. G.723.1 recorder channels do not require DSP resources. |
G726DecodeSimplex |
Processes a simplex data stream by decoding voice data according to the G.726 algorithm. |
G726EncodeSimplex |
Processes a simplex data stream by encoding voice data according to the G.726 algorithm. |
G726FullDuplex |
Processes a full duplex data stream by encoding and decoding voice data according to the G.726 algorithm. |
G726RecordChannel |
Performs jitter buffering and transfers an incoming data stream from an RTP endpoint to a record filter. G.726 recorder channels contain only a jitter filter and can be used with ADI record functions when there is no need to decode the incoming data stream. G.726 recorder channels do not require DSP resources. |
G729DecodeSimplex |
Processes a simplex data stream by decoding voice data according to the G.729A/B algorithm. |
G729EncodeSimplex |
Processes a simplex data stream by encoding voice data according to the G.729A/B algorithm. |
G729FullDuplex |
Processes a full duplex data stream by encoding and decoding voice data according to the G.729A/B algorithm. |
G729RecordChannel |
Performs jitter buffering and transfers an incoming data stream from an RTP endpoint to a record filter. G.729 recorder channels contain only a jitter filter and can be used with ADI record functions when there is no need to decode the incoming data stream. G.729 recorder channels do not require DSP resources. |
RTPSwitchingSimplex |
Conveys a simplex data stream between two RTP endpoints. The channel does not process the data, but merely passes the data on to the next RTP endpoint. Applications can combine two simplex switch channels to create a duplex data path. |
mspDestroyChannel, mspDisableChannel, mspEnableChannel, mspSendCommand
mspChanAddr.nBoard = DEFAULT_BOARDID;
mspChanAddr.channelType = G711FullDuplex;
ret = mspCreateChannel( hCta, &mspChanAddr, NULL, &hChan );
if (ret != SUCCESS)
return FAILURE;
ctaWaitEvent( hCtaQueHd, &Event, CTA_WAIT_FOREVER );
// Check the reason code
if ( Event.id != MSPEVN_CREATE_CHANNEL_DONE ||
Event.value != CTA_REASON_FINISHED )
return FAILURE;