Dialogic
®
System Release 6.1 CompactPCI for Windows
®
Release Update 56
#include <stdio.h>
#include <srllib.h>
#include <ipmlib.h>
int nMulticastGroupPort = 2500;
char *szMulticastGroupAddress = "225.0.0.1";
char *szDeviceName = "ipmB1C1";
void StartMulticastClient(void)
{
int nDeviceHandle;
IPM_MEDIA_INFO MediaInfo;
// Open an IP Media Channel
nDeviceHandle = ipm_Open(szDeviceName, NULL, EV_SYNC);
if (nDeviceHandle == -1) {
printf("Failure Opening IP Media Channel %s", szDeviceName);
// Perform Error Processing
}
// Join the IP Media Channel to a Multicast Group. Note that the
// Multicast Group address is specified as the Local RTP Port Information
MediaInfo.unCount = 2;
MediaInfo.MediaData[0].eMediaType = MEDIATYPE_AUDIO_LOCAL_RTP_INFO;
MediaInfo.MediaData[0].mediaInfo.PortInfo.unPortId = nMulticastGroupPort;
strcpy(MediaInfo.MediaData[0].mediaInfo.PortInfo.cIPAddress,
szMulticastGroupAddress);
// NOTE: For Multicast Client processing, we do not need to specify
// RTCP port information
MediaInfo.MediaData[1].eMediaType = MEDIATYPE_AUDIO_LOCAL_CODER_INFO;
MediaInfo.MediaData[1].mediaInfo.CoderInfo.eCoderType =
CODER_TYPE_G711ULAW64K;
MediaInfo.MediaData[1].mediaInfo.CoderInfo.eFrameSize =
(eIPM_CODER_FRAMESIZE)30;
MediaInfo.MediaData[1].mediaInfo.CoderInfo.unFramesPerPkt = 1;
MediaInfo.MediaData[1].mediaInfo.CoderInfo.eVadEnable = CODER_VAD_DISABLE;
MediaInfo.MediaData[1].mediaInfo.CoderInfo.unCoderPayloadType = 0;
MediaInfo.MediaData[1].mediaInfo.CoderInfo.unRedPayloadType = 0;
// In Multicast Client mode, we are only going to receive data and will
// not transmit any data. Therefore, we don't need to specify any Remote
// RTP/RTCP or Coder settings.
// Start the Multicast Client Session
if (ipm_StartMedia(nDeviceHandle,
&MediaInfo,
DATA_MULTICAST_CLIENT,
EV_SYNC) == -1) {
printf("ipm_StartMedia() failed for device=\"%s\" with error=%d\n",
ATDV_NAMEP(nDeviceHandle), ATDV_LASTERR(nDeviceHandle));
// Perform Error Processing
}
/*
.
.
. Continue Processing
.
.
*/
}
Comentarios a estos manuales