# H323_UserInputCapability Class Reference

`#include <h323caps.h>`

Inheritance diagram for H323_UserInputCapability:

[legend]
Collaboration diagram for H323_UserInputCapability:
[legend]

## Construction

enum | SubTypes { BasicString, IA5String, GeneralString, SignalToneH245, HookFlashH245, SignalToneRFC2833, NumSubTypes }
| H323_UserInputCapability (SubTypes subType)
static const char * | GetSubTypeName (SubTypes subType)
ostream & | operator<< (ostream &strm, SubTypes subType)

## Public Member Functions

Overrides from class PObject
virtual PObject * | Clone () const
Identification functions
virtual MainTypes | GetMainType () const
virtual unsigned | GetSubType () const
virtual PString | GetFormatName () const
Operations
virtual H323Channel * | CreateChannel (H323Connection &connection, H323Channel::Directions dir, unsigned sessionID, const H245_H2250LogicalChannelParameters *param) const
Protocol manipulation
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 Public Member Functions

static void | AddAllCapabilities (H323Capabilities &capabilities, PINDEX descriptorNum, PINDEX simultaneous, bool includeRFC2833=true)

## Protected Attributes

SubTypes | subType

## Detailed Description

This class describes the UserInput psuedo-channel.

## Member Enumeration Documentation

enum H323_UserInputCapability::SubTypes

Enumerator:

  BasicString |
  IA5String |
  GeneralString |
  SignalToneH245 |
  HookFlashH245 |
  SignalToneRFC2833 |
  NumSubTypes |

## Constructor & Destructor Documentation

H323_UserInputCapability::H323_UserInputCapability | ( | SubTypes | subType | ) |

Create the capability for User Input. The subType parameter is a value from the enum H245_UserInputCapability::Choices.

## Member Function Documentation

static void H323_UserInputCapability::AddAllCapabilities | ( | H323Capabilities & | capabilities,
|  | PINDEX | descriptorNum,
|  | PINDEX | simultaneous,
|  | bool | includeRFC2833 = `true` |
| ) |  |  | `[static]`

Parameters:

  capabilities | Table to add capabilities to
  descriptorNum | The member of the capabilityDescriptor to add
  simultaneous | The member of the SimultaneousCapabilitySet to add

virtual PObject* H323_UserInputCapability::Clone | ( |  | ) | const`[virtual]`

Create a copy of the object.

virtual H323Channel* H323_UserInputCapability::CreateChannel | ( | H323Connection & | connection,
|  | H323Channel::Directions | dir,
|  | unsigned | sessionID,
|  | const H245_H2250LogicalChannelParameters * | param |
| ) |  |  | const`[virtual]`

Create the channel instance, allocating resources as required. This creates a logical channel object appropriate for the parameters provided. Not if param is NULL, sessionID must be provided, otherwise this is taken from the fields in param.

Parameters:

  connection | Owner connection for channel
  dir | Direction of channel
  sessionID | Session ID for RTP channel
  param | Parameters for channel

Implements H323Capability.

virtual PString H323_UserInputCapability::GetFormatName | ( |  | ) | const`[virtual]`

Get the name of the media data format this class represents.

Implements H323Capability.

virtual MainTypes H323_UserInputCapability::GetMainType | ( |  | ) | const`[virtual]`

Get the main type of the capability.

This function is overridden by one of the three main sub-classes off which real capabilities would be descendend.

Implements H323Capability.

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

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

Implements H323Capability.

static const char* H323_UserInputCapability::GetSubTypeName | ( | SubTypes | subType | ) | `[static]`

virtual PBoolean H323_UserInputCapability::IsUsable | ( | const H323Connection & | connection | ) | const`[virtual]`

Validate that the capability is usable given the connection. This checks agains the negotiated protocol version number and remote application to determine if this capability should be used in TCS or OLC pdus.

The default behaviour will check for early versions and return false for RFC2833 mode.

Reimplemented from H323Capability.

virtual PBoolean H323_UserInputCapability::OnReceivedPDU | ( | const H245_DataType & | pdu,
|  | PBoolean | receiver |
| ) |  |  | `[virtual]`

This function is called whenever and incoming 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 is pure.

Parameters:

  pdu | PDU to get information from
  receiver | Is receiver OLC

Reimplemented from H323Capability.

virtual PBoolean H323_UserInputCapability::OnReceivedPDU | ( | const H245_Capability & | pdu | ) | `[virtual]`

This function is called whenever and incoming TerminalCapabilitySet PDU is received on the control channel, and a new H323Capability descendent was created. This completes reading fields from the PDU into the classes members.

If the function returns false then the received PDU codec description is not supported, so will be ignored. The default behaviour simply returns true.

Parameters:

  pdu | PDU to get information from

Reimplemented from H323Capability.

virtual PBoolean H323_UserInputCapability::OnSendingPDU | ( | H245_ModeElement & | 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 the OnSendingPDU() function with a more specific PDU type.

Parameters:

  pdu | PDU to set information on

Implements H323Capability.

virtual PBoolean H323_UserInputCapability::OnSendingPDU | ( | H245_DataType & | pdu | ) | const`[virtual]`

This function is called whenever and outgoing 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 is pure.

Parameters:

  pdu | PDU to set information on

Reimplemented from H323Capability.

virtual PBoolean H323_UserInputCapability::OnSendingPDU | ( | H245_Capability & | pdu | ) | const`[virtual]`

This function is called whenever and outgoing TerminalCapabilitySet 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 is pure.

Parameters:

  pdu | PDU to set information on

Implements H323Capability.

## Friends And Related Function Documentation

ostream& operator<< | ( | ostream & | strm,
|  | SubTypes | subType |
| ) |  |  | `[friend]`

## Field Documentation

SubTypes H323_UserInputCapability::subType `[protected]`

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

- h323caps.h