# H323Transactor Class Reference

`#include <h323trans.h>`

Inheritance diagram for H323Transactor:

[legend]
Collaboration diagram for H323Transactor:
[legend]

## Public Member Functions

Construction
| H323Transactor (H323EndPoint &endpoint, H323Transport *transport, WORD localPort, WORD remotePort)
| H323Transactor (H323EndPoint &endpoint, const H323TransportAddress &iface, WORD localPort, WORD remotePort)
| ~H323Transactor ()
Overrides from PObject
void | PrintOn (ostream &strm) const
new operations
PBoolean | SetTransport (const H323TransportAddress &iface)
H323TransportAddressArray | GetInterfaceAddresses (bool excludeLocalHost=true)
virtual PBoolean | StartChannel ()
virtual void | StopChannel ()
virtual H323TransactionPDU * | CreateTransactionPDU () const =0
virtual PBoolean | HandleTransaction (const PASN_Object &rawPDU)=0
virtual void | OnSendingPDU (PASN_Object &rawPDU)=0
virtual PBoolean | WritePDU (H323TransactionPDU &pdu)
virtual PBoolean | WriteTo (H323TransactionPDU &pdu, const H323TransportAddressArray &addresses, PBoolean callback=true)
Member variable access
H323EndPoint & | GetEndPoint () const
H323Transport & | GetTransport () const
void | SetCheckResponseCryptoTokens (PBoolean value)
PBoolean | GetCheckResponseCryptoTokens ()

## Protected Member Functions

void | Construct ()
unsigned | GetNextSequenceNumber ()
PBoolean | SetUpCallSignalAddresses (H225_ArrayOf_TransportAddress &addresses)
| PDECLARE_NOTIFIER (PThread, H323Transactor, HandleTransactions)
virtual PBoolean | MakeRequest (Request &request)
PBoolean | CheckForResponse (unsigned, unsigned, const PASN_Choice *=NULL)
PBoolean | HandleRequestInProgress (const H323TransactionPDU &pdu, unsigned delay)
PBoolean | CheckCryptoTokens (const H323TransactionPDU &pdu, const PASN_Array &clearTokens, unsigned clearOptionalField, const PASN_Array &cryptoTokens, unsigned cryptoOptionalField)
void | AgeResponses ()
PBoolean | SendCachedResponse (const H323TransactionPDU &pdu)

## Protected Attributes

H323EndPoint & | endpoint
WORD | defaultLocalPort
WORD | defaultRemotePort
H323Transport * | transport
PBoolean | checkResponseCryptoTokens
unsigned | nextSequenceNumber
PMutex | nextSequenceNumberMutex
PDictionary< POrdinalKey, Request > | requests
PMutex | requestsMutex
Request * | lastRequest
PMutex | pduWriteMutex
PSortedList< Response > | responses

## Data Structures

class | Request
class | Response

## Constructor & Destructor Documentation

H323Transactor::H323Transactor | ( | H323EndPoint & | endpoint,
|  | H323Transport * | transport,
|  | WORD | localPort,
|  | WORD | remotePort |
| ) |  |  |

Create a new protocol handler.

Parameters:

  endpoint | Endpoint gatekeeper is associated with.
  transport | Transport over which to communicate.
  localPort | Local port to listen on
  remotePort | Remote port to connect on

H323Transactor::H323Transactor | ( | H323EndPoint & | endpoint,
|  | const H323TransportAddress & | iface,
|  | WORD | localPort,
|  | WORD | remotePort |
| ) |  |  |

Parameters:

  endpoint | Endpoint gatekeeper is associated with.
  iface | Local interface over which to communicate.
  localPort | Local port to listen on
  remotePort | Remote port to connect on

H323Transactor::~H323Transactor | ( |  | ) |

Destroy protocol handler.

## Member Function Documentation

void H323Transactor::AgeResponses | ( |  | ) | `[protected]`

PBoolean H323Transactor::CheckCryptoTokens | ( | const H323TransactionPDU & | pdu,
|  | const PASN_Array & | clearTokens,
|  | unsigned | clearOptionalField,
|  | const PASN_Array & | cryptoTokens,
|  | unsigned | cryptoOptionalField |
| ) |  |  | `[protected]`

PBoolean H323Transactor::CheckForResponse | ( | unsigned | ,
|  | unsigned | ,
|  | const PASN_Choice * | = `NULL` |
| ) |  |  | `[protected]`

void H323Transactor::Construct | ( |  | ) | `[protected]`

Reimplemented in H323_AnnexG, and H323PeerElement.

virtual H323TransactionPDU* H323Transactor::CreateTransactionPDU | ( |  | ) | const`[pure virtual]`

Create the transaction PDU for reading.

Implemented in H225_RAS, and H323_AnnexG.

PBoolean H323Transactor::GetCheckResponseCryptoTokens | ( |  | ) | `[inline]`

Get flag to check all crypto tokens on responses.

H323EndPoint& H323Transactor::GetEndPoint | ( |  | ) | const`[inline]`

Get the gatekeepers associated endpoint.

H323TransportAddressArray H323Transactor::GetInterfaceAddresses | ( | bool | excludeLocalHost = `true` | ) |

Return the list of addresses used for this peer element

Parameters:

  excludeLocalHost | Flag to exclude 127.0.0.1

unsigned H323Transactor::GetNextSequenceNumber | ( |  | ) | `[protected]`

H323Transport& H323Transactor::GetTransport | ( |  | ) | const`[inline]`

Get the gatekeepers transport channel.

PBoolean H323Transactor::HandleRequestInProgress | ( | const H323TransactionPDU & | pdu,
|  | unsigned | delay |
| ) |  |  | `[protected]`

virtual PBoolean H323Transactor::HandleTransaction | ( | const PASN_Object & | rawPDU | ) | `[pure virtual]`

Handle and dispatch a transaction PDU

Implemented in H225_RAS, and H323_AnnexG.

virtual PBoolean H323Transactor::MakeRequest | ( | Request & | request | ) | `[protected, virtual]`

virtual void H323Transactor::OnSendingPDU | ( | PASN_Object & | rawPDU | ) | `[pure virtual]`

Allow for modifications to PDU on send.

Implemented in H225_RAS, and H323_AnnexG.

H323Transactor::PDECLARE_NOTIFIER | ( | PThread | ,
|  | H323Transactor | ,
|  | HandleTransactions |  |
| ) |  |  | `[protected]`

void H323Transactor::PrintOn | ( | ostream & | strm | ) | const

Print the name of the gatekeeper.

Parameters:

  strm | Stream to print to.

Reimplemented in H225_RAS, H323_AnnexG, and H323PeerElement.

PBoolean H323Transactor::SendCachedResponse | ( | const H323TransactionPDU & | pdu | ) | `[protected]`

void H323Transactor::SetCheckResponseCryptoTokens | ( | PBoolean | value | ) | `[inline]`

Set flag to check all crypto tokens on responses.

Parameters:

  value | New value for checking crypto tokens.

PBoolean H323Transactor::SetTransport | ( | const H323TransportAddress & | iface | ) |

Set a new transport for use by the transactor.

Parameters:

  iface | Local interface for transport

PBoolean H323Transactor::SetUpCallSignalAddresses | ( | H225_ArrayOf_TransportAddress & | addresses | ) | `[protected]`

virtual PBoolean H323Transactor::StartChannel | ( |  | ) | `[virtual]`

Start the channel processing transactions

virtual void H323Transactor::StopChannel | ( |  | ) | `[virtual]`

Stop the channel processing transactions. Must be called in each descendants destructor.

virtual PBoolean H323Transactor::WritePDU | ( | H323TransactionPDU & | pdu | ) | `[virtual]`

Write PDU to transport after executing callback.

virtual PBoolean H323Transactor::WriteTo | ( | H323TransactionPDU & | pdu,
|  | const H323TransportAddressArray & | addresses,
|  | PBoolean | callback = `true` |
| ) |  |  | `[virtual]`

Write PDU to transport after executing callback.

Reimplemented in H323Gatekeeper.

## Field Documentation

PBoolean H323Transactor::checkResponseCryptoTokens `[protected]`

WORD H323Transactor::defaultLocalPort `[protected]`

WORD H323Transactor::defaultRemotePort `[protected]`

H323EndPoint& H323Transactor::endpoint `[protected]`

Request* H323Transactor::lastRequest `[protected]`

unsigned H323Transactor::nextSequenceNumber `[protected]`

PMutex H323Transactor::nextSequenceNumberMutex `[protected]`

PMutex H323Transactor::pduWriteMutex `[protected]`

PDictionary<POrdinalKey, Request> H323Transactor::requests `[protected]`

PMutex H323Transactor::requestsMutex `[protected]`

PSortedList<Response> H323Transactor::responses `[protected]`

H323Transport* H323Transactor::transport `[protected]`

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

- h323trans.h