The BCF Library uses the following structures to define the Bearer Control event structure.
typedef struct _siBearerControlEvnt /* Bearer Control event */
{
SiActionIndicator actionIndicator; /* Action Indicator */
SiCodecs codecsList; /* Codecs List */
SiBearerNetworkCharacteristics networkCharacteristics; /*Bearer Network Connection Characteristics*/
SiBearerControlInformation bearerControlInfo; /* Bearer Control Information */
SiBearerControlTunnelling bearerTunnelling; /* Bearer Control Tunnelling */
SiBearerControlUnitIdentifier bearerUnitId; /* Bearer Control Unit Identifier */
SiCodecs singleCodec; /* Single Codec */
SiBackboneNetworkIdentifier backboneNetworkId; /* Backbone Network Connection Identifier */
SiInterworkingFunctionAddress iwfAddress; /* Interworking Function Address */
} SiBearerControlEvnt;
typedef struct _bearerControlInformation /* Bearer Control Information*/
{
ElmtHdr eh; /* element header */
TknU8 bctpBvei; /* BCTP Version Error Indicator */
TknU8 bctpTpei; /* BCTP Tunnelled Protocol Error Indicator */
TknU8 ipbcpMessageType; /* IPBCP Message Type*/
TknU8 srcPayloadType; /* PayloadType of the RTP media stream range = 96 to 127 */
TknU8 ipbcpMimeType; /* Mime Type Identifier used to build an IPBCP message */
TknU8 spare; /* spare */
TknU16 srcRtpPort; /* source and sink UDP port of the RTP media stream */
TknU16 srcPacketizationTime; /* supported packetization time */
TknStr srcIpAddress; /* source and sink IP address of the RTP media stream */
} SiBearerControlInformation;
typedef struct _actionIndicator /* Action Indicator */
{
ElmtHdr eh; /* element header */
TknU8 indicator; /* action indicator */
TknU8 spare; /* spare */
} SiActionIndicator;
typedef struct _bearerNetworkCharacteristics /* Bearer Network Connection Characteristics */
{
ElmtHdr eh; /* element header */
TknU8 characteristics; /* Bearer Network Connection Characteristics */
TknU8 spare; /* spare */
} SiBearerNetworkCharacteristics;
typedef struct _bearerControlTunnelling /* Bearer Control Tunnelling */
{
ElmtHdr eh; /* element header */
TknU8 tunnellingIndicator; /* Bearer Control Tunnelling Indicator */
TknU8 spare; /* spare */
} SiBearerControlTunnelling;
typedef struct _bearerControlUnitIdentifier /* Bearer Control Unit Identifier */
{
ElmtHdr eh; /* element header */
TknU32 networkId; /* Network ID – Not supported in the current version */
TknU32 localBcuId; /* local BCU-ID */
} SiBearerControlUnitIdentifier;
typedef struct _amrConfig * AMR Codec Config */
{
TknU8 amrCodecConfigACS; /* Active Codec Set */
TknU8 amrCodecConfigSCS; /* Supported Codec Set */
TknU8 amrCodecConfigMACS; /* Maximal number of codec modes in the ACS */
TknU8 amrCodecConfigOM; /* Optimisation Mode */
} SiAmrConfig;
typedef struct _amrCodec /* AMR Codec */
{
ElmtHdr eh; /* element header */
SiAmrConfig amrConfig; /* AMR Codec Config */
} SiAmrCodec;
typedef struct _g711Codec /* G711 Codec */
{
ElmtHdr eh; /* element header */
} SiG711Codec;
typedef struct _mumeCodec /* MuMe Codec */
{
ElmtHdr eh; /* element header */
TknU8 bwm; /* B/W Multiplier */
} SiMuMeCodec;
typedef struct _codecs /* Supported Codecs */
{
ElmtHdr eh; /* element header */
SiAmrCodec amrCodec; /* Amr Codec */
SiAmrCodec amr2Codec; /* Amr2 Codec */
SiG711Codec g711Codec; /* G711 Codec */
SiMuMeCodec mumeCodec; /* MuMe Codec */
SiMuMeCodec mume2Codec; /* MuMe2 Codec */
} SiCodecs;
typedef struct _backboneNetworkIdentifier /* Backbone Network Connection Identifier */
{
ElmtHdr eh; /* element header */
TknU8 spare; /* spare */
TknU8 length; /* length of Connextion ID field (max is 4 octets) */
TknU32 connectionId; /* Connection ID */
} SiBackboneNetworkIdentifier;
typedef struct _interworkingFunctionAddress /* Interworking Function Address */
{
ElmtHdr eh; /* element header */
TknStr x213Address; /* Interworking Function Address formatted according to */
/* Annex A/X.213 | ISO/IEC 8348 */
} SiInterworkingFunctionAddress;
Use the IPBCP_PARAM structure to describe the IPBCP parameters:
typedef struct
{
int srcPayloadType; /* RTP PayloadType of media stream */
char srcIpAddress[20]; /* source and sink IP address of the RTP media stream */
int srcRtpPort; /* source and sink UDP Port of the RTP media stream */
int srcPacketizationTime; /* supported packetization time */
int ipbcpMessageType; /* IPBCP Messages Type */
tMimeType ipbcpMimeType; /* Mime Type used to build an IPBCP message */
} IPBCP_PARAM ;