h323neg.h
Go to the documentation of this file.
/*
* h323neg.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: 26776 $
* $Author: rjongbloed $
* $Date: 2011-12-07 16:55:11 -0600 (Wed, 07 Dec 2011) $
*/
#ifndef OPAL_H323_H323NEG_H
#define OPAL_H323_H323NEG_H
#ifdef P_USE_PRAGMA
#pragma interface
#endif
#include <opal/buildopts.h>
#if OPAL_H323
#include <h323/h323pdu.h>
#include <h323/channels.h>
class H323EndPoint;
class H323Connection;
class H245Negotiator : public PObject
{
PCLASSINFO(H245Negotiator, PObject);
public:
H245Negotiator(H323EndPoint & endpoint, H323Connection & connection);
protected:
PDECLARE_NOTIFIER(PTimer, H245Negotiator, HandleTimeoutUnlocked);
virtual void HandleTimeout();
H323EndPoint & endpoint;
H323Connection & connection;
PTimer replyTimer;
};
class H245NegMasterSlaveDetermination : public H245Negotiator
{
PCLASSINFO(H245NegMasterSlaveDetermination, H245Negotiator);
public:
H245NegMasterSlaveDetermination(H323EndPoint & endpoint, H323Connection & connection);
PBoolean Start(PBoolean renegotiate);
void Stop();
PBoolean HandleIncoming(const H245_MasterSlaveDetermination & pdu);
PBoolean HandleAck(const H245_MasterSlaveDeterminationAck & pdu);
PBoolean HandleReject(const H245_MasterSlaveDeterminationReject & pdu);
PBoolean HandleRelease(const H245_MasterSlaveDeterminationRelease & pdu);
void HandleTimeout();
PBoolean IsMaster() const { return status == e_DeterminedMaster; }
PBoolean IsDetermined() const { return state == e_Idle && status != e_Indeterminate; }
protected:
PBoolean Restart();
enum States {
e_Idle, e_Outgoing, e_Incoming,
e_NumStates
} state;
#if PTRACING
static const char * GetStateName(States s);
friend ostream & operator<<(ostream & o, States s) { return o << GetStateName(s); }
#endif
DWORD determinationNumber;
unsigned retryCount;
enum MasterSlaveStatus {
e_Indeterminate, e_DeterminedMaster, e_DeterminedSlave,
e_NumStatuses
} status;
#if PTRACING
static const char * GetStatusName(MasterSlaveStatus s);
friend ostream & operator<<(ostream & o , MasterSlaveStatus s) { return o << GetStatusName(s); }
#endif
};
class H245NegTerminalCapabilitySet : public H245Negotiator
{
PCLASSINFO(H245NegTerminalCapabilitySet, H245Negotiator);
public:
H245NegTerminalCapabilitySet(H323EndPoint & endpoint, H323Connection & connection);
PBoolean Start(PBoolean renegotiate, PBoolean empty = false);
void Stop(PBoolean dec = false);
PBoolean HandleIncoming(const H245_TerminalCapabilitySet & pdu);
PBoolean HandleAck(const H245_TerminalCapabilitySetAck & pdu);
PBoolean HandleReject(const H245_TerminalCapabilitySetReject & pdu);
PBoolean HandleRelease(const H245_TerminalCapabilitySetRelease & pdu);
void HandleTimeout();
bool HasSentCapabilities() const { return state >= e_InProgress; }
bool IsSendingCapabilities() const { return state == e_InProgress; }
bool ConfrimedCapabilitiesSent() const { return state == e_Confirmed; }
bool HasReceivedCapabilities() const { return receivedCapabilites; }
protected:
enum States {
e_Idle, e_InProgress, e_Confirmed,
e_NumStates
} state;
#if PTRACING
static const char * GetStateName(States s);
friend ostream & operator<<(ostream & o, States s) { return o << GetStateName(s); }
#endif
unsigned inSequenceNumber;
unsigned outSequenceNumber;
PBoolean receivedCapabilites;
};
class H245NegLogicalChannel : public H245Negotiator
{
PCLASSINFO(H245NegLogicalChannel, H245Negotiator);
public:
H245NegLogicalChannel(H323EndPoint & endpoint,
H323Connection & connection,
const H323ChannelNumber & channelNumber);
H245NegLogicalChannel(H323EndPoint & endpoint,
H323Connection & connection,
H323Channel & channel);
~H245NegLogicalChannel();
virtual PBoolean Open(
const H323Capability & capability,
unsigned sessionID,
unsigned replacementFor = 0
);
virtual PBoolean Close();
virtual PBoolean HandleOpen(const H245_OpenLogicalChannel & pdu);
virtual PBoolean HandleOpenAck(const H245_OpenLogicalChannelAck & pdu);
virtual PBoolean HandleOpenConfirm(const H245_OpenLogicalChannelConfirm & pdu);
virtual PBoolean HandleReject(const H245_OpenLogicalChannelReject & pdu);
virtual PBoolean HandleClose(const H245_CloseLogicalChannel & pdu);
virtual PBoolean HandleCloseAck(const H245_CloseLogicalChannelAck & pdu);
virtual PBoolean HandleRequestClose(const H245_RequestChannelClose & pdu);
virtual PBoolean HandleRequestCloseAck(const H245_RequestChannelCloseAck & pdu);
virtual PBoolean HandleRequestCloseReject(const H245_RequestChannelCloseReject & pdu);
virtual PBoolean HandleRequestCloseRelease(const H245_RequestChannelCloseRelease & pdu);
virtual void HandleTimeout();
H323Channel * GetChannel();
bool IsAwaitingEstablishment() const { return state == e_AwaitingEstablishment; }
bool IsEstablished() const { return state == e_Established; }
protected:
virtual void Release();
H323Channel * channel;
H323ChannelNumber channelNumber;
enum States {
e_Released,
e_AwaitingEstablishment,
e_Established,
e_AwaitingRelease,
e_AwaitingConfirmation,
e_AwaitingResponse,
e_NumStates
} state;
#if PTRACING
static const char * GetStateName(States s);
friend ostream & operator<<(ostream & o, States s) { return o << GetStateName(s); }
#endif
friend class H245NegLogicalChannels;
};
PDICTIONARY(H245LogicalChannelDict, H323ChannelNumber, H245NegLogicalChannel);
class H245NegLogicalChannels : public H245Negotiator
{
PCLASSINFO(H245NegLogicalChannels, H245Negotiator);
public:
H245NegLogicalChannels(H323EndPoint & endpoint, H323Connection & connection);
virtual void Add(H323Channel & channel);
virtual PBoolean Open(
const H323Capability & capability,
unsigned sessionID,
unsigned replacementFor = 0
);
virtual PBoolean Close(unsigned channelNumber, PBoolean fromRemote);
virtual PBoolean HandleOpen(const H245_OpenLogicalChannel & pdu);
virtual PBoolean HandleOpenAck(const H245_OpenLogicalChannelAck & pdu);
virtual PBoolean HandleOpenConfirm(const H245_OpenLogicalChannelConfirm & pdu);
virtual PBoolean HandleReject(const H245_OpenLogicalChannelReject & pdu);
virtual PBoolean HandleClose(const H245_CloseLogicalChannel & pdu);
virtual PBoolean HandleCloseAck(const H245_CloseLogicalChannelAck & pdu);
virtual PBoolean HandleRequestClose(const H245_RequestChannelClose & pdu);
virtual PBoolean HandleRequestCloseAck(const H245_RequestChannelCloseAck & pdu);
virtual PBoolean HandleRequestCloseReject(const H245_RequestChannelCloseReject & pdu);
virtual PBoolean HandleRequestCloseRelease(const H245_RequestChannelCloseRelease & pdu);
H323ChannelNumber GetNextChannelNumber();
PINDEX GetSize() const { return channels.GetSize(); }
H323Channel * GetChannelAt(PINDEX i);
H323Channel * FindChannel(unsigned channelNumber, PBoolean fromRemote);
H245NegLogicalChannel & GetNegLogicalChannelAt(PINDEX i);
H245NegLogicalChannel * FindNegLogicalChannel(unsigned channelNumber, PBoolean fromRemote);
H323Channel * FindChannelBySession(unsigned rtpSessionId, PBoolean fromRemote);
void RemoveAll();
protected:
H323ChannelNumber lastChannelNumber;
H245LogicalChannelDict channels;
};
class H245NegRequestMode : public H245Negotiator
{
PCLASSINFO(H245NegRequestMode, H245Negotiator);
public:
H245NegRequestMode(H323EndPoint & endpoint, H323Connection & connection);
virtual PBoolean StartRequest(const PString & newModes);
virtual PBoolean StartRequest(const H245_ArrayOf_ModeDescription & newModes);
virtual PBoolean HandleRequest(const H245_RequestMode & pdu);
virtual PBoolean HandleAck(const H245_RequestModeAck & pdu);
virtual PBoolean HandleReject(const H245_RequestModeReject & pdu);
virtual PBoolean HandleRelease(const H245_RequestModeRelease & pdu);
virtual void HandleTimeout();
protected:
PBoolean awaitingResponse;
unsigned inSequenceNumber;
unsigned outSequenceNumber;
};
class H245NegRoundTripDelay : public H245Negotiator
{
PCLASSINFO(H245NegRoundTripDelay, H245Negotiator);
public:
H245NegRoundTripDelay(H323EndPoint & endpoint, H323Connection & connection);
PBoolean StartRequest();
PBoolean HandleRequest(const H245_RoundTripDelayRequest & pdu);
PBoolean HandleResponse(const H245_RoundTripDelayResponse & pdu);
void HandleTimeout();
PTimeInterval GetRoundTripDelay() const { return roundTripTime; }
PBoolean IsRemoteOffline() const { return retryCount == 0; }
protected:
PBoolean awaitingResponse;
unsigned sequenceNumber;
PTimeInterval tripStartTime;
PTimeInterval roundTripTime;
unsigned retryCount;
};
#endif // OPAL_H323
#endif // OPAL_H323_H323NEG_H
H245NegMasterSlaveDetermination::e_Incoming
Definition: h323neg.h:98
H245NegTerminalCapabilitySet::Stop
void Stop(PBoolean dec=false)
h323pdu.h
H245NegMasterSlaveDetermination::state
enum H245NegMasterSlaveDetermination::States state
H245NegTerminalCapabilitySet::HandleIncoming
PBoolean HandleIncoming(const H245_TerminalCapabilitySet &pdu)
H245NegLogicalChannel
Definition: h323neg.h:161
H245NegRequestMode::HandleRequest
virtual PBoolean HandleRequest(const H245_RequestMode &pdu)
H245NegLogicalChannels::lastChannelNumber
H323ChannelNumber lastChannelNumber
Definition: h323neg.h:264
H245NegTerminalCapabilitySet::IsSendingCapabilities
bool IsSendingCapabilities() const
Definition: h323neg.h:138
H245NegTerminalCapabilitySet::e_InProgress
Definition: h323neg.h:144
H245NegLogicalChannels::HandleReject
virtual PBoolean HandleReject(const H245_OpenLogicalChannelReject &pdu)
H245NegTerminalCapabilitySet::States
States
Definition: h323neg.h:143
H245Negotiator::connection
H323Connection & connection
Definition: h323neg.h:69
H245NegMasterSlaveDetermination::retryCount
unsigned retryCount
Definition: h323neg.h:107
H245NegLogicalChannel::HandleRequestCloseRelease
virtual PBoolean HandleRequestCloseRelease(const H245_RequestChannelCloseRelease &pdu)
H245NegMasterSlaveDetermination::HandleRelease
PBoolean HandleRelease(const H245_MasterSlaveDeterminationRelease &pdu)
H245NegLogicalChannel::~H245NegLogicalChannel
~H245NegLogicalChannel()
H245NegLogicalChannels::FindNegLogicalChannel
H245NegLogicalChannel * FindNegLogicalChannel(unsigned channelNumber, PBoolean fromRemote)
H245NegLogicalChannels::FindChannel
H323Channel * FindChannel(unsigned channelNumber, PBoolean fromRemote)
H245NegLogicalChannels::HandleRequestCloseReject
virtual PBoolean HandleRequestCloseReject(const H245_RequestChannelCloseReject &pdu)
H245NegTerminalCapabilitySet::HandleReject
PBoolean HandleReject(const H245_TerminalCapabilitySetReject &pdu)
buildopts.h
PDICTIONARY
PDICTIONARY(H245LogicalChannelDict, H323ChannelNumber, H245NegLogicalChannel)
H245NegLogicalChannel::HandleOpenConfirm
virtual PBoolean HandleOpenConfirm(const H245_OpenLogicalChannelConfirm &pdu)
H245NegLogicalChannels
Definition: h323neg.h:228
H245NegLogicalChannel::channelNumber
H323ChannelNumber channelNumber
Definition: h323neg.h:203
H245NegLogicalChannels::channels
H245LogicalChannelDict channels
Definition: h323neg.h:265
H245NegLogicalChannel::HandleTimeout
virtual void HandleTimeout()
H323Capability
Definition: h323caps.h:89
H245NegLogicalChannel::HandleRequestCloseReject
virtual PBoolean HandleRequestCloseReject(const H245_RequestChannelCloseReject &pdu)
H245NegLogicalChannel::H245NegLogicalChannel
H245NegLogicalChannel(H323EndPoint &endpoint, H323Connection &connection, const H323ChannelNumber &channelNumber)
H245NegMasterSlaveDetermination::HandleTimeout
void HandleTimeout()
H245NegMasterSlaveDetermination::e_Idle
Definition: h323neg.h:98
H245NegLogicalChannel::HandleCloseAck
virtual PBoolean HandleCloseAck(const H245_CloseLogicalChannelAck &pdu)
H245NegLogicalChannels::Add
virtual void Add(H323Channel &channel)
H245NegLogicalChannel::e_AwaitingEstablishment
Definition: h323neg.h:207
H245Negotiator
Definition: h323neg.h:57
H245NegMasterSlaveDetermination::e_Outgoing
Definition: h323neg.h:98
H245NegTerminalCapabilitySet::state
enum H245NegTerminalCapabilitySet::States state
H245NegRoundTripDelay
Definition: h323neg.h:295
H245NegRequestMode::awaitingResponse
PBoolean awaitingResponse
Definition: h323neg.h:287
H245NegLogicalChannels::H245NegLogicalChannels
H245NegLogicalChannels(H323EndPoint &endpoint, H323Connection &connection)
H245NegTerminalCapabilitySet::HasReceivedCapabilities
bool HasReceivedCapabilities() const
Definition: h323neg.h:140
H245NegMasterSlaveDetermination::determinationNumber
DWORD determinationNumber
Definition: h323neg.h:106
H245NegLogicalChannels::HandleOpenConfirm
virtual PBoolean HandleOpenConfirm(const H245_OpenLogicalChannelConfirm &pdu)
H245NegMasterSlaveDetermination::e_DeterminedMaster
Definition: h323neg.h:110
H245NegLogicalChannels::HandleRequestCloseAck
virtual PBoolean HandleRequestCloseAck(const H245_RequestChannelCloseAck &pdu)
H245NegRoundTripDelay::retryCount
unsigned retryCount
Definition: h323neg.h:315
H245NegLogicalChannels::GetChannelAt
H323Channel * GetChannelAt(PINDEX i)
channels.h
H245NegTerminalCapabilitySet::e_Idle
Definition: h323neg.h:144
H245NegLogicalChannel::IsAwaitingEstablishment
bool IsAwaitingEstablishment() const
Definition: h323neg.h:194
H245NegLogicalChannels::GetNegLogicalChannelAt
H245NegLogicalChannel & GetNegLogicalChannelAt(PINDEX i)
H245NegLogicalChannels::GetNextChannelNumber
H323ChannelNumber GetNextChannelNumber()
H245NegMasterSlaveDetermination::status
enum H245NegMasterSlaveDetermination::MasterSlaveStatus status
H245NegTerminalCapabilitySet::ConfrimedCapabilitiesSent
bool ConfrimedCapabilitiesSent() const
Definition: h323neg.h:139
H245NegLogicalChannel::state
enum H245NegLogicalChannel::States state
H245NegRoundTripDelay::tripStartTime
PTimeInterval tripStartTime
Definition: h323neg.h:313
H245NegMasterSlaveDetermination::e_NumStates
Definition: h323neg.h:99
H245NegLogicalChannel::States
States
Definition: h323neg.h:205
H245NegLogicalChannels::Close
virtual PBoolean Close(unsigned channelNumber, PBoolean fromRemote)
H245NegLogicalChannels::HandleRequestClose
virtual PBoolean HandleRequestClose(const H245_RequestChannelClose &pdu)
H245NegMasterSlaveDetermination::H245NegMasterSlaveDetermination
H245NegMasterSlaveDetermination(H323EndPoint &endpoint, H323Connection &connection)
H245NegLogicalChannels::HandleClose
virtual PBoolean HandleClose(const H245_CloseLogicalChannel &pdu)
H245NegTerminalCapabilitySet::HandleRelease
PBoolean HandleRelease(const H245_TerminalCapabilitySetRelease &pdu)
H245NegMasterSlaveDetermination::e_NumStatuses
Definition: h323neg.h:111
H323Channel
Definition: channels.h:99
H245NegRequestMode::HandleAck
virtual PBoolean HandleAck(const H245_RequestModeAck &pdu)
H245NegRequestMode::inSequenceNumber
unsigned inSequenceNumber
Definition: h323neg.h:288
H245NegMasterSlaveDetermination::HandleReject
PBoolean HandleReject(const H245_MasterSlaveDeterminationReject &pdu)
H245NegMasterSlaveDetermination::MasterSlaveStatus
MasterSlaveStatus
Definition: h323neg.h:109
H245NegTerminalCapabilitySet::HasSentCapabilities
bool HasSentCapabilities() const
Definition: h323neg.h:137
H245NegTerminalCapabilitySet::outSequenceNumber
unsigned outSequenceNumber
Definition: h323neg.h:153
H245NegLogicalChannel::GetChannel
H323Channel * GetChannel()
H245NegRoundTripDelay::HandleTimeout
void HandleTimeout()
H245NegLogicalChannels::RemoveAll
void RemoveAll()
H245NegRoundTripDelay::awaitingResponse
PBoolean awaitingResponse
Definition: h323neg.h:311
H245NegMasterSlaveDetermination::Start
PBoolean Start(PBoolean renegotiate)
H245NegLogicalChannels::GetSize
PINDEX GetSize() const
Definition: h323neg.h:255
H245NegTerminalCapabilitySet::HandleTimeout
void HandleTimeout()
H245NegLogicalChannel::IsEstablished
bool IsEstablished() const
Definition: h323neg.h:195
H245NegTerminalCapabilitySet::HandleAck
PBoolean HandleAck(const H245_TerminalCapabilitySetAck &pdu)
H245NegRoundTripDelay::GetRoundTripDelay
PTimeInterval GetRoundTripDelay() const
Definition: h323neg.h:307
H245NegLogicalChannel::e_AwaitingConfirmation
Definition: h323neg.h:210
H245NegTerminalCapabilitySet::receivedCapabilites
PBoolean receivedCapabilites
Definition: h323neg.h:155
H323Connection
Definition: h323con.h:130
H245NegLogicalChannels::HandleOpen
virtual PBoolean HandleOpen(const H245_OpenLogicalChannel &pdu)
H245NegTerminalCapabilitySet::inSequenceNumber
unsigned inSequenceNumber
Definition: h323neg.h:152
H245NegLogicalChannel::e_Established
Definition: h323neg.h:208
H245NegLogicalChannel::HandleClose
virtual PBoolean HandleClose(const H245_CloseLogicalChannel &pdu)
H245NegLogicalChannel::Release
virtual void Release()
H245NegRoundTripDelay::StartRequest
PBoolean StartRequest()
H245NegLogicalChannels::HandleOpenAck
virtual PBoolean HandleOpenAck(const H245_OpenLogicalChannelAck &pdu)
operator<<
ostream & operator<<(ostream &strm, OpalSilenceDetector::Mode mode)
H245NegLogicalChannels::FindChannelBySession
H323Channel * FindChannelBySession(unsigned rtpSessionId, PBoolean fromRemote)
H245NegLogicalChannel::channel
H323Channel * channel
Definition: h323neg.h:201
H245NegMasterSlaveDetermination::IsMaster
PBoolean IsMaster() const
Definition: h323neg.h:91
H245Negotiator::endpoint
H323EndPoint & endpoint
Definition: h323neg.h:68
H245NegLogicalChannel::e_NumStates
Definition: h323neg.h:212
H245NegRequestMode::HandleRelease
virtual PBoolean HandleRelease(const H245_RequestModeRelease &pdu)
H245NegRoundTripDelay::roundTripTime
PTimeInterval roundTripTime
Definition: h323neg.h:314
H245NegRequestMode::H245NegRequestMode
H245NegRequestMode(H323EndPoint &endpoint, H323Connection &connection)
H245NegLogicalChannel::e_AwaitingRelease
Definition: h323neg.h:209
H245NegMasterSlaveDetermination::IsDetermined
PBoolean IsDetermined() const
Definition: h323neg.h:92
H245NegTerminalCapabilitySet
Definition: h323neg.h:122
H245NegLogicalChannels::Open
virtual PBoolean Open(const H323Capability &capability, unsigned sessionID, unsigned replacementFor=0)
H245NegLogicalChannel::HandleOpenAck
virtual PBoolean HandleOpenAck(const H245_OpenLogicalChannelAck &pdu)
H245NegLogicalChannels::HandleCloseAck
virtual PBoolean HandleCloseAck(const H245_CloseLogicalChannelAck &pdu)
H245NegRequestMode::StartRequest
virtual PBoolean StartRequest(const PString &newModes)
H245NegLogicalChannel::Close
virtual PBoolean Close()
H245NegLogicalChannel::HandleOpen
virtual PBoolean HandleOpen(const H245_OpenLogicalChannel &pdu)
H323ChannelNumber
Definition: channels.h:70
H245NegMasterSlaveDetermination::HandleIncoming
PBoolean HandleIncoming(const H245_MasterSlaveDetermination &pdu)
H245NegMasterSlaveDetermination::Stop
void Stop()
H245NegTerminalCapabilitySet::e_Confirmed
Definition: h323neg.h:144
H245NegMasterSlaveDetermination::States
States
Definition: h323neg.h:97
H245NegLogicalChannel::HandleRequestClose
virtual PBoolean HandleRequestClose(const H245_RequestChannelClose &pdu)
H245NegLogicalChannel::Open
virtual PBoolean Open(const H323Capability &capability, unsigned sessionID, unsigned replacementFor=0)
H245NegRoundTripDelay::HandleRequest
PBoolean HandleRequest(const H245_RoundTripDelayRequest &pdu)
H245NegMasterSlaveDetermination::e_DeterminedSlave
Definition: h323neg.h:110
H245NegLogicalChannel::HandleReject
virtual PBoolean HandleReject(const H245_OpenLogicalChannelReject &pdu)
H245NegLogicalChannel::HandleRequestCloseAck
virtual PBoolean HandleRequestCloseAck(const H245_RequestChannelCloseAck &pdu)
H245NegTerminalCapabilitySet::H245NegTerminalCapabilitySet
H245NegTerminalCapabilitySet(H323EndPoint &endpoint, H323Connection &connection)
H245NegRoundTripDelay::IsRemoteOffline
PBoolean IsRemoteOffline() const
Definition: h323neg.h:308
H245Negotiator::HandleTimeout
virtual void HandleTimeout()
H245Negotiator::PDECLARE_NOTIFIER
PDECLARE_NOTIFIER(PTimer, H245Negotiator, HandleTimeoutUnlocked)
H245NegLogicalChannel::e_AwaitingResponse
Definition: h323neg.h:211
H245NegLogicalChannel::e_Released
Definition: h323neg.h:206
H323EndPoint
Definition: h323ep.h:85
H245NegRequestMode::HandleTimeout
virtual void HandleTimeout()
H245NegLogicalChannels::HandleRequestCloseRelease
virtual PBoolean HandleRequestCloseRelease(const H245_RequestChannelCloseRelease &pdu)
H245Negotiator::H245Negotiator
H245Negotiator(H323EndPoint &endpoint, H323Connection &connection)
H245NegTerminalCapabilitySet::e_NumStates
Definition: h323neg.h:145
H245NegRoundTripDelay::sequenceNumber
unsigned sequenceNumber
Definition: h323neg.h:312
H245NegRequestMode::outSequenceNumber
unsigned outSequenceNumber
Definition: h323neg.h:289
H245NegMasterSlaveDetermination
Definition: h323neg.h:76
H245NegTerminalCapabilitySet::Start
PBoolean Start(PBoolean renegotiate, PBoolean empty=false)
H245NegMasterSlaveDetermination::e_Indeterminate
Definition: h323neg.h:110
H245NegRequestMode::HandleReject
virtual PBoolean HandleReject(const H245_RequestModeReject &pdu)
H245NegRoundTripDelay::HandleResponse
PBoolean HandleResponse(const H245_RoundTripDelayResponse &pdu)
H245NegMasterSlaveDetermination::Restart
PBoolean Restart()
H245Negotiator::replyTimer
PTimer replyTimer
Definition: h323neg.h:70
H245NegMasterSlaveDetermination::HandleAck
PBoolean HandleAck(const H245_MasterSlaveDeterminationAck &pdu)
H245NegRoundTripDelay::H245NegRoundTripDelay
H245NegRoundTripDelay(H323EndPoint &endpoint, H323Connection &connection)
H245NegRequestMode
Definition: h323neg.h:271