h323caps.h
Go to the documentation of this file.
/*
* h323caps.h
*
* H.323 protocol handler
*
* Open H323 Library
*
* Copyright (c) 1998-2001 Equivalence Pty. Ltd.
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Open H323 Library.
*
* The Initial Developer of the Original Code is Equivalence Pty. Ltd.
*
* Portions of this code were written with the assisance of funding from
* Vovida Networks, Inc. http://www.vovida.com.
*
* Contributor(s): ______________________________________.
*
* $Revision: 27461 $
* $Author: rjongbloed $
* $Date: 2012-04-17 13:11:41 -0500 (Tue, 17 Apr 2012) $
*/
#ifndef OPAL_H323_H323CAPS_H
#define OPAL_H323_H323CAPS_H
#ifdef P_USE_PRAGMA
#pragma interface
#endif
#include <opal/buildopts.h>
#if OPAL_H323
#include <opal/mediafmt.h>
#include <h323/channels.h>
/* The following classes have forward references to avoid including the VERY
large header files for H225 and H245. If an application requires access
to the protocol classes they can include them, but for simple usage their
inclusion can be avoided.
*/
class PASN_Choice;
class H245_Capability;
class H245_DataType;
class H245_ModeElement;
class H245_AudioCapability;
class H245_AudioMode;
class H245_VideoCapability;
class H245_VideoMode;
class H245_DataApplicationCapability;
class H245_DataMode;
class H245_DataProtocolCapability;
class H245_H2250LogicalChannelParameters;
class H245_TerminalCapabilitySet;
class H245_NonStandardParameter;
class H323Connection;
class H323Capabilities;
class H245_CapabilityIdentifier;
class H245_GenericCapability;
class H245_GenericParameter;
class H323Capability : public PObject
{
PCLASSINFO(H323Capability, PObject);
public:
H323Capability();
Comparison Compare(const PObject & obj) const;
void PrintOn(ostream & strm) const;
enum MainTypes {
e_Audio,
e_Video,
e_Data,
e_UserInput,
e_GenericControl,
e_NumMainTypes
};
virtual MainTypes GetMainType() const = 0;
virtual unsigned GetSubType() const = 0;
virtual PString GetFormatName() const = 0;
static H323Capability * Create(
const PString & name
);
enum {
DefaultAudioSessionID = 1,
DefaultVideoSessionID = 2,
DefaultDataSessionID = 3,
DefaultH224SessionID = 4
};
virtual unsigned GetDefaultSessionID() const;
virtual void SetTxFramesInPacket(
unsigned frames
);
virtual unsigned GetTxFramesInPacket() const;
virtual unsigned GetRxFramesInPacket() const;
virtual H323Channel * CreateChannel(
H323Connection & connection,
H323Channel::Directions dir,
unsigned sessionID,
const H245_H2250LogicalChannelParameters * param
) const = 0;
enum CommandType {
e_TCS,
e_OLC,
e_ReqMode
};
virtual PBoolean OnSendingPDU(
H245_Capability & pdu
) const = 0;
virtual PBoolean OnSendingPDU(
H245_DataType & pdu
) const;
virtual PBoolean OnSendingPDU(
H245_ModeElement & pdu
) const = 0;
virtual PBoolean OnReceivedPDU(
const H245_Capability & pdu
);
virtual PBoolean OnReceivedPDU(
const H245_DataType & pdu,
PBoolean receiver
);
virtual PBoolean IsMatch(
const PASN_Choice & subTypePDU,
const PString & mediaPacketization
) const;
virtual PBoolean IsUsable(
const H323Connection & connection
) const;
enum CapabilityDirection {
e_Unknown,
e_Receive,
e_Transmit,
e_ReceiveAndTransmit,
e_NoDirection,
NumCapabilityDirections
};
CapabilityDirection GetCapabilityDirection() const { return capabilityDirection; }
void SetCapabilityDirection(
CapabilityDirection dir
) { capabilityDirection = dir; }
unsigned GetCapabilityNumber() const { return assignedCapabilityNumber; }
void SetCapabilityNumber(unsigned num) { assignedCapabilityNumber = num; }
OpalMediaFormat GetMediaFormat() const;
bool UpdateMediaFormat(
const OpalMediaFormat & format
);
RTP_DataFrame::PayloadTypes GetPayloadType() const { return GetMediaFormat().GetPayloadType(); }
void SetPayloadType(RTP_DataFrame::PayloadTypes pt) { GetWritableMediaFormat().SetPayloadType(pt); }
virtual void AttachQoS(RTP_QOS *) { }
#if PTRACING
friend ostream & operator<<(ostream & o , MainTypes t);
friend ostream & operator<<(ostream & o , CapabilityDirection d);
#endif
protected:
OpalMediaFormat & GetWritableMediaFormat() const;
unsigned assignedCapabilityNumber;
CapabilityDirection capabilityDirection;
private:
mutable OpalMediaFormat m_mediaFormat;
P_REMOVE_VIRTUAL(PBoolean, IsMatch(const PASN_Choice &) const, false);
friend class H323Capabilities;
};
class H323NonStandardCapabilityInfo
{
public:
typedef PObject::Comparison (*CompareFuncType)(struct PluginCodec_H323NonStandardCodecData *);
H323NonStandardCapabilityInfo(
CompareFuncType compareFunc,
const BYTE * dataBlock,
PINDEX dataSize
);
H323NonStandardCapabilityInfo(
const BYTE * dataBlock,
PINDEX dataSize,
PINDEX comparisonOffset = 0,
PINDEX comparisonLength = P_MAX_INDEX
);
H323NonStandardCapabilityInfo(
const PString & oid,
const BYTE * dataBlock,
PINDEX dataSize,
PINDEX comparisonOffset = 0,
PINDEX comparisonLength = P_MAX_INDEX
);
H323NonStandardCapabilityInfo(
BYTE country,
BYTE extension,
WORD maufacturer,
const BYTE * dataBlock,
PINDEX dataSize,
PINDEX comparisonOffset = 0,
PINDEX comparisonLength = P_MAX_INDEX
);
virtual ~H323NonStandardCapabilityInfo();
virtual PBoolean OnSendingPDU(
PBYTEArray & data
) const;
virtual PBoolean OnReceivedPDU(
const PBYTEArray & data
);
PBoolean IsMatch(const H245_NonStandardParameter & param) const;
PObject::Comparison CompareParam(
const H245_NonStandardParameter & param
) const;
protected:
PBoolean OnSendingNonStandardPDU(
PASN_Choice & pdu,
unsigned nonStandardTag
) const;
PBoolean OnReceivedNonStandardPDU(
const PASN_Choice & pdu,
unsigned nonStandardTag
);
PObject::Comparison CompareInfo(
const H323NonStandardCapabilityInfo & obj
) const;
PObject::Comparison CompareData(
const PBYTEArray & data
) const;
PString oid;
BYTE t35CountryCode;
BYTE t35Extension;
WORD manufacturerCode;
PBYTEArray nonStandardData;
PINDEX comparisonOffset;
PINDEX comparisonLength;
CompareFuncType compareFunc;
};
class H323GenericCapabilityInfo
{
public:
H323GenericCapabilityInfo(
const PString & id,
unsigned maxBitRate = 0
);
virtual ~H323GenericCapabilityInfo() { }
protected:
virtual PBoolean OnSendingGenericPDU(
H245_GenericCapability & pdu,
const OpalMediaFormat & mediaFormat,
H323Capability::CommandType type
) const;
virtual PBoolean OnReceivedGenericPDU(
OpalMediaFormat & mediaFormat,
const H245_GenericCapability & pdu,
H323Capability::CommandType type
);
PBoolean IsMatch(
const H245_GenericCapability & param
) const;
PObject::Comparison CompareInfo(
const H323GenericCapabilityInfo & obj
) const;
PString m_identifier;
unsigned maxBitRate;
};
class H323RealTimeCapability : public H323Capability
{
PCLASSINFO(H323RealTimeCapability, H323Capability);
public:
virtual H323Channel * CreateChannel(
H323Connection & connection,
H323Channel::Directions dir,
unsigned sessionID,
const H245_H2250LogicalChannelParameters * param
) const;
H323RealTimeCapability();
H323RealTimeCapability(const H323RealTimeCapability &rtc);
virtual ~H323RealTimeCapability();
void AttachQoS(RTP_QOS * _rtpqos);
protected:
RTP_QOS * rtpqos;
};
class H323AudioCapability : public H323RealTimeCapability
{
PCLASSINFO(H323AudioCapability, H323RealTimeCapability);
public:
H323AudioCapability();
virtual MainTypes GetMainType() const;
virtual unsigned GetDefaultSessionID() const;
virtual void SetTxFramesInPacket(
unsigned frames
);
virtual unsigned GetTxFramesInPacket() const;
virtual unsigned GetRxFramesInPacket() const;
virtual PBoolean OnSendingPDU(
H245_Capability & pdu
) const;
virtual PBoolean OnSendingPDU(
H245_DataType & pdu
) const;
virtual PBoolean OnSendingPDU(
H245_ModeElement & pdu
) const;
virtual PBoolean OnSendingPDU(
H245_AudioCapability & pdu,
unsigned packetSize
) const;
virtual PBoolean OnSendingPDU(
H245_AudioCapability & pdu,
unsigned packetSize,
CommandType type
) const;
virtual PBoolean OnSendingPDU(
H245_AudioMode & pdu
) const;
virtual PBoolean OnReceivedPDU(
const H245_Capability & pdu
);
virtual PBoolean OnReceivedPDU(
const H245_DataType & pdu,
PBoolean receiver
);
virtual PBoolean OnReceivedPDU(
const H245_AudioCapability & pdu,
unsigned & packetSize
);
virtual PBoolean OnReceivedPDU(
const H245_AudioCapability & pdu,
unsigned & packetSize,
CommandType type
);
};
class H323NonStandardAudioCapability : public H323AudioCapability,
public H323NonStandardCapabilityInfo
{
PCLASSINFO(H323NonStandardAudioCapability, H323AudioCapability);
public:
H323NonStandardAudioCapability(
H323NonStandardCapabilityInfo::CompareFuncType compareFunc,
const BYTE * dataBlock,
PINDEX dataSize
);
H323NonStandardAudioCapability(
const BYTE * dataBlock = NULL,
PINDEX dataSize = 0,
PINDEX comparisonOffset = 0,
PINDEX comparisonLength = P_MAX_INDEX
);
H323NonStandardAudioCapability(
const PString & oid,
const BYTE * dataBlock = NULL,
PINDEX dataSize = 0,
PINDEX comparisonOffset = 0,
PINDEX comparisonLength = P_MAX_INDEX
);
H323NonStandardAudioCapability(
BYTE country,
BYTE extension,
WORD maufacturer,
const BYTE * dataBlock = NULL,
PINDEX dataSize = 0,
PINDEX comparisonOffset = 0,
PINDEX comparisonLength = P_MAX_INDEX
);
Comparison Compare(const PObject & obj) const;
virtual unsigned GetSubType() const;
virtual PBoolean OnSendingPDU(
H245_AudioCapability & pdu,
unsigned packetSize
) const;
virtual PBoolean OnSendingPDU(
H245_AudioMode & pdu
) const;
virtual PBoolean OnReceivedPDU(
const H245_AudioCapability & pdu,
unsigned & packetSize
);
virtual PBoolean IsMatch(
const PASN_Choice & subTypePDU,
const PString & mediaPacketization
) const;
};
class H323GenericAudioCapability : public H323AudioCapability,
public H323GenericCapabilityInfo
{
PCLASSINFO(H323NonStandardAudioCapability, H323AudioCapability);
public:
H323GenericAudioCapability(
const PString & capabilityId,
PINDEX maxBitRate = 0
);
Comparison Compare(const PObject & obj) const;
virtual unsigned GetSubType() const;
virtual PBoolean OnSendingPDU(
H245_AudioCapability & pdu,
unsigned packetSize,
CommandType type
) const;
virtual PBoolean OnSendingPDU(
H245_AudioMode & pdu
) const;
virtual PBoolean OnReceivedPDU(
const H245_AudioCapability & pdu,
unsigned & packetSize,
CommandType type
);
virtual PBoolean IsMatch(
const PASN_Choice & subTypePDU,
const PString & mediaPacketization
) const;
};
#if OPAL_VIDEO
class H323VideoCapability : public H323RealTimeCapability
{
PCLASSINFO(H323VideoCapability, H323RealTimeCapability);
public:
virtual MainTypes GetMainType() const;
virtual unsigned GetDefaultSessionID() const;
virtual PBoolean OnSendingPDU(
H245_Capability & pdu
) const;
virtual PBoolean OnSendingPDU(
H245_DataType & pdu
) const;
virtual PBoolean OnSendingPDU(
H245_ModeElement & pdu
) const;
virtual PBoolean OnSendingPDU(
H245_VideoCapability & pdu
) const;
virtual PBoolean OnSendingPDU(
H245_VideoCapability & pdu,
CommandType type
) const;
virtual PBoolean OnSendingPDU(
H245_VideoMode & pdu
) const = 0;
virtual PBoolean OnReceivedPDU(
const H245_Capability & pdu
);
virtual PBoolean OnReceivedPDU(
const H245_DataType & pdu,
PBoolean receiver
);
virtual PBoolean OnReceivedPDU(
const H245_VideoCapability & pdu
);
virtual PBoolean OnReceivedPDU(
const H245_VideoCapability & pdu,
CommandType type
);
};
class H323NonStandardVideoCapability : public H323VideoCapability,
public H323NonStandardCapabilityInfo
{
PCLASSINFO(H323NonStandardVideoCapability, H323VideoCapability);
public:
H323NonStandardVideoCapability(
H323NonStandardCapabilityInfo::CompareFuncType compareFunc,
const BYTE * dataBlock,
PINDEX dataSize
);
H323NonStandardVideoCapability(
const BYTE * dataBlock = NULL,
PINDEX dataSize = 0,
PINDEX comparisonOffset = 0,
PINDEX comparisonLength = P_MAX_INDEX
);
H323NonStandardVideoCapability(
const PString & oid,
const BYTE * dataBlock = NULL,
PINDEX dataSize = 0,
PINDEX comparisonOffset = 0,
PINDEX comparisonLength = P_MAX_INDEX
);
H323NonStandardVideoCapability(
BYTE country,
BYTE extension,
WORD maufacturer,
const BYTE * dataBlock = NULL,
PINDEX dataSize = 0,
PINDEX comparisonOffset = 0,
PINDEX comparisonLength = P_MAX_INDEX
);
Comparison Compare(const PObject & obj) const;
virtual unsigned GetSubType() const;
virtual PBoolean OnSendingPDU(
H245_VideoCapability & pdu
) const;
virtual PBoolean OnSendingPDU(
H245_VideoMode & pdu
) const;
virtual PBoolean OnReceivedPDU(
const H245_VideoCapability & pdu
);
virtual PBoolean IsMatch(
const PASN_Choice & subTypePDU,
const PString & mediaPacketization
) const;
};
class H323GenericVideoCapability : public H323VideoCapability,
public H323GenericCapabilityInfo
{
PCLASSINFO(H323GenericVideoCapability, H323VideoCapability);
public:
H323GenericVideoCapability(
const PString & capabilityId,
PINDEX maxBitRate = 0
);
Comparison Compare(const PObject & obj) const;
virtual unsigned GetSubType() const;
virtual PBoolean OnSendingPDU(
H245_VideoCapability & pdu,
CommandType type
) const;
virtual PBoolean OnSendingPDU(
H245_VideoMode & pdu
) const;
virtual PBoolean OnReceivedPDU(
const H245_VideoCapability & pdu,
CommandType type
);
virtual PBoolean IsMatch(
const PASN_Choice & subTypePDU,
const PString & mediaPacketization
) const;
};
#if OPAL_H239
class H323ExtendedVideoCapability : public H323GenericVideoCapability
{
PCLASSINFO(H323ExtendedVideoCapability, H323GenericVideoCapability);
public:
H323ExtendedVideoCapability(
const PString & identifier
);
virtual unsigned GetSubType() const;
virtual PBoolean OnSendingPDU(
H245_VideoCapability & pdu,
CommandType type
) const;
virtual PBoolean OnSendingPDU(
H245_VideoMode & pdu
) const;
virtual PBoolean OnReceivedPDU(
const H245_VideoCapability & pdu,
CommandType type
);
virtual PBoolean IsMatch(
const PASN_Choice & subTypePDU,
const PString & mediaPacketization
) const;
protected:
OpalMediaFormatList m_videoFormats;
};
class H323GenericControlCapability : public H323Capability,
public H323GenericCapabilityInfo
{
PCLASSINFO(H323GenericControlCapability, H323Capability);
public:
H323GenericControlCapability(
const PString & identifier
);
virtual MainTypes GetMainType() const;
virtual unsigned GetSubType() const;
virtual PBoolean OnSendingPDU(
H245_Capability & pdu
) const;
virtual PBoolean OnSendingPDU(
H245_ModeElement & pdu
) const;
virtual PBoolean OnReceivedPDU(
const H245_Capability & pdu
);
virtual PBoolean IsMatch(
const PASN_Choice & subTypePDU,
const PString & mediaPacketization
) const;
virtual H323Channel * CreateChannel(
H323Connection & connection,
H323Channel::Directions dir,
unsigned sessionID,
const H245_H2250LogicalChannelParameters * param
) const;
};
class H323H239VideoCapability : public H323ExtendedVideoCapability
{
PCLASSINFO(H323H239VideoCapability, H323ExtendedVideoCapability);
public:
H323H239VideoCapability(
const OpalMediaFormat & videoFormat
);
Comparison Compare(const PObject & obj) const;
virtual PObject * Clone() const;
void PrintOn(ostream & strm) const;
virtual PString GetFormatName() const;
virtual PBoolean OnSendingPDU(
H245_VideoCapability & pdu,
CommandType type
) const;
virtual PBoolean OnReceivedPDU(
const H245_VideoCapability & pdu,
CommandType type
);
};
class H323H239ControlCapability : public H323GenericControlCapability
{
PCLASSINFO(H323H239ControlCapability, H323GenericControlCapability);
public:
H323H239ControlCapability();
virtual PObject * Clone() const;
virtual PString GetFormatName() const;
};
#endif // OPAL_H239
#endif // OPAL_VIDEO
class H323DataCapability : public H323Capability
{
PCLASSINFO(H323DataCapability, H323Capability);
public:
H323DataCapability(
unsigned maxBitRate = 0
);
virtual MainTypes GetMainType() const;
virtual unsigned GetDefaultSessionID() const;
virtual PBoolean OnSendingPDU(
H245_Capability & pdu
) const;
virtual PBoolean OnSendingPDU(
H245_DataType & pdu
) const;
virtual PBoolean OnSendingPDU(
H245_ModeElement & pdu
) const;
virtual PBoolean OnSendingPDU(
H245_DataApplicationCapability & pdu
) const;
virtual PBoolean OnSendingPDU(
H245_DataApplicationCapability & pdu,
CommandType type
) const;
virtual PBoolean OnSendingPDU(
H245_DataMode & pdu
) const = 0;
virtual PBoolean OnReceivedPDU(
const H245_Capability & pdu
);
virtual PBoolean OnReceivedPDU(
const H245_DataType & pdu,
PBoolean receiver
);
virtual PBoolean OnReceivedPDU(
const H245_DataApplicationCapability & pdu
);
virtual PBoolean OnReceivedPDU(
const H245_DataApplicationCapability & pdu,
CommandType type
);
protected:
unsigned maxBitRate;
};
class H323NonStandardDataCapability : public H323DataCapability,
public H323NonStandardCapabilityInfo
{
PCLASSINFO(H323NonStandardDataCapability, H323DataCapability);
public:
H323NonStandardDataCapability(
unsigned maxBitRate,
const BYTE * dataBlock = NULL,
PINDEX dataSize = 0,
PINDEX comparisonOffset = 0,
PINDEX comparisonLength = P_MAX_INDEX
);
H323NonStandardDataCapability(
unsigned maxBitRate,
const PString & oid,
const BYTE * dataBlock = NULL,
PINDEX dataSize = 0,
PINDEX comparisonOffset = 0,
PINDEX comparisonLength = P_MAX_INDEX
);
H323NonStandardDataCapability(
unsigned maxBitRate,
BYTE country,
BYTE extension,
WORD maufacturer,
const BYTE * dataBlock = NULL,
PINDEX dataSize = 0,
PINDEX comparisonOffset = 0,
PINDEX comparisonLength = P_MAX_INDEX
);
Comparison Compare(const PObject & obj) const;
virtual unsigned GetSubType() const;
virtual PBoolean OnSendingPDU(
H245_DataApplicationCapability & pdu
) const;
virtual PBoolean OnSendingPDU(
H245_DataMode & pdu
) const;
virtual PBoolean OnReceivedPDU(
const H245_DataApplicationCapability & pdu
);
virtual PBoolean IsMatch(
const PASN_Choice & subTypePDU,
const PString & mediaPacketization
) const;
};
// Known audio codecs
class H323_G711Capability : public H323AudioCapability
{
PCLASSINFO(H323_G711Capability, H323AudioCapability)
public:
enum Mode {
ALaw,
muLaw
};
enum Speed {
At64k,
At56k
};
H323_G711Capability(
Mode mode = muLaw,
Speed speed = At64k
);
virtual PObject * Clone() const;
virtual unsigned GetSubType() const;
virtual PString GetFormatName() const;
protected:
Mode mode;
Speed speed;
};
class H323_UserInputCapability : public H323Capability
{
PCLASSINFO(H323_UserInputCapability, H323Capability);
public:
enum SubTypes {
BasicString,
IA5String,
GeneralString,
SignalToneH245,
HookFlashH245,
SignalToneRFC2833,
NumSubTypes
};
static const char * GetSubTypeName(SubTypes subType);
friend ostream & operator<<(ostream & strm, SubTypes subType) { return strm << GetSubTypeName(subType); }
H323_UserInputCapability(
SubTypes subType
);
virtual PObject * Clone() const;
virtual MainTypes GetMainType() const;
virtual unsigned GetSubType() const;
virtual PString GetFormatName() const;
virtual H323Channel * CreateChannel(
H323Connection & connection,
H323Channel::Directions dir,
unsigned sessionID,
const H245_H2250LogicalChannelParameters * param
) const;
virtual PBoolean OnSendingPDU(
H245_Capability & pdu
) const;
virtual PBoolean OnSendingPDU(
H245_DataType & pdu
) const;
virtual PBoolean OnSendingPDU(
H245_ModeElement & pdu
) const;
virtual PBoolean OnReceivedPDU(
const H245_Capability & pdu
);
virtual PBoolean OnReceivedPDU(
const H245_DataType & pdu,
PBoolean receiver
);
virtual PBoolean IsUsable(
const H323Connection & connection
) const;
static void AddAllCapabilities(
H323Capabilities & capabilities,
PINDEX descriptorNum,
PINDEX simultaneous,
bool includeRFC2833 = true
);
protected:
SubTypes subType;
};
PARRAY(H323CapabilitiesList, H323Capability);
PARRAY(H323CapabilitiesListArray, H323CapabilitiesList);
class H323SimultaneousCapabilities : public H323CapabilitiesListArray
{
PCLASSINFO(H323SimultaneousCapabilities, H323CapabilitiesListArray);
public:
PBoolean SetSize(PINDEX newSize);
};
PARRAY(H323CapabilitiesSetArray, H323SimultaneousCapabilities);
class H323CapabilitiesSet : public H323CapabilitiesSetArray
{
PCLASSINFO(H323CapabilitiesSet, H323CapabilitiesSetArray);
public:
PBoolean SetSize(PINDEX newSize);
};
class H323Capabilities : public PObject
{
PCLASSINFO(H323Capabilities, PObject);
public:
H323Capabilities();
H323Capabilities(
const H323Connection & connection,
const H245_TerminalCapabilitySet & pdu
);
H323Capabilities(
const H323Capabilities & original
);
H323Capabilities & operator=(
const H323Capabilities & original
);
void PrintOn(
ostream & strm
) const;
PINDEX GetSize() const { return table.GetSize(); }
H323Capability & operator[](PINDEX i) const { return table[i]; }
PINDEX SetCapability(
PINDEX descriptorNum,
PINDEX simultaneous,
H323Capability * cap
);
PINDEX AddMediaFormat(
PINDEX descriptorNum,
PINDEX simultaneous,
const OpalMediaFormat & mediaFormat
);
PINDEX AddAllCapabilities(
PINDEX descriptorNum,
PINDEX simultaneous,
const PString & name,
PBoolean exact = false
);
// this function is retained for backwards compatibility
PINDEX AddAllCapabilities(
const H323EndPoint &,
PINDEX descriptorNum,
PINDEX simultaneous,
const PString & name,
PBoolean exact = false
)
{ return AddAllCapabilities(descriptorNum, simultaneous, name, exact); }
void Add(
H323Capability * capability
);
H323Capability * Copy(
const H323Capability & capability
);
void Remove(
H323Capability * capability
);
void Remove(
const PString & formatName
);
void Remove(
const PStringArray & formatNames
);
void RemoveAll();
H323Capability * FindCapability(
unsigned capabilityNumber
) const;
H323Capability * FindCapability(
const PString & formatName,
H323Capability::CapabilityDirection direction = H323Capability::e_Unknown,
PBoolean exact = false
) const;
H323Capability * FindCapability(
H323Capability::CapabilityDirection direction
) const;
H323Capability * FindCapability(
const H323Capability & capability
) const;
H323Capability * FindCapability(
const H245_Capability & cap
) const;
H323Capability * FindCapability(
const H245_DataType & dataType,
const PString & mediaPacketization = PString::Empty()
) const;
H323Capability * FindCapability(
const H245_ModeElement & modeElement,
const PString & mediaPacketization = PString::Empty()
) const;
H323Capability * FindCapability(
H323Capability::MainTypes mainType,
unsigned subType = UINT_MAX
) const;
void BuildPDU(
const H323Connection & connection,
H245_TerminalCapabilitySet & pdu
) const;
PBoolean Merge(
const H323Capabilities & newCaps
);
void Reorder(
const PStringArray & preferenceOrder
);
PBoolean IsAllowed(
const H323Capability & capability
);
PBoolean IsAllowed(
unsigned capabilityNumber
);
PBoolean IsAllowed(
const H323Capability & capability1,
const H323Capability & capability2
);
PBoolean IsAllowed(
unsigned capabilityNumber1,
unsigned capabilityNumber2
);
OpalMediaFormatList GetMediaFormats() const;
const PStringSet & GetMediaPacketizations() const { return m_mediaPacketizations; }
protected:
H323CapabilitiesList table;
H323CapabilitiesSet set;
PStringSet m_mediaPacketizations;
};
/* New capability registration macros based on abstract factories
*/
typedef PFactory<H323Capability, std::string> H323CapabilityFactory;
#define H323_REGISTER_CAPABILITY(cls, capName) static H323CapabilityFactory::Worker<cls> cls##Factory(capName, true); \
#endif // OPAL_H323
#endif // OPAL_H323_H323CAPS_H
H323NonStandardAudioCapability::H323NonStandardAudioCapability
H323NonStandardAudioCapability(H323NonStandardCapabilityInfo::CompareFuncType compareFunc, const BYTE *dataBlock, PINDEX dataSize)
H323Capability::CommandType
CommandType
Definition: h323caps.h:213
H323Capability::DefaultDataSessionID
Definition: h323caps.h:159
H323Capability::CapabilityDirection
CapabilityDirection
Definition: h323caps.h:301
H323NonStandardCapabilityInfo
Definition: h323caps.h:374
H323_UserInputCapability::SignalToneRFC2833
Definition: h323caps.h:1925
H323NonStandardCapabilityInfo::CompareInfo
PObject::Comparison CompareInfo(const H323NonStandardCapabilityInfo &obj) const
H323RealTimeCapability
Definition: h323caps.h:520
H323Capability::SetTxFramesInPacket
virtual void SetTxFramesInPacket(unsigned frames)
H323GenericCapabilityInfo::m_identifier
PString m_identifier
Definition: h323caps.h:510
H323AudioCapability::OnSendingPDU
virtual PBoolean OnSendingPDU(H245_Capability &pdu) const
H323_G711Capability::Mode
Mode
Specific G.711 encoding algorithm.
Definition: h323caps.h:1857
H323Capabilities::Remove
void Remove(H323Capability *capability)
H323NonStandardCapabilityInfo::OnSendingPDU
virtual PBoolean OnSendingPDU(PBYTEArray &data) const
H323H239VideoCapability::PrintOn
void PrintOn(ostream &strm) const
H323Capability::e_Unknown
Definition: h323caps.h:302
H323NonStandardCapabilityInfo::t35Extension
BYTE t35Extension
Definition: h323caps.h:463
H323VideoCapability::OnSendingPDU
virtual PBoolean OnSendingPDU(H245_Capability &pdu) const
H323GenericCapabilityInfo::maxBitRate
unsigned maxBitRate
Definition: h323caps.h:511
H323H239VideoCapability::H323H239VideoCapability
H323H239VideoCapability(const OpalMediaFormat &videoFormat)
H323Capability::e_ReqMode
Definition: h323caps.h:216
H323ExtendedVideoCapability::H323ExtendedVideoCapability
H323ExtendedVideoCapability(const PString &identifier)
H323NonStandardAudioCapability::Compare
Comparison Compare(const PObject &obj) const
H323Capability::SetPayloadType
void SetPayloadType(RTP_DataFrame::PayloadTypes pt)
Set the payload type for the capaibility.
Definition: h323caps.h:340
H323_UserInputCapability::GetSubTypeName
static const char * GetSubTypeName(SubTypes subType)
H323H239ControlCapability::GetFormatName
virtual PString GetFormatName() const
H323GenericCapabilityInfo
Definition: h323caps.h:480
H323_UserInputCapability::SubTypes
SubTypes
Definition: h323caps.h:1919
H323Capabilities::operator[]
H323Capability & operator[](PINDEX i) const
Definition: h323caps.h:2148
buildopts.h
H323_UserInputCapability::AddAllCapabilities
static void AddAllCapabilities(H323Capabilities &capabilities, PINDEX descriptorNum, PINDEX simultaneous, bool includeRFC2833=true)
H323ExtendedVideoCapability::GetSubType
virtual unsigned GetSubType() const
H323Capabilities::m_mediaPacketizations
PStringSet m_mediaPacketizations
Definition: h323caps.h:2405
H323GenericCapabilityInfo::~H323GenericCapabilityInfo
virtual ~H323GenericCapabilityInfo()
Definition: h323caps.h:488
H323_G711Capability::speed
Speed speed
Definition: h323caps.h:1905
H323Capability
Definition: h323caps.h:89
OpalMediaFormat::GetPayloadType
RTP_DataFrame::PayloadTypes GetPayloadType() const
Definition: mediafmt.h:914
H323NonStandardDataCapability::H323NonStandardDataCapability
H323NonStandardDataCapability(unsigned maxBitRate, const BYTE *dataBlock=NULL, PINDEX dataSize=0, PINDEX comparisonOffset=0, PINDEX comparisonLength=P_MAX_INDEX)
H323Channel::Directions
Directions
Definition: channels.h:129
H323NonStandardCapabilityInfo::comparisonOffset
PINDEX comparisonOffset
Definition: h323caps.h:466
H323Capability::DefaultVideoSessionID
Definition: h323caps.h:158
H323NonStandardCapabilityInfo::CompareData
PObject::Comparison CompareData(const PBYTEArray &data) const
H323RealTimeCapability::CreateChannel
virtual H323Channel * CreateChannel(H323Connection &connection, H323Channel::Directions dir, unsigned sessionID, const H245_H2250LogicalChannelParameters *param) const
H323Capability::e_NoDirection
Definition: h323caps.h:306
H323GenericControlCapability::GetSubType
virtual unsigned GetSubType() const
H323NonStandardCapabilityInfo::t35CountryCode
BYTE t35CountryCode
Definition: h323caps.h:462
H323Capability::GetCapabilityDirection
CapabilityDirection GetCapabilityDirection() const
Definition: h323caps.h:312
H323Capability::e_UserInput
User Input capability.
Definition: h323caps.h:123
H323H239VideoCapability
Definition: h323caps.h:1475
H323GenericControlCapability::OnSendingPDU
virtual PBoolean OnSendingPDU(H245_Capability &pdu) const
H323RealTimeCapability::H323RealTimeCapability
H323RealTimeCapability()
H323Capability::H323Capability
H323Capability()
H323AudioCapability::SetTxFramesInPacket
virtual void SetTxFramesInPacket(unsigned frames)
H323GenericVideoCapability::Compare
Comparison Compare(const PObject &obj) const
H323GenericVideoCapability::OnSendingPDU
virtual PBoolean OnSendingPDU(H245_VideoCapability &pdu, CommandType type) const
H323_UserInputCapability::BasicString
Definition: h323caps.h:1920
H323Capability::e_NumMainTypes
Count of main types.
Definition: h323caps.h:127
H323_UserInputCapability::GetMainType
virtual MainTypes GetMainType() const
RTP_QOS
Definition: rtp.h:58
H323_UserInputCapability::CreateChannel
virtual H323Channel * CreateChannel(H323Connection &connection, H323Channel::Directions dir, unsigned sessionID, const H245_H2250LogicalChannelParameters *param) const
H323_UserInputCapability::GetSubType
virtual unsigned GetSubType() const
H323NonStandardAudioCapability::IsMatch
virtual PBoolean IsMatch(const PASN_Choice &subTypePDU, const PString &mediaPacketization) const
H323_G711Capability::GetFormatName
virtual PString GetFormatName() const
H323Capability::e_TCS
Definition: h323caps.h:214
H323NonStandardDataCapability::Compare
Comparison Compare(const PObject &obj) const
H323CapabilitiesSet
Definition: h323caps.h:2086
H323VideoCapability::GetDefaultSessionID
virtual unsigned GetDefaultSessionID() const
H323GenericControlCapability::CreateChannel
virtual H323Channel * CreateChannel(H323Connection &connection, H323Channel::Directions dir, unsigned sessionID, const H245_H2250LogicalChannelParameters *param) const
H323AudioCapability::GetMainType
virtual MainTypes GetMainType() const
channels.h
H323GenericCapabilityInfo::H323GenericCapabilityInfo
H323GenericCapabilityInfo(const PString &id, unsigned maxBitRate=0)
H323_G711Capability::ALaw
European standard.
Definition: h323caps.h:1859
H323Capability::GetFormatName
virtual PString GetFormatName() const =0
H323GenericVideoCapability::GetSubType
virtual unsigned GetSubType() const
H323_G711Capability::At64k
European standard.
Definition: h323caps.h:1866
H323H239ControlCapability::H323H239ControlCapability
H323H239ControlCapability()
H323NonStandardDataCapability::OnReceivedPDU
virtual PBoolean OnReceivedPDU(const H245_DataApplicationCapability &pdu)
RTP_DataFrame::PayloadTypes
PayloadTypes
Definition: rtp.h:86
H323H239VideoCapability::Clone
virtual PObject * Clone() const
H323DataCapability::GetDefaultSessionID
virtual unsigned GetDefaultSessionID() const
H323_G711Capability
Definition: h323caps.h:1851
H323CapabilityFactory
PFactory< H323Capability, std::string > H323CapabilityFactory
Definition: h323caps.h:2413
H323_G711Capability::At56k
American standard.
Definition: h323caps.h:1868
H323NonStandardCapabilityInfo::manufacturerCode
WORD manufacturerCode
Definition: h323caps.h:464
OpalMediaFormatList
Definition: mediafmt.h:72
H323Capability::e_GenericControl
Generic Control.
Definition: h323caps.h:125
H323Capabilities::AddMediaFormat
PINDEX AddMediaFormat(PINDEX descriptorNum, PINDEX simultaneous, const OpalMediaFormat &mediaFormat)
H323NonStandardCapabilityInfo::oid
PString oid
Definition: h323caps.h:461
H323Channel
Definition: channels.h:99
H323GenericCapabilityInfo::CompareInfo
PObject::Comparison CompareInfo(const H323GenericCapabilityInfo &obj) const
H323_G711Capability::Speed
Speed
Specific G.711 encoding bit rates.
Definition: h323caps.h:1864
H323NonStandardCapabilityInfo::CompareParam
PObject::Comparison CompareParam(const H245_NonStandardParameter &param) const
H323Capability::Create
static H323Capability * Create(const PString &name)
H323AudioCapability::OnReceivedPDU
virtual PBoolean OnReceivedPDU(const H245_Capability &pdu)
H323NonStandardAudioCapability::GetSubType
virtual unsigned GetSubType() const
H323_UserInputCapability::OnSendingPDU
virtual PBoolean OnSendingPDU(H245_Capability &pdu) const
H323Capability::GetMediaFormat
OpalMediaFormat GetMediaFormat() const
H323NonStandardVideoCapability
Definition: h323caps.h:1092
H323GenericVideoCapability::H323GenericVideoCapability
H323GenericVideoCapability(const PString &capabilityId, PINDEX maxBitRate=0)
H323Capabilities::Copy
H323Capability * Copy(const H323Capability &capability)
H323Capability::GetRxFramesInPacket
virtual unsigned GetRxFramesInPacket() const
H323CapabilitiesSet::SetSize
PBoolean SetSize(PINDEX newSize)
Set the new size of the table, internal use only.
H323NonStandardCapabilityInfo::CompareFuncType
PObject::Comparison(* CompareFuncType)(struct PluginCodec_H323NonStandardCodecData *)
Definition: h323caps.h:377
H323NonStandardDataCapability::OnSendingPDU
virtual PBoolean OnSendingPDU(H245_DataApplicationCapability &pdu) const
H323NonStandardDataCapability::IsMatch
virtual PBoolean IsMatch(const PASN_Choice &subTypePDU, const PString &mediaPacketization) const
OpalMediaFormat
Definition: mediafmt.h:724
H323Capability::capabilityDirection
CapabilityDirection capabilityDirection
Unique ID assigned to capability.
Definition: h323caps.h:355
H323Capability::e_Audio
Audio codec capability.
Definition: h323caps.h:117
H323VideoCapability::GetMainType
virtual MainTypes GetMainType() const
H323Capabilities::table
H323CapabilitiesList table
Definition: h323caps.h:2403
H323Capabilities::GetMediaPacketizations
const PStringSet & GetMediaPacketizations() const
Definition: h323caps.h:2399
H323Capabilities::FindCapability
H323Capability * FindCapability(unsigned capabilityNumber) const
H323Capabilities::operator=
H323Capabilities & operator=(const H323Capabilities &original)
H323Capability::NumCapabilityDirections
Definition: h323caps.h:307
H323Capability::assignedCapabilityNumber
unsigned assignedCapabilityNumber
Definition: h323caps.h:354
H323NonStandardCapabilityInfo::comparisonLength
PINDEX comparisonLength
Definition: h323caps.h:467
H323Capability::GetCapabilityNumber
unsigned GetCapabilityNumber() const
Get unique capability number.
Definition: h323caps.h:321
H323Capabilities::Reorder
void Reorder(const PStringArray &preferenceOrder)
H323SimultaneousCapabilities::SetSize
PBoolean SetSize(PINDEX newSize)
H323Capabilities::H323Capabilities
H323Capabilities()
H323NonStandardVideoCapability::OnSendingPDU
virtual PBoolean OnSendingPDU(H245_VideoCapability &pdu) const
H323Capability::e_Data
Arbitrary data capability.
Definition: h323caps.h:121
H323AudioCapability::GetRxFramesInPacket
virtual unsigned GetRxFramesInPacket() const
H323DataCapability::maxBitRate
unsigned maxBitRate
Definition: h323caps.h:1725
H323GenericAudioCapability::OnReceivedPDU
virtual PBoolean OnReceivedPDU(const H245_AudioCapability &pdu, unsigned &packetSize, CommandType type)
H323Capability::DefaultH224SessionID
Definition: h323caps.h:160
H323NonStandardVideoCapability::H323NonStandardVideoCapability
H323NonStandardVideoCapability(H323NonStandardCapabilityInfo::CompareFuncType compareFunc, const BYTE *dataBlock, PINDEX dataSize)
H323GenericAudioCapability::OnSendingPDU
virtual PBoolean OnSendingPDU(H245_AudioCapability &pdu, unsigned packetSize, CommandType type) const
H323Capabilities::Merge
PBoolean Merge(const H323Capabilities &newCaps)
H323NonStandardVideoCapability::OnReceivedPDU
virtual PBoolean OnReceivedPDU(const H245_VideoCapability &pdu)
H323_UserInputCapability::GetFormatName
virtual PString GetFormatName() const
H323Capabilities::SetCapability
PINDEX SetCapability(PINDEX descriptorNum, PINDEX simultaneous, H323Capability *cap)
H323Capability::e_Receive
Definition: h323caps.h:303
H323Capability::SetCapabilityNumber
void SetCapabilityNumber(unsigned num)
Set unique capability number.
Definition: h323caps.h:324
H323_UserInputCapability::subType
SubTypes subType
Definition: h323caps.h:2064
H323NonStandardCapabilityInfo::OnReceivedPDU
virtual PBoolean OnReceivedPDU(const PBYTEArray &data)
PluginCodec_H323NonStandardCodecData::data
const unsigned char * data
Definition: opalplugin.h:642
H323Capability::CreateChannel
virtual H323Channel * CreateChannel(H323Connection &connection, H323Channel::Directions dir, unsigned sessionID, const H245_H2250LogicalChannelParameters *param) const =0
H323_UserInputCapability::HookFlashH245
Definition: h323caps.h:1924
H323NonStandardDataCapability::GetSubType
virtual unsigned GetSubType() const
H323NonStandardVideoCapability::IsMatch
virtual PBoolean IsMatch(const PASN_Choice &subTypePDU, const PString &mediaPacketization) const
H323DataCapability
Definition: h323caps.h:1584
H323Connection
Definition: h323con.h:130
H323Capability::GetSubType
virtual unsigned GetSubType() const =0
H323GenericControlCapability::H323GenericControlCapability
H323GenericControlCapability(const PString &identifier)
H323Capability::DefaultAudioSessionID
Definition: h323caps.h:157
H323GenericVideoCapability::OnReceivedPDU
virtual PBoolean OnReceivedPDU(const H245_VideoCapability &pdu, CommandType type)
H323NonStandardCapabilityInfo::nonStandardData
PBYTEArray nonStandardData
Definition: h323caps.h:465
H323_UserInputCapability::operator<<
friend ostream & operator<<(ostream &strm, SubTypes subType)
Definition: h323caps.h:1929
H323NonStandardCapabilityInfo::OnSendingNonStandardPDU
PBoolean OnSendingNonStandardPDU(PASN_Choice &pdu, unsigned nonStandardTag) const
H323_UserInputCapability::NumSubTypes
Definition: h323caps.h:1926
H323H239ControlCapability
Definition: h323caps.h:1545
H323DataCapability::OnSendingPDU
virtual PBoolean OnSendingPDU(H245_Capability &pdu) const
H323NonStandardCapabilityInfo::~H323NonStandardCapabilityInfo
virtual ~H323NonStandardCapabilityInfo()
H323_UserInputCapability::IsUsable
virtual PBoolean IsUsable(const H323Connection &connection) const
H323ExtendedVideoCapability::OnReceivedPDU
virtual PBoolean OnReceivedPDU(const H245_VideoCapability &pdu, CommandType type)
H323VideoCapability::OnReceivedPDU
virtual PBoolean OnReceivedPDU(const H245_Capability &pdu)
H323GenericControlCapability::OnReceivedPDU
virtual PBoolean OnReceivedPDU(const H245_Capability &pdu)
operator<<
ostream & operator<<(ostream &strm, OpalSilenceDetector::Mode mode)
H323DataCapability::GetMainType
virtual MainTypes GetMainType() const
H323_G711Capability::muLaw
American standard.
Definition: h323caps.h:1861
H323Capabilities
Definition: h323caps.h:2097
H323Capabilities::AddAllCapabilities
PINDEX AddAllCapabilities(const H323EndPoint &, PINDEX descriptorNum, PINDEX simultaneous, const PString &name, PBoolean exact=false)
Definition: h323caps.h:2196
H323GenericAudioCapability::Compare
Comparison Compare(const PObject &obj) const
mediafmt.h
H323NonStandardCapabilityInfo::compareFunc
CompareFuncType compareFunc
Definition: h323caps.h:468
H323RealTimeCapability::~H323RealTimeCapability
virtual ~H323RealTimeCapability()
H323Capability::IsUsable
virtual PBoolean IsUsable(const H323Connection &connection) const
H323RealTimeCapability::AttachQoS
void AttachQoS(RTP_QOS *_rtpqos)
Attach a QoS specification to this channel.
H323VideoCapability
Definition: h323caps.h:951
PluginCodec_H323NonStandardCodecData
Definition: opalplugin.h:637
PARRAY
PARRAY(H323CapabilitiesList, H323Capability)
H323H239VideoCapability::OnSendingPDU
virtual PBoolean OnSendingPDU(H245_VideoCapability &pdu, CommandType type) const
H323NonStandardAudioCapability::OnReceivedPDU
virtual PBoolean OnReceivedPDU(const H245_AudioCapability &pdu, unsigned &packetSize)
OpalMediaFormat::SetPayloadType
void SetPayloadType(RTP_DataFrame::PayloadTypes type)
Definition: mediafmt.h:915
H323NonStandardDataCapability
Definition: h323caps.h:1736
H323H239VideoCapability::OnReceivedPDU
virtual PBoolean OnReceivedPDU(const H245_VideoCapability &pdu, CommandType type)
H323Capability::Compare
Comparison Compare(const PObject &obj) const
H323Capabilities::PrintOn
void PrintOn(ostream &strm) const
H323GenericCapabilityInfo::OnSendingGenericPDU
virtual PBoolean OnSendingGenericPDU(H245_GenericCapability &pdu, const OpalMediaFormat &mediaFormat, H323Capability::CommandType type) const
H323ExtendedVideoCapability::OnSendingPDU
virtual PBoolean OnSendingPDU(H245_VideoCapability &pdu, CommandType type) const
H323ExtendedVideoCapability::m_videoFormats
OpalMediaFormatList m_videoFormats
Definition: h323caps.h:1371
H323NonStandardAudioCapability::OnSendingPDU
virtual PBoolean OnSendingPDU(H245_AudioCapability &pdu, unsigned packetSize) const
H323Capabilities::Add
void Add(H323Capability *capability)
H323Capability::GetPayloadType
RTP_DataFrame::PayloadTypes GetPayloadType() const
Get the payload type for the capaibility.
Definition: h323caps.h:337
H323Capability::e_OLC
Definition: h323caps.h:215
H323H239VideoCapability::Compare
Comparison Compare(const PObject &obj) const
H323_UserInputCapability::Clone
virtual PObject * Clone() const
H323Capability::e_ReceiveAndTransmit
Definition: h323caps.h:305
H323Capability::OnReceivedPDU
virtual PBoolean OnReceivedPDU(const H245_Capability &pdu)
H323Capability::UpdateMediaFormat
bool UpdateMediaFormat(const OpalMediaFormat &format)
H323AudioCapability::GetDefaultSessionID
virtual unsigned GetDefaultSessionID() const
H323RealTimeCapability::rtpqos
RTP_QOS * rtpqos
Definition: h323caps.h:543
H323Capabilities::IsAllowed
PBoolean IsAllowed(const H323Capability &capability)
H323SimultaneousCapabilities
Definition: h323caps.h:2075
H323ExtendedVideoCapability
Definition: h323caps.h:1298
H323NonStandardVideoCapability::Compare
Comparison Compare(const PObject &obj) const
H323GenericAudioCapability::IsMatch
virtual PBoolean IsMatch(const PASN_Choice &subTypePDU, const PString &mediaPacketization) const
H323ExtendedVideoCapability::IsMatch
virtual PBoolean IsMatch(const PASN_Choice &subTypePDU, const PString &mediaPacketization) const
H323GenericControlCapability::GetMainType
virtual MainTypes GetMainType() const
H323NonStandardAudioCapability
Definition: h323caps.h:738
H323NonStandardVideoCapability::GetSubType
virtual unsigned GetSubType() const
H323Capabilities::BuildPDU
void BuildPDU(const H323Connection &connection, H245_TerminalCapabilitySet &pdu) const
H323_UserInputCapability::GeneralString
Definition: h323caps.h:1922
H323Capability::AttachQoS
virtual void AttachQoS(RTP_QOS *)
Attach a QoS specification to this channel.
Definition: h323caps.h:343
H323GenericControlCapability
Definition: h323caps.h:1379
H323Capability::GetMainType
virtual MainTypes GetMainType() const =0
H323Capabilities::AddAllCapabilities
PINDEX AddAllCapabilities(PINDEX descriptorNum, PINDEX simultaneous, const PString &name, PBoolean exact=false)
H323Capabilities::RemoveAll
void RemoveAll()
H323Capabilities::set
H323CapabilitiesSet set
Definition: h323caps.h:2404
H323Capability::e_Video
Video codec capability.
Definition: h323caps.h:119
H323Capabilities::GetMediaFormats
OpalMediaFormatList GetMediaFormats() const
H323GenericVideoCapability
Definition: h323caps.h:1210
H323_UserInputCapability
Definition: h323caps.h:1912
H323GenericControlCapability::IsMatch
virtual PBoolean IsMatch(const PASN_Choice &subTypePDU, const PString &mediaPacketization) const
H323_G711Capability::GetSubType
virtual unsigned GetSubType() const
H323_UserInputCapability::SignalToneH245
Definition: h323caps.h:1923
H323_UserInputCapability::H323_UserInputCapability
H323_UserInputCapability(SubTypes subType)
H323NonStandardCapabilityInfo::IsMatch
PBoolean IsMatch(const H245_NonStandardParameter &param) const
H323AudioCapability::GetTxFramesInPacket
virtual unsigned GetTxFramesInPacket() const
H323Capability::PrintOn
void PrintOn(ostream &strm) const
H323AudioCapability::H323AudioCapability
H323AudioCapability()
H323_G711Capability::Clone
virtual PObject * Clone() const
H323GenericVideoCapability::IsMatch
virtual PBoolean IsMatch(const PASN_Choice &subTypePDU, const PString &mediaPacketization) const
H323GenericCapabilityInfo::OnReceivedGenericPDU
virtual PBoolean OnReceivedGenericPDU(OpalMediaFormat &mediaFormat, const H245_GenericCapability &pdu, H323Capability::CommandType type)
H323GenericAudioCapability::GetSubType
virtual unsigned GetSubType() const
H323_UserInputCapability::IA5String
Definition: h323caps.h:1921
H323NonStandardCapabilityInfo::OnReceivedNonStandardPDU
PBoolean OnReceivedNonStandardPDU(const PASN_Choice &pdu, unsigned nonStandardTag)
H323EndPoint
Definition: h323ep.h:85
H323Capability::SetCapabilityDirection
void SetCapabilityDirection(CapabilityDirection dir)
Definition: h323caps.h:316
H323Capability::GetDefaultSessionID
virtual unsigned GetDefaultSessionID() const
H323AudioCapability
Definition: h323caps.h:554
H323H239ControlCapability::Clone
virtual PObject * Clone() const
H323_G711Capability::mode
Mode mode
Definition: h323caps.h:1904
H323Capability::MainTypes
MainTypes
Definition: h323caps.h:115
H323Capability::GetTxFramesInPacket
virtual unsigned GetTxFramesInPacket() const
H323DataCapability::H323DataCapability
H323DataCapability(unsigned maxBitRate=0)
H323GenericAudioCapability::H323GenericAudioCapability
H323GenericAudioCapability(const PString &capabilityId, PINDEX maxBitRate=0)
H323GenericCapabilityInfo::IsMatch
PBoolean IsMatch(const H245_GenericCapability &param) const
H323H239VideoCapability::GetFormatName
virtual PString GetFormatName() const
H323GenericAudioCapability
Definition: h323caps.h:857
H323_G711Capability::H323_G711Capability
H323_G711Capability(Mode mode=muLaw, Speed speed=At64k)
H323Capability::GetWritableMediaFormat
OpalMediaFormat & GetWritableMediaFormat() const
H323Capability::OnSendingPDU
virtual PBoolean OnSendingPDU(H245_Capability &pdu) const =0
H323NonStandardCapabilityInfo::H323NonStandardCapabilityInfo
H323NonStandardCapabilityInfo(CompareFuncType compareFunc, const BYTE *dataBlock, PINDEX dataSize)
H323DataCapability::OnReceivedPDU
virtual PBoolean OnReceivedPDU(const H245_Capability &pdu)
H323Capability::IsMatch
virtual PBoolean IsMatch(const PASN_Choice &subTypePDU, const PString &mediaPacketization) const
H323Capabilities::GetSize
PINDEX GetSize() const
Definition: h323caps.h:2144
H323Capability::e_Transmit
Definition: h323caps.h:304
H323_UserInputCapability::OnReceivedPDU
virtual PBoolean OnReceivedPDU(const H245_Capability &pdu)