34 #ifndef OPAL_H323_H323CAPS_H 35 #define OPAL_H323_H323CAPS_H 55 class H245_Capability;
57 class H245_ModeElement;
58 class H245_AudioCapability;
60 class H245_VideoCapability;
62 class H245_DataApplicationCapability;
64 class H245_DataProtocolCapability;
65 class H245_H2250LogicalChannelParameters;
66 class H245_TerminalCapabilitySet;
67 class H245_NonStandardParameter;
70 class H245_CapabilityIdentifier;
71 class H245_GenericCapability;
72 class H245_GenericParameter;
106 Comparison
Compare(
const PObject & obj)
const;
110 void PrintOn(ostream & strm)
const;
206 const H245_H2250LogicalChannelParameters * param
227 H245_Capability & pdu
249 H245_ModeElement & pdu
265 const H245_Capability & pdu
276 const H245_DataType & pdu,
283 const PASN_Choice & subTypePDU,
284 const PString & mediaPacketization
359 P_REMOVE_VIRTUAL(PBoolean,
IsMatch(
const PASN_Choice &)
const,
false);
382 CompareFuncType compareFunc,
383 const BYTE * dataBlock,
390 const BYTE * dataBlock,
392 PINDEX comparisonOffset = 0,
393 PINDEX comparisonLength = P_MAX_INDEX
400 const BYTE * dataBlock,
402 PINDEX comparisonOffset = 0,
403 PINDEX comparisonLength = P_MAX_INDEX
412 const BYTE * dataBlock,
414 PINDEX comparisonOffset = 0,
415 PINDEX comparisonLength = P_MAX_INDEX
435 const PBYTEArray &
data 438 PBoolean
IsMatch(
const H245_NonStandardParameter & param)
const;
440 PObject::Comparison CompareParam(
441 const H245_NonStandardParameter & param
445 PBoolean OnSendingNonStandardPDU(
447 unsigned nonStandardTag
449 PBoolean OnReceivedNonStandardPDU(
450 const PASN_Choice & pdu,
451 unsigned nonStandardTag
454 PObject::Comparison CompareInfo(
457 PObject::Comparison CompareData(
458 const PBYTEArray &
data 485 unsigned maxBitRate = 0
491 virtual PBoolean OnSendingGenericPDU(
492 H245_GenericCapability & pdu,
496 virtual PBoolean OnReceivedGenericPDU(
498 const H245_GenericCapability & pdu,
503 const H245_GenericCapability & param
505 PObject::Comparison CompareInfo(
533 const H245_H2250LogicalChannelParameters * param
624 H245_Capability & pdu
648 H245_ModeElement & pdu
660 H245_AudioCapability & pdu,
664 H245_AudioCapability & pdu,
693 const H245_Capability & pdu
706 const H245_DataType & pdu,
719 const H245_AudioCapability & pdu,
720 unsigned & packetSize
723 const H245_AudioCapability & pdu,
724 unsigned & packetSize,
748 const BYTE * dataBlock,
754 const BYTE * dataBlock = NULL,
756 PINDEX comparisonOffset = 0,
757 PINDEX comparisonLength = P_MAX_INDEX
764 const BYTE * dataBlock = NULL,
766 PINDEX comparisonOffset = 0,
767 PINDEX comparisonLength = P_MAX_INDEX
776 const BYTE * dataBlock = NULL,
778 PINDEX comparisonOffset = 0,
779 PINDEX comparisonLength = P_MAX_INDEX
788 Comparison
Compare(
const PObject & obj)
const;
812 H245_AudioCapability & pdu,
837 const H245_AudioCapability & pdu,
838 unsigned & packetSize
844 const PASN_Choice & subTypePDU,
845 const PString & mediaPacketization
868 const PString & capabilityId,
869 PINDEX maxBitRate = 0
878 Comparison
Compare(
const PObject & obj)
const;
902 H245_AudioCapability & pdu,
928 const H245_AudioCapability & pdu,
929 unsigned & packetSize,
936 const PASN_Choice & subTypePDU,
937 const PString & mediaPacketization
988 H245_Capability & pdu
1012 H245_ModeElement & pdu
1023 H245_VideoCapability & pdu
1026 H245_VideoCapability & pdu,
1039 H245_VideoMode & pdu
1052 const H245_Capability & pdu
1063 const H245_DataType & pdu,
1075 const H245_VideoCapability & pdu
1078 const H245_VideoCapability & pdu,
1102 const BYTE * dataBlock,
1108 const BYTE * dataBlock = NULL,
1109 PINDEX dataSize = 0,
1110 PINDEX comparisonOffset = 0,
1111 PINDEX comparisonLength = P_MAX_INDEX
1117 const PString & oid,
1118 const BYTE * dataBlock = NULL,
1119 PINDEX dataSize = 0,
1120 PINDEX comparisonOffset = 0,
1121 PINDEX comparisonLength = P_MAX_INDEX
1130 const BYTE * dataBlock = NULL,
1131 PINDEX dataSize = 0,
1132 PINDEX comparisonOffset = 0,
1133 PINDEX comparisonLength = P_MAX_INDEX
1142 Comparison
Compare(
const PObject & obj)
const;
1167 H245_VideoCapability & pdu
1179 H245_VideoMode & pdu
1191 const H245_VideoCapability & pdu
1197 const PASN_Choice & subTypePDU,
1198 const PString & mediaPacketization
1221 const PString & capabilityId,
1222 PINDEX maxBitRate = 0
1231 Comparison
Compare(
const PObject & obj)
const;
1255 H245_VideoCapability & pdu,
1268 H245_VideoMode & pdu
1280 const H245_VideoCapability & pdu,
1287 const PASN_Choice & subTypePDU,
1288 const PString & mediaPacketization
1308 const PString & identifier
1333 H245_VideoCapability & pdu,
1346 H245_VideoMode & pdu
1358 const H245_VideoCapability & pdu,
1365 const PASN_Choice & subTypePDU,
1366 const PString & mediaPacketization
1390 const PString & identifier
1420 H245_Capability & pdu
1431 H245_ModeElement & pdu
1444 const H245_Capability & pdu
1450 const PASN_Choice & subTypePDU,
1451 const PString & mediaPacketization
1466 const H245_H2250LogicalChannelParameters * param
1494 Comparison
Compare(
const PObject & obj)
const;
1498 virtual PObject * Clone()
const;
1502 void PrintOn(ostream & strm)
const;
1523 H245_VideoCapability & pdu,
1536 const H245_VideoCapability & pdu,
1561 virtual PObject * Clone()
const;
1575 #endif // OPAL_VIDEO 1594 unsigned maxBitRate = 0
1629 H245_Capability & pdu
1653 H245_ModeElement & pdu
1664 H245_DataApplicationCapability & pdu
1667 H245_DataApplicationCapability & pdu,
1693 const H245_Capability & pdu
1704 const H245_DataType & pdu,
1716 const H245_DataApplicationCapability & pdu
1719 const H245_DataApplicationCapability & pdu,
1747 unsigned maxBitRate,
1748 const BYTE * dataBlock = NULL,
1749 PINDEX dataSize = 0,
1750 PINDEX comparisonOffset = 0,
1751 PINDEX comparisonLength = P_MAX_INDEX
1757 unsigned maxBitRate,
1758 const PString & oid,
1759 const BYTE * dataBlock = NULL,
1760 PINDEX dataSize = 0,
1761 PINDEX comparisonOffset = 0,
1762 PINDEX comparisonLength = P_MAX_INDEX
1768 unsigned maxBitRate,
1772 const BYTE * dataBlock = NULL,
1773 PINDEX dataSize = 0,
1774 PINDEX comparisonOffset = 0,
1775 PINDEX comparisonLength = P_MAX_INDEX
1784 Comparison
Compare(
const PObject & obj)
const;
1809 H245_DataApplicationCapability & pdu
1833 const H245_DataApplicationCapability & pdu
1839 const PASN_Choice & subTypePDU,
1840 const PString & mediaPacketization
1885 virtual PObject * Clone()
const;
1928 static const char * GetSubTypeName(
SubTypes subType);
1929 friend ostream &
operator<<(ostream & strm,
SubTypes subType) {
return strm << GetSubTypeName(subType); }
1944 virtual PObject * Clone()
const;
1977 const H245_H2250LogicalChannelParameters * param
1992 H245_Capability & pdu
2015 H245_ModeElement & pdu
2028 const H245_Capability & pdu
2039 const H245_DataType & pdu,
2056 static void AddAllCapabilities(
2058 PINDEX descriptorNum,
2059 PINDEX simultaneous,
2060 bool includeRFC2833 =
true 2073 PARRAY(H323CapabilitiesListArray, H323CapabilitiesList);
2079 PBoolean SetSize(PINDEX newSize);
2091 PBoolean SetSize(PINDEX newSize);
2111 const H245_TerminalCapabilitySet & pdu
2144 PINDEX
GetSize()
const {
return table.GetSize(); }
2170 PINDEX SetCapability(
2171 PINDEX descriptorNum,
2172 PINDEX simultaneous,
2178 PINDEX AddMediaFormat(
2179 PINDEX descriptorNum,
2180 PINDEX simultaneous,
2188 PINDEX AddAllCapabilities(
2189 PINDEX descriptorNum,
2190 PINDEX simultaneous,
2191 const PString & name,
2192 PBoolean exact =
false 2198 PINDEX descriptorNum,
2199 PINDEX simultaneous,
2200 const PString & name,
2201 PBoolean exact =
false 2203 {
return AddAllCapabilities(descriptorNum, simultaneous, name, exact); }
2240 const PString & formatName
2247 const PStringArray & formatNames
2262 unsigned capabilityNumber
2281 const PString & formatName,
2284 PBoolean exact =
false 2313 const H245_Capability & cap
2322 const H245_DataType & dataType,
2323 const PString & mediaPacketization = PString::Empty()
2332 const H245_ModeElement & modeElement,
2333 const PString & mediaPacketization = PString::Empty()
2343 unsigned subType = UINT_MAX
2350 H245_TerminalCapabilitySet & pdu
2366 const PStringArray & preferenceOrder
2378 unsigned capabilityNumber
2391 unsigned capabilityNumber1,
2392 unsigned capabilityNumber2
2415 #define H323_REGISTER_CAPABILITY(cls, capName) static H323CapabilityFactory::Worker<cls> cls##Factory(capName, true); \ 2420 #endif // OPAL_H323_H323CAPS_H CommandType
Definition: h323caps.h:213
Definition: h323caps.h:159
CapabilityDirection
Definition: h323caps.h:301
Definition: h323caps.h:374
Definition: h323caps.h:520
virtual void SetTxFramesInPacket(unsigned frames)
PString m_identifier
Definition: h323caps.h:510
Mode
Specific G.711 encoding algorithm.
Definition: h323caps.h:1857
Definition: h323caps.h:302
BYTE t35Extension
Definition: h323caps.h:463
unsigned maxBitRate
Definition: h323caps.h:511
Definition: h323caps.h:216
void SetPayloadType(RTP_DataFrame::PayloadTypes pt)
Set the payload type for the capaibility.
Definition: h323caps.h:340
Definition: h323caps.h:480
H323Capability & operator[](PINDEX i) const
Definition: h323caps.h:2148
PStringSet m_mediaPacketizations
Definition: h323caps.h:2405
virtual ~H323GenericCapabilityInfo()
Definition: h323caps.h:488
Speed speed
Definition: h323caps.h:1905
Definition: h323caps.h:89
Directions
Definition: channels.h:129
PINDEX comparisonOffset
Definition: h323caps.h:466
Definition: h323caps.h:158
Definition: h323caps.h:306
BYTE t35CountryCode
Definition: h323caps.h:462
CapabilityDirection GetCapabilityDirection() const
Definition: h323caps.h:312
User Input capability.
Definition: h323caps.h:123
Definition: h323caps.h:1475
Count of main types.
Definition: h323caps.h:127
Definition: h323caps.h:214
Definition: h323caps.h:2086
European standard.
Definition: h323caps.h:1859
virtual PString GetFormatName() const =0
European standard.
Definition: h323caps.h:1866
PayloadTypes
Definition: rtp.h:86
Definition: h323caps.h:1851
PFactory< H323Capability, std::string > H323CapabilityFactory
Definition: h323caps.h:2413
WORD manufacturerCode
Definition: h323caps.h:464
Generic Control.
Definition: h323caps.h:125
PString oid
Definition: h323caps.h:461
Definition: channels.h:99
Speed
Specific G.711 encoding bit rates.
Definition: h323caps.h:1864
static H323Capability * Create(const PString &name)
OpalMediaFormat GetMediaFormat() const
Definition: h323caps.h:1092
virtual unsigned GetRxFramesInPacket() const
PObject::Comparison(* CompareFuncType)(struct PluginCodec_H323NonStandardCodecData *)
Definition: h323caps.h:377
CapabilityDirection capabilityDirection
Unique ID assigned to capability.
Definition: h323caps.h:355
Audio codec capability.
Definition: h323caps.h:117
H323CapabilitiesList table
Definition: h323caps.h:2403
const PStringSet & GetMediaPacketizations() const
Definition: h323caps.h:2399
Definition: h323caps.h:307
unsigned assignedCapabilityNumber
Definition: h323caps.h:354
PINDEX comparisonLength
Definition: h323caps.h:467
unsigned GetCapabilityNumber() const
Get unique capability number.
Definition: h323caps.h:321
Arbitrary data capability.
Definition: h323caps.h:121
unsigned maxBitRate
Definition: h323caps.h:1725
Definition: h323caps.h:160
Definition: h323caps.h:303
void SetCapabilityNumber(unsigned num)
Set unique capability number.
Definition: h323caps.h:324
const unsigned char * data
Definition: opalplugin.h:642
virtual H323Channel * CreateChannel(H323Connection &connection, H323Channel::Directions dir, unsigned sessionID, const H245_H2250LogicalChannelParameters *param) const =0
Definition: h323caps.h:1584
Definition: h323con.h:130
virtual unsigned GetSubType() const =0
Definition: h323caps.h:157
PBYTEArray nonStandardData
Definition: h323caps.h:465
Definition: h323caps.h:1545
ostream & operator<<(ostream &strm, OpalSilenceDetector::Mode mode)
Definition: h323caps.h:2097
PINDEX AddAllCapabilities(const H323EndPoint &, PINDEX descriptorNum, PINDEX simultaneous, const PString &name, PBoolean exact=false)
Definition: h323caps.h:2196
CompareFuncType compareFunc
Definition: h323caps.h:468
virtual PBoolean IsUsable(const H323Connection &connection) const
Definition: h323caps.h:951
Definition: opalplugin.h:637
PARRAY(H323CapabilitiesList, H323Capability)
Definition: h323caps.h:1736
Comparison Compare(const PObject &obj) const
OpalMediaFormatList m_videoFormats
Definition: h323caps.h:1371
friend class H323Capabilities
Definition: h323caps.h:361
RTP_DataFrame::PayloadTypes GetPayloadType() const
Get the payload type for the capaibility.
Definition: h323caps.h:337
Definition: h323caps.h:215
Definition: h323caps.h:305
virtual PBoolean OnReceivedPDU(const H245_Capability &pdu)
bool UpdateMediaFormat(const OpalMediaFormat &format)
RTP_QOS * rtpqos
Definition: h323caps.h:543
Definition: h323caps.h:2075
Definition: h323caps.h:1298
Definition: h323caps.h:738
virtual void AttachQoS(RTP_QOS *)
Attach a QoS specification to this channel.
Definition: h323caps.h:343
Definition: h323caps.h:1379
virtual MainTypes GetMainType() const =0
Video codec capability.
Definition: h323caps.h:119
Definition: h323caps.h:1210
void PrintOn(ostream &strm) const
void SetCapabilityDirection(CapabilityDirection dir)
Definition: h323caps.h:316
virtual unsigned GetDefaultSessionID() const
Definition: h323caps.h:554
Mode mode
Definition: h323caps.h:1904
MainTypes
Definition: h323caps.h:115
virtual unsigned GetTxFramesInPacket() const
Definition: h323caps.h:857
OpalMediaFormat & GetWritableMediaFormat() const
virtual PBoolean OnSendingPDU(H245_Capability &pdu) const =0
virtual PBoolean IsMatch(const PASN_Choice &subTypePDU, const PString &mediaPacketization) const
PINDEX GetSize() const
Definition: h323caps.h:2144
Definition: h323caps.h:304