BCF Library Structures

The BCF Library uses the following structures to define the Bearer Control event structure.

SiBearerControlEvnt 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;

SiBearerControlInformation Structure

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;   

SiActionIndicator Structure

typedef struct _actionIndicator          /* Action Indicator */
{
   ElmtHdr eh;                           /* element header */
   TknU8   indicator;                    /* action indicator */
   TknU8   spare;                        /* spare */
} SiActionIndicator;  

SiBearerNetworkCharacteristics Structure

typedef struct _bearerNetworkCharacteristics /* Bearer Network Connection Characteristics */
{
   ElmtHdr eh;                   /* element header */
   TknU8   characteristics;      /* Bearer Network Connection Characteristics */
   TknU8   spare;                /* spare */
} SiBearerNetworkCharacteristics;  

SiBearerControlTunnelling Structure

typedef struct _bearerControlTunnelling   /* Bearer Control Tunnelling */
{
   ElmtHdr eh;                      /* element header */
   TknU8   tunnellingIndicator;     /* Bearer Control Tunnelling Indicator */
   TknU8   spare;                   /* spare */
} SiBearerControlTunnelling;

SiBearerControlUnitIdentifier Structure

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;

SiAmrConfig Structure

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;

SiAmrCodec Structure

typedef struct _amrCodec       /* AMR  Codec */
{
   ElmtHdr eh;                 /* element header */
   SiAmrConfig amrConfig;      /* AMR Codec Config */
} SiAmrCodec;

SiG711Codec Structure

typedef struct _g711Codec          /* G711 Codec */
{
   ElmtHdr eh;                     /* element header */
} SiG711Codec;

SiMuMeCodec Structure

typedef struct _mumeCodec     /* MuMe Codec */
{
   ElmtHdr  eh;               /* element header */
   TknU8    bwm;              /* B/W Multiplier */
} SiMuMeCodec;

SiCodecs Structure

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;

SiBackboneNetworkIdentifier Structure

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;

SiInterworkingFunctionAddress Structure

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;

IPBCP_PARAM Structure

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  ;