727 lines
29 KiB
C
727 lines
29 KiB
C
/*
|
|
* Copyright (C) 2004-2005 by Objective Systems, Inc.
|
|
*
|
|
* This software is furnished under an open source license and may be
|
|
* used and copied only in accordance with the terms of this license.
|
|
* The text of the license may generally be found in the root
|
|
* directory of this installation in the COPYING file. It
|
|
* can also be viewed online at the following URL:
|
|
*
|
|
* http://www.obj-sys.com/open/license.html
|
|
*
|
|
* Any redistributions of this file including modified versions must
|
|
* maintain this copyright notice.
|
|
*
|
|
*****************************************************************************/
|
|
/**
|
|
* @file ooCapability.h
|
|
* This file contains Capability management functions.
|
|
*/
|
|
#ifndef OO_CAPABILITY_H_
|
|
#define OO_CAPABILITY_H_
|
|
#include "ootypes.h"
|
|
#include "ooasn1.h"
|
|
|
|
|
|
#define OO_GSMFRAMESIZE 33 /* standard frame size for gsm is 33 bytes */
|
|
|
|
#define OORX (1<<0)
|
|
#define OOTX (1<<1)
|
|
#define OORXANDTX (1<<2)
|
|
#define OORXTX (1<<3) /* For symmetric capabilities */
|
|
/* Various types of caps. Note that not all
|
|
supported */
|
|
typedef enum OOCapabilities{
|
|
OO_CAP_AUDIO_BASE = 0,
|
|
OO_G711ALAW64K = 2,
|
|
OO_G711ALAW56K = 3,
|
|
OO_G711ULAW64K = 4,
|
|
OO_G711ULAW56K = 5,
|
|
OO_G722_64k = 6,
|
|
OO_G722_56k = 7,
|
|
OO_G722_48k = 8,
|
|
OO_G7231 = 9,
|
|
OO_G728 = 10,
|
|
OO_G729 = 11,
|
|
OO_G729A = 12,
|
|
OO_IS11172_AUDIO = 13,
|
|
OO_IS13818_AUDIO = 14,
|
|
OO_G729B = 15,
|
|
OO_G729AB = 16,
|
|
OO_G7231C = 17,
|
|
OO_GSMFULLRATE = 18,
|
|
OO_GSMHALFRATE = 19,
|
|
OO_GSMENHANCEDFULLRATE = 20,
|
|
OO_GENERICAUDIO = 21,
|
|
OO_G729EXT = 22,
|
|
OO_AUDIO_VBD = 23,
|
|
OO_AUDIOTELEPHONYEVENT = 24,
|
|
OO_AUDIO_TONE = 25,
|
|
OO_EXTELEM1 = 26,
|
|
OO_CAP_VIDEO_BASE = 27,
|
|
OO_NONSTDVIDEO = 28,
|
|
OO_H261VIDEO = 29,
|
|
OO_H262VIDEO = 30,
|
|
OO_H263VIDEO = 31,
|
|
OO_IS11172VIDEO = 32, /* mpeg */
|
|
OO_GENERICVIDEO = 33,
|
|
OO_EXTELEMVIDEO = 34
|
|
} OOCapabilities;
|
|
|
|
|
|
/*DTMF capabilities*/
|
|
#define OO_CAP_DTMF_RFC2833 (1<<0)
|
|
#define OO_CAP_DTMF_Q931 (1<<1)
|
|
#define OO_CAP_DTMF_H245_alphanumeric (1<<2)
|
|
#define OO_CAP_DTMF_H245_signal (1<<3)
|
|
|
|
/**
|
|
* This structure defines the preference order for capabilities.
|
|
*
|
|
*/
|
|
typedef struct OOCapPrefs {
|
|
int order[20];
|
|
int index;
|
|
}OOCapPrefs;
|
|
|
|
typedef struct OOCapParams {
|
|
int txframes; /*!< Number of frames per packet for transmission */
|
|
int rxframes; /*!< Number of frames per packet for reception */
|
|
OOBOOL silenceSuppression;
|
|
} OOCapParams;
|
|
|
|
typedef struct OOGSMCapParams {
|
|
unsigned txframes;
|
|
unsigned rxframes;
|
|
OOBOOL scrambled;
|
|
OOBOOL comfortNoise;
|
|
} OOGSMCapParams;
|
|
|
|
typedef enum OOPictureFormat{
|
|
OO_PICFORMAT_SQCIF,
|
|
OO_PICFORMAT_QCIF,
|
|
OO_PICFORMAT_CIF,
|
|
OO_PICFORMAT_CIF4,
|
|
OO_PICFORMAT_CIF16
|
|
}OOPictureFormat;
|
|
|
|
typedef struct OOH263CapParams {
|
|
enum OOPictureFormat picFormat; /* !< One of sqcif, qcif, cif, cif4, cif16*/
|
|
unsigned MPI; /* !< Minimum Picture Interval */
|
|
unsigned maxBitRate; /* !< Maximum bit rate for transmission/reception in units of 100 bits/sec */
|
|
} OOH263CapParams;
|
|
|
|
struct OOH323CallData;
|
|
struct OOLogicalChannel;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* This callback is used for starting media receive channel. This callback
|
|
* function is triggered when receive media channel has to be started.
|
|
* @param call Call for which receive media channel has to be started.
|
|
* @param pChannel Channel details. This structure has important information
|
|
* such as rtp ip:port and capability describing media type
|
|
* to be received.
|
|
* @return OO_OK, on success. OO_FAILED, on failure
|
|
*/
|
|
typedef int (*cb_StartReceiveChannel)
|
|
(struct OOH323CallData *call, struct OOLogicalChannel *pChannel);
|
|
|
|
|
|
/**
|
|
* This callback is used for starting media transmit channel. This callback
|
|
* function is triggered when transmit media channel has to be started.
|
|
* @param call Call for which transmit media channel has to be started.
|
|
* @param pChannel Channel details. This structure has important information
|
|
* such as rtp ip:port and capability describing media type
|
|
* to be transmitted.
|
|
* @return OO_OK, on success. OO_FAILED, on failure
|
|
*/
|
|
typedef int (*cb_StartTransmitChannel)
|
|
(struct OOH323CallData *call, struct OOLogicalChannel *pChannel);
|
|
|
|
/**
|
|
* This callback is used for stopping media receive channel. This callback
|
|
* function is triggered when receive media channel has to be stopped.
|
|
* @param call Call for which receive media channel has to be stopped.
|
|
* @param pChannel Channel details. This structure has important information
|
|
* such as rtp ip:port and capability describing media type
|
|
* being received.
|
|
* @return OO_OK, on success. OO_FAILED, on failure
|
|
*/
|
|
typedef int (*cb_StopReceiveChannel)
|
|
(struct OOH323CallData *call, struct OOLogicalChannel *pChannel);
|
|
|
|
/**
|
|
* This callback is used for stopping media transmit channel. This callback
|
|
* function is triggered when transmit media channel has to be stopped.
|
|
* @param call Call for which transmit media channel has to be stopped.
|
|
* @param pChannel Channel details. This structure has important information
|
|
* such as rtp ip:port and capability describing media type
|
|
* being transmitted.
|
|
* @return OO_OK, on success. OO_FAILED, on failure
|
|
*/
|
|
typedef int (*cb_StopTransmitChannel)
|
|
(struct OOH323CallData *call, struct OOLogicalChannel *pChannel);
|
|
|
|
typedef enum OOCapType {
|
|
OO_CAP_TYPE_AUDIO,
|
|
OO_CAP_TYPE_VIDEO,
|
|
OO_CAP_TYPE_DATA
|
|
} OOCapType;
|
|
|
|
/**
|
|
* Structure to store information related to end point
|
|
* capability
|
|
*/
|
|
typedef struct ooH323EpCapability {
|
|
int dir;
|
|
int cap;
|
|
OOCapType capType;
|
|
void *params;
|
|
cb_StartReceiveChannel startReceiveChannel;
|
|
cb_StartTransmitChannel startTransmitChannel;
|
|
cb_StopReceiveChannel stopReceiveChannel;
|
|
cb_StopTransmitChannel stopTransmitChannel;
|
|
struct ooH323EpCapability *next;
|
|
} ooH323EpCapability;
|
|
|
|
|
|
|
|
|
|
#ifndef EXTERN
|
|
#if defined (MAKE_DLL)
|
|
#define EXTERN __declspec(dllexport)
|
|
#else
|
|
#define EXTERN
|
|
#endif /* MAKE_DLL */
|
|
#endif /* EXTERN */
|
|
|
|
/**
|
|
* @defgroup capmgmt Capability Management
|
|
* @{
|
|
*/
|
|
|
|
/**
|
|
* This function is used to add rfc2833 based dtmf detection capability
|
|
* @param call Call if enabling for call, else null for
|
|
* endpoint.
|
|
* @param dynamicRTPPayloadType dynamicRTPPayloadType to be used.
|
|
* @return OO_OK, on success. OO_FAILED, on failure.
|
|
*/
|
|
EXTERN int ooCapabilityEnableDTMFRFC2833
|
|
(struct OOH323CallData *call, int dynamicRTPPayloadType);
|
|
|
|
/**
|
|
* This function is used to remove rfc2833 dtmf detection capability.
|
|
* @param call Handle to call, if disabling for the call, else NULL
|
|
* for end-point.
|
|
* @return OO_OK, on success. OO_FAILED, on failure.
|
|
*/
|
|
EXTERN int ooCapabilityDisableDTMFRFC2833(struct OOH323CallData *call);
|
|
|
|
|
|
/**
|
|
* This function is used to enable support for H.245 based alphanumeric dtmf
|
|
* capability.
|
|
* @param call Handle to call, if enabling for the call, else NULL
|
|
* for end-point.
|
|
* @return OO_OK, on success. OO_FAILED, on failure.
|
|
*/
|
|
EXTERN int ooCapabilityEnableDTMFH245Alphanumeric(struct OOH323CallData *call);
|
|
|
|
/**
|
|
* This function is used to disable support for H.245 based alphanumeric dtmf
|
|
* capability.
|
|
* @param call Handle to call, if disabling for the call, else NULL
|
|
* for end-point.
|
|
* @return OO_OK, on success. OO_FAILED, on failure.
|
|
*/
|
|
EXTERN int ooCapabilityDisableDTMFH245Alphanumeric
|
|
(struct OOH323CallData *call);
|
|
|
|
/**
|
|
* This function is used to enable support for H.245 based signal dtmf
|
|
* capability.
|
|
* @param call Handle to call, if enabling for the call, else NULL
|
|
* for end-point.
|
|
* @return OO_OK, on success. OO_FAILED, on failure.
|
|
*/
|
|
EXTERN int ooCapabilityEnableDTMFH245Signal(struct OOH323CallData *call);
|
|
|
|
/**
|
|
* This function is used to disable support for H.245 based signal dtmf
|
|
* capability.
|
|
* @param call Handle to call, if disabling for the call, else NULL
|
|
* for end-point.
|
|
* @return OO_OK, on success. OO_FAILED, on failure.
|
|
*/
|
|
EXTERN int ooCapabilityDisableDTMFH245Signal(struct OOH323CallData *call);
|
|
|
|
/**
|
|
* This function is used to enable support for dtmf using Q.931 Keypad IE.
|
|
* @param call Handle to call, if enabling for the call, else NULL
|
|
* for end-point.
|
|
* @return OO_OK, on success. OO_FAILED, on failure.
|
|
*/
|
|
EXTERN int ooCapabilityEnableDTMFQ931Keypad(struct OOH323CallData *call);
|
|
|
|
/**
|
|
* This function is used to disable support for dtmf using Q.931 Keypad IE.
|
|
* @param call Handle to call, if disabling for the call, else NULL
|
|
* for end-point.
|
|
* @return OO_OK, on success. OO_FAILED, on failure.
|
|
*/
|
|
EXTERN int ooCapabilityDisableDTMFQ931Keypad(struct OOH323CallData *call);
|
|
|
|
/**
|
|
* This function is used to add simple capabilities which have only rxframes
|
|
* and txframes parameters to the endpoint or call.(ex. G711, G728, G723.1,
|
|
* G729)
|
|
* @param call Handle to a call. If this is not Null, then
|
|
* capability is added to call's remote enpoint
|
|
* capability list, else it is added to local H323
|
|
* endpoint list.
|
|
* @param cap Type of G711 capability to be added.
|
|
* @param txframes Number of frames per packet for transmission.
|
|
* @param rxframes Number of frames per packet for reception.
|
|
* @param silenceSuppression Indicates support for silence suppression.
|
|
* Used only in case of g7231, otherwise ignored.
|
|
* @param dir Direction of capability.OORX, OOTX, OORXANDTX
|
|
* @param startReceiveChannel Callback function to start receive channel.
|
|
* @param startTransmitChannel Callback function to start transmit channel.
|
|
* @param stopReceiveChannel Callback function to stop receive channel.
|
|
* @param stopTransmitChannel Callback function to stop transmit channel.
|
|
* @param remote TRUE, if adding call's remote capability.
|
|
*
|
|
* @return OO_OK, on success. OO_FAILED, on failure.
|
|
*/
|
|
EXTERN int ooCapabilityAddSimpleCapability
|
|
(struct OOH323CallData *call, int cap, int txframes, int rxframes,
|
|
OOBOOL silenceSuppression, int dir,
|
|
cb_StartReceiveChannel startReceiveChannel,
|
|
cb_StartTransmitChannel startTransmitChannel,
|
|
cb_StopReceiveChannel stopReceiveChannel,
|
|
cb_StopTransmitChannel stopTransmitChannel,
|
|
OOBOOL remote);
|
|
|
|
|
|
/**
|
|
* This is an internal helper function which is used to add a GSM capability
|
|
* to local endpoints capability list or to remote endpoints capability list or
|
|
* to a call's capability list.
|
|
* @param call Handle to a call. If this is not Null, then
|
|
* capability is added to call's remote enpoint
|
|
* capability list, else it is added to local H323
|
|
* endpoint list.
|
|
* @param cap Type of GSM capability to be added.
|
|
* @param framesPerPkt Number of GSM frames per packet.
|
|
* @param comfortNoise Comfort noise spec for the capability.
|
|
* @param scrambled Scrambled enabled/disabled for the capability.
|
|
* @param dir Direction of capability.OORX, OOTX, OORXANDTX
|
|
* @param startReceiveChannel Callback function to start receive channel.
|
|
* @param startTransmitChannel Callback function to start transmit channel.
|
|
* @param stopReceiveChannel Callback function to stop receive channel.
|
|
* @param stopTransmitChannel Callback function to stop transmit channel.
|
|
* @param remote TRUE, if adding call's remote capabilities.
|
|
*
|
|
* @return OO_OK, on success. OO_FAILED, on failure.
|
|
*/
|
|
int ooCapabilityAddGSMCapability(struct OOH323CallData *call, int cap,
|
|
unsigned framesPerPkt, OOBOOL comfortNoise,
|
|
OOBOOL scrambled, int dir,
|
|
cb_StartReceiveChannel startReceiveChannel,
|
|
cb_StartTransmitChannel startTransmitChannel,
|
|
cb_StopReceiveChannel stopReceiveChannel,
|
|
cb_StopTransmitChannel stopTransmitChannel,
|
|
OOBOOL remote);
|
|
|
|
|
|
/**
|
|
* This function is used to add H263 video capability to local endpoints
|
|
* capability list or to remote endpoints capability list or to a call's
|
|
* capability list.
|
|
* @param call Handle to a call. If this is not Null, then
|
|
* capability is added to call's remote enpoint
|
|
* capability list, else it is added to local H323
|
|
* endpoint list.
|
|
* @param sqcifMPI Minimum picture interval for encoding/decoding
|
|
* of SQCIF pictures.
|
|
* @param qcifMPI Minimum picture interval for encoding/decoding
|
|
* of QCIF pictures.
|
|
* @param cifMPI Minimum picture interval for encoding/decoding
|
|
* of CIF pictures.
|
|
* @param cif4MPI Minimum picture interval for encoding/decoding
|
|
* of CIF4 pictures.
|
|
* @param cif16MPI Minimum picture interval for encoding/decoding
|
|
* of CIF16 pictures.
|
|
* @param maxBitRate Maximum bit rate in units of 100 bits/s at
|
|
* which a transmitter can transmit video or a
|
|
* receiver can receive video.
|
|
* @param dir Direction of capability.OORX, OOTX, OORXANDTX
|
|
* @param startReceiveChannel Callback function to start receive channel.
|
|
* @param startTransmitChannel Callback function to start transmit channel.
|
|
* @param stopReceiveChannel Callback function to stop receive channel.
|
|
* @param stopTransmitChannel Callback function to stop transmit channel.
|
|
* @param remote TRUE, if adding call's remote capabilities.
|
|
*
|
|
* @return OO_OK, on success. OO_FAILED, on failure.
|
|
*/
|
|
EXTERN int ooCapabilityAddH263VideoCapability(struct OOH323CallData *call,
|
|
unsigned sqcifMPI, unsigned qcifMPI,
|
|
unsigned cifMPI, unsigned cif4MPI,
|
|
unsigned cif16MPI, unsigned maxBitRate, int dir,
|
|
cb_StartReceiveChannel startReceiveChannel,
|
|
cb_StartTransmitChannel startTransmitChannel,
|
|
cb_StopReceiveChannel stopReceiveChannel,
|
|
cb_StopTransmitChannel stopTransmitChannel,
|
|
OOBOOL remote);
|
|
|
|
|
|
/**
|
|
* This function is an helper function to ooCapabilityAddH263VideoCapability.
|
|
* @param call Handle to a call. If this is not Null, then
|
|
* capability is added to call's remote enpoint
|
|
* capability list, else it is added to local H323
|
|
* endpoint list.
|
|
* @param sqcifMPI Minimum picture interval for encoding/decoding
|
|
* of SQCIF pictures.
|
|
* @param qcifMPI Minimum picture interval for encoding/decoding
|
|
* of QCIF pictures.
|
|
* @param cifMPI Minimum picture interval for encoding/decoding
|
|
* of CIF pictures.
|
|
* @param cif4MPI Minimum picture interval for encoding/decoding
|
|
* of CIF4 pictures.
|
|
* @param cif16MPI Minimum picture interval for encoding/decoding
|
|
* of CIF16 pictures.
|
|
* @param maxBitRate Maximum bit rate in units of 100 bits/s at
|
|
* which a transmitter can transmit video or a
|
|
* receiver can receive video.
|
|
* @param dir Direction of capability.OORX, OOTX, OORXANDTX
|
|
* @param startReceiveChannel Callback function to start receive channel.
|
|
* @param startTransmitChannel Callback function to start transmit channel.
|
|
* @param stopReceiveChannel Callback function to stop receive channel.
|
|
* @param stopTransmitChannel Callback function to stop transmit channel.
|
|
* @param remote TRUE, if adding call's remote capabilities.
|
|
*
|
|
* @return OO_OK, on success. OO_FAILED, on failure.
|
|
*/
|
|
int ooCapabilityAddH263VideoCapability_helper(struct OOH323CallData *call,
|
|
unsigned sqcifMPI, unsigned qcifMPI,
|
|
unsigned cifMPI, unsigned cif4MPI,
|
|
unsigned cif16MPI, unsigned maxBitRate, int dir,
|
|
cb_StartReceiveChannel startReceiveChannel,
|
|
cb_StartTransmitChannel startTransmitChannel,
|
|
cb_StopReceiveChannel stopReceiveChannel,
|
|
cb_StopTransmitChannel stopTransmitChannel,
|
|
OOBOOL remote);
|
|
|
|
/**
|
|
* This function is used to add a audio capability to calls remote
|
|
* capability list.
|
|
* @param call Handle to the call.
|
|
* @param audioCap Handle to the remote endpoint's audio capability.
|
|
* @param dir Direction in which capability is supported by
|
|
* remote endpoint.
|
|
*
|
|
* @return OO_OK, on success. OO_FAILED, otherwise.
|
|
*/
|
|
int ooAddRemoteAudioCapability(struct OOH323CallData *call,
|
|
H245AudioCapability *audioCap, int dir);
|
|
|
|
|
|
/**
|
|
* This function is used to add a capability to call's remote capability list.
|
|
* The capabilities to be added are extracted from received TCS message.
|
|
* @param call Handle to the call.
|
|
* @param cap Handle to the remote endpoint's H245 capability.
|
|
*
|
|
* @return OO_OK, on success. OO_FAILED, otherwise.
|
|
*/
|
|
int ooAddRemoteCapability(struct OOH323CallData *call, H245Capability *cap);
|
|
|
|
/**
|
|
* This function is used to update joint capabilities for call. It checks
|
|
* whether remote capability can be supported by local capabilities for the
|
|
* call and if supported makes entry into the joint capability list for the
|
|
* call.
|
|
* @param call Handle to the call
|
|
* @param cap Remote cap which will be tested for compatibility.
|
|
*
|
|
* @return returns OO_OK, if updated else OO_FAILED;
|
|
*/
|
|
EXTERN int ooCapabilityUpdateJointCapabilities
|
|
(struct OOH323CallData* call, H245Capability *cap);
|
|
|
|
|
|
/**
|
|
* This function is used to update joint video capabilities for call. It checks
|
|
* whether remote capability can be supported by local capabilities for the
|
|
* call and if supported makes entry into the joint capability list for the
|
|
* call.
|
|
* @param call Handle to the call
|
|
* @param videoCap Remote video capability which will be tested for
|
|
* compatibility.
|
|
* @param dir Direction of the capability
|
|
*
|
|
* @return returns OO_OK, if updated else OO_FAILED;
|
|
*/
|
|
EXTERN int ooCapabilityUpdateJointCapabilitiesVideo
|
|
(struct OOH323CallData *call, H245VideoCapability *videoCap, int dir);
|
|
|
|
|
|
/**
|
|
* This function is used to update joint video H263 capabilities for call. It
|
|
* checks whether remote capability can be supported by local capabilities for
|
|
* the call and if supported makes entry into the joint capability list for the
|
|
* call.
|
|
* @param call Handle to the call
|
|
* @param pH263Cap Remote H263 video capability which will be tested for
|
|
* compatibility.
|
|
* @param dir Direction of the H263 capability
|
|
*
|
|
* @return returns OO_OK, if updated else OO_FAILED;
|
|
*/
|
|
EXTERN int ooCapabilityUpdateJointCapabilitiesVideoH263
|
|
(struct OOH323CallData *call, H245H263VideoCapability *pH263Cap, int dir);
|
|
|
|
|
|
/**
|
|
* This function is used to test whether the endpoint capability in the
|
|
* specified direction can be supported by the audio capability.
|
|
* @param call Handle to the call.
|
|
* @param epCap Endpoint capability.
|
|
* @param dataType Data type with which compatibility has to
|
|
* be tested.
|
|
* @param dir Direction indicating whether endpoint capability
|
|
* will be used for transmission or reception.
|
|
*
|
|
* @return TRUE, if compatible. FALSE, otherwise.
|
|
*/
|
|
|
|
ASN1BOOL ooCapabilityCheckCompatibility(struct OOH323CallData *call,
|
|
ooH323EpCapability *epCap,
|
|
H245DataType *dataType, int dir);
|
|
|
|
|
|
/**
|
|
* This function is used to create a audio capability structure using the
|
|
* capability type.
|
|
* @param epCap Capability.
|
|
* @param pctxt Handle to OOCTXT which will be used to allocate memory
|
|
* for new audio capability.
|
|
* @param dir Direction in which the newly created capability will be
|
|
* used.
|
|
*
|
|
* @return Newly created audio capability on success, NULL on
|
|
* failure.
|
|
*/
|
|
struct H245AudioCapability* ooCapabilityCreateAudioCapability
|
|
(ooH323EpCapability* epCap, OOCTXT *pctxt, int dir);
|
|
|
|
/**
|
|
* This function is used to create a video capability structure using the
|
|
* capability type.
|
|
* @param epCap Capability.
|
|
* @param pctxt Handle to OOCTXT which will be used to allocate memory
|
|
* for new video capability.
|
|
* @param dir Direction in which the newly created capability will be
|
|
* used.
|
|
*
|
|
* @return Newly created video capability on success, NULL on
|
|
* failure.
|
|
*/
|
|
struct H245VideoCapability* ooCapabilityCreateVideoCapability
|
|
(ooH323EpCapability *epCap, OOCTXT *pctxt, int dir);
|
|
|
|
|
|
/**
|
|
* This function is used to create a dtmf capability which can be added to
|
|
* a TCS message.
|
|
* @param cap Type of dtmf capability to be created.
|
|
* @param pctxt Pointer to OOCTXT structure to be used for memory
|
|
* allocation.
|
|
*
|
|
* @return Pointer to the created DTMF capability, NULL in case of
|
|
* failure.
|
|
*/
|
|
void * ooCapabilityCreateDTMFCapability(int cap, OOCTXT *pctxt);
|
|
|
|
|
|
/**
|
|
* This function is used to create a GSM Full Rate capability structure.
|
|
* @param epCap Handle to the endpoint capability.
|
|
* @param pctxt Handle to OOCTXT which will be used to allocate memory
|
|
* for new audio capability.
|
|
* @param dir Direction for the newly created capability.
|
|
*
|
|
* @return Newly created audio capability on success, NULL on
|
|
* failure.
|
|
*/
|
|
struct H245AudioCapability* ooCapabilityCreateGSMFullRateCapability
|
|
(ooH323EpCapability *epCap, OOCTXT* pctxt, int dir);
|
|
|
|
/**
|
|
* This function is used to create a simple(g711, g728, g723.1, g729) audio
|
|
* capability structure.
|
|
*
|
|
* @param epCap Handle to the endpoint capability
|
|
* @param pctxt Handle to OOCTXT which will be used to allocate memory
|
|
* for new audio capability.
|
|
* @param dir Direction in which the newly created capability will be
|
|
* used.
|
|
*
|
|
* @return Newly created audio capability on success, NULL on
|
|
* failure.
|
|
*/
|
|
struct H245AudioCapability* ooCapabilityCreateSimpleCapability
|
|
(ooH323EpCapability *epCap, OOCTXT* pctxt, int dir);
|
|
|
|
|
|
/**
|
|
* This function is used to create a H263 video capability
|
|
* structure.
|
|
* @param epCap Handle to the endpoint capability
|
|
* @param pctxt Handle to OOCTXT which will be used to allocate memory
|
|
* for new video capability.
|
|
* @param dir Direction in which the newly created capability will be
|
|
* used.
|
|
*
|
|
* @return Newly created video capability on success, NULL on
|
|
* failure.
|
|
*/
|
|
struct H245VideoCapability* ooCapabilityCreateH263VideoCapability
|
|
(ooH323EpCapability *epCap, OOCTXT* pctxt, int dir);
|
|
|
|
|
|
/**
|
|
* This function is used to determine whether a particular capability
|
|
* can be supported by the endpoint.
|
|
* @param call Handle to the call.
|
|
* @param audioCap Handle to the audio capability.
|
|
* @param dir Direction in which support is desired.
|
|
*
|
|
* @return Handle to the copyof capability which supports audioCap,
|
|
* Null if none found
|
|
*/
|
|
ooH323EpCapability* ooIsAudioDataTypeSupported
|
|
(struct OOH323CallData *call, H245AudioCapability* audioCap, int dir);
|
|
|
|
/**
|
|
* This function is used to determine whether a particular video capability
|
|
* can be supported by the endpoint.
|
|
* @param call Handle to the call.
|
|
* @param pVideoCap Handle to the video capability.
|
|
* @param dir Direction in which support is desired.
|
|
*
|
|
* @return Handle to the copy of capability which supports video
|
|
* capability, Null if none found
|
|
*/
|
|
ooH323EpCapability* ooIsVideoDataTypeSupported
|
|
(struct OOH323CallData *call, H245VideoCapability* pVideoCap, int dir);
|
|
|
|
/**
|
|
* This function is used to determine whether a particular H263 capability
|
|
* can be supported by the endpoint.
|
|
* @param call Handle to the call.
|
|
* @param pH263Cap Handle to the H263 video capability.
|
|
* @param dir Direction in which support is desired.
|
|
* @param picFormat Picture type(cif, qcif etc.)
|
|
*
|
|
* @return Handle to the copy of capability which supports H263
|
|
* capability, Null if none found
|
|
*/
|
|
ooH323EpCapability* ooIsVideoDataTypeH263Supported
|
|
(struct OOH323CallData *call, H245H263VideoCapability* pH263Cap, int dir,
|
|
OOPictureFormat picFormat);
|
|
|
|
/**
|
|
* This function is used to determine whether a particular capability type
|
|
* can be supported by the endpoint.
|
|
* @param call Handle to the call.
|
|
* @param data Handle to the capability type.
|
|
* @param dir Direction in which support is desired.
|
|
*
|
|
* @return Handle to the copy of capability which supports specified
|
|
* capability type, Null if none found
|
|
*/
|
|
ooH323EpCapability* ooIsDataTypeSupported
|
|
(struct OOH323CallData *call, H245DataType *data, int dir);
|
|
|
|
/**
|
|
* This function is used to clear the capability preference order.
|
|
* @param call Handle to call, if capability preference order for call
|
|
* has to be cleared, NULL for endpoint.
|
|
*
|
|
* @return OO_OK, on success. OO_FAILED, on failure
|
|
*/
|
|
EXTERN int ooResetCapPrefs(struct OOH323CallData *call);
|
|
|
|
/**
|
|
* This function is used to remove a particular capability from preference
|
|
* list.
|
|
* @param call Handle to call, if call's preference list has to be modified
|
|
* else NULL, to modify endpoint's preference list.
|
|
* @param cap Capability to be removed
|
|
*
|
|
* @return OO_OK, on success. OO_FAILED, otherwise.
|
|
*/
|
|
EXTERN int ooRemoveCapFromCapPrefs(struct OOH323CallData *call, int cap);
|
|
|
|
/**
|
|
* This function is used to append a particular capability to preference
|
|
* list.
|
|
* @param call Handle to call, if call's preference list has to be modified
|
|
* else NULL, to modify endpoint's preference list.
|
|
* @param cap Capability to be appended.
|
|
*
|
|
* @return OO_OK, on success. OO_FAILED, otherwise.
|
|
*/
|
|
EXTERN int ooAppendCapToCapPrefs(struct OOH323CallData *call, int cap);
|
|
|
|
/**
|
|
* This function is used to change preference order of a particular capability
|
|
* in the preference list.
|
|
* @param call Handle to call, if call's preference list has to be modified
|
|
* else NULL, to modify endpoint's preference list.
|
|
* @param cap Capability concerned
|
|
* @param pos New position in the preference order
|
|
*
|
|
* @return OO_OK, on success. OO_FAILED, otherwise.
|
|
*/
|
|
EXTERN int ooChangeCapPrefOrder(struct OOH323CallData *call, int cap, int pos);
|
|
|
|
/**
|
|
* This function is used to preppend a particular capability to preference
|
|
* list.
|
|
* @param call Handle to call, if call's preference list has to be modified
|
|
* else NULL, to modify endpoint's preference list.
|
|
* @param cap Capability to be preppended.
|
|
*
|
|
* @return OO_OK, on success. OO_FAILED, otherwise.
|
|
*/
|
|
EXTERN int ooPreppendCapToCapPrefs(struct OOH323CallData *call, int cap);
|
|
|
|
/**
|
|
* This function is used to retrieve the text description for a capability
|
|
* type.
|
|
* @param cap Capability
|
|
* @return The text description string.
|
|
*/
|
|
EXTERN const char* ooGetCapTypeText (OOCapabilities cap);
|
|
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|