# H323NonStandardAudioCapability Class Reference

`#include <h323caps.h>`

Inheritance diagram for H323NonStandardAudioCapability:

[legend]
Collaboration diagram for H323NonStandardAudioCapability:
[legend]

## Public Member Functions

Construction
| 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)
Overrides from class PObject
Comparison | Compare (const PObject &obj) const
Identification functions
virtual unsigned | GetSubType () const
Protocol manipulation
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

## Detailed Description

This class describes the interface to a non-standard audio codec used to transfer data via the logical channels opened and managed by the H323 control channel.

An application may create a descendent off this class and override functions as required for descibing the codec.

## Constructor & Destructor Documentation

H323NonStandardAudioCapability::H323NonStandardAudioCapability | ( | H323NonStandardCapabilityInfo::CompareFuncType | compareFunc,
|  | const BYTE * | dataBlock,
|  | PINDEX | dataSize |
| ) |  |  |

Parameters:

  dataBlock | Non-Standard data for codec type
  dataSize | Size of dataBlock. If 0 and dataBlock != NULL use strlen(dataBlock)

H323NonStandardAudioCapability::H323NonStandardAudioCapability | ( | const BYTE * | dataBlock = `NULL`,
|  | PINDEX | dataSize = `0`,
|  | PINDEX | comparisonOffset = `0`,
|  | PINDEX | comparisonLength = `P_MAX_INDEX` |
| ) |  |  |

Create a new set of information about a non-standard codec.

Parameters:

  dataBlock | Non-Standard data for codec type
  dataSize | Size of dataBlock. If 0 and dataBlock != NULL use strlen(dataBlock)
  comparisonOffset | Offset into dataBlock to compare
  comparisonLength | Length of bytes to compare

H323NonStandardAudioCapability::H323NonStandardAudioCapability | ( | const PString & | oid,
|  | const BYTE * | dataBlock = `NULL`,
|  | PINDEX | dataSize = `0`,
|  | PINDEX | comparisonOffset = `0`,
|  | PINDEX | comparisonLength = `P_MAX_INDEX` |
| ) |  |  |

Create a new set of information about a non-standard codec.

Parameters:

  oid | OID for indentification of codec
  dataBlock | Non-Standard data for codec type
  dataSize | Size of dataBlock. If 0 and dataBlock != NULL use strlen(dataBlock)
  comparisonOffset | Offset into dataBlock to compare
  comparisonLength | Length of bytes to compare

H323NonStandardAudioCapability::H323NonStandardAudioCapability | ( | BYTE | country,
|  | BYTE | extension,
|  | WORD | maufacturer,
|  | const BYTE * | dataBlock = `NULL`,
|  | PINDEX | dataSize = `0`,
|  | PINDEX | comparisonOffset = `0`,
|  | PINDEX | comparisonLength = `P_MAX_INDEX` |
| ) |  |  |

Create a new set of information about a non-standard codec.

Parameters:

  country | t35 information
  extension | t35 information
  maufacturer | t35 information
  dataBlock | Non-Standard data for codec type
  dataSize | Size of dataBlock. If 0 and dataBlock != NULL use strlen(dataBlock)
  comparisonOffset | Offset into dataBlock to compare
  comparisonLength | Length of bytes to compare

## Member Function Documentation

Comparison H323NonStandardAudioCapability::Compare | ( | const PObject & | obj | ) | const

Compare two capability instances. This compares the main and sub-types of the capability.

Reimplemented from H323Capability.

virtual unsigned H323NonStandardAudioCapability::GetSubType | ( |  | ) | const`[virtual]`

Get the sub-type of the capability. This is a code dependent on the main type of the capability.

This returns H245_AudioCapability::e_nonStandard.

Implements H323Capability.

virtual PBoolean H323NonStandardAudioCapability::IsMatch | ( | const PASN_Choice & | subTypePDU,
|  | const PString & | mediaPacketization |
| ) |  |  | const`[virtual]`

Compare the nonStandardData part of the capability, if applicable.

Parameters:

  subTypePDU | sub-type PDU of H323Capability
  mediaPacketization | Media packetization used

Reimplemented from H323Capability.

virtual PBoolean H323NonStandardAudioCapability::OnReceivedPDU | ( | const H245_AudioCapability & | pdu,
|  | unsigned & | packetSize |
| ) |  |  | `[virtual]`

This function is called whenever and incoming TerminalCapabilitySet or OpenLogicalChannel PDU has been used to construct the control channel. It allows the capability to set from the PDU fields, information in members specific to the class.

The default behaviour calls H323NonStandardCapabilityinfo::OnReceivedPDU() to handle the provided PDU.

Parameters:

  pdu | PDU to get information from
  packetSize | Packet size to use in capability

Reimplemented from H323AudioCapability.

virtual PBoolean H323NonStandardAudioCapability::OnSendingPDU | ( | H245_AudioMode & | pdu | ) | const`[virtual]`

This function is called whenever and outgoing RequestMode PDU is being constructed for the control channel. It allows the capability to set the PDU fields from information in members specific to the class.

The default behaviour calls H323NonStandardCapabilityinfo::OnSendingPDU() to handle the PDU.

Parameters:

  pdu | PDU to set information on

Reimplemented from H323AudioCapability.

virtual PBoolean H323NonStandardAudioCapability::OnSendingPDU | ( | H245_AudioCapability & | pdu,
|  | unsigned | packetSize |
| ) |  |  | const`[virtual]`

This function is called whenever and outgoing TerminalCapabilitySet or OpenLogicalChannel PDU is being constructed for the control channel. It allows the capability to set the PDU fields from information in members specific to the class.

The default behaviour calls H323NonStandardCapabilityinfo::OnSendingPDU() to handle the PDU.

Parameters:

  pdu | PDU to set information on
  packetSize | Packet size to use in capability

Reimplemented from H323AudioCapability.

The documentation for this class was generated from the following file:

- h323caps.h