30 #ifndef OPAL_H323_H323NEG_H
31 #define OPAL_H323_H323NEG_H
79 PBoolean
Start(PBoolean renegotiate);
81 PBoolean
HandleIncoming(
const H245_MasterSlaveDetermination & pdu);
82 PBoolean
HandleAck(
const H245_MasterSlaveDeterminationAck & pdu);
83 PBoolean
HandleReject(
const H245_MasterSlaveDeterminationReject & pdu);
84 PBoolean
HandleRelease(
const H245_MasterSlaveDeterminationRelease & pdu);
113 PBoolean
Start(PBoolean renegotiate, PBoolean empty =
false);
114 void Stop(PBoolean dec =
false);
116 PBoolean
HandleAck(
const H245_TerminalCapabilitySetAck & pdu);
117 PBoolean
HandleReject(
const H245_TerminalCapabilitySetReject & pdu);
118 PBoolean
HandleRelease(
const H245_TerminalCapabilitySetRelease & pdu);
152 virtual PBoolean
Open(
155 unsigned replacementFor = 0,
158 virtual PBoolean
Close();
159 virtual PBoolean
HandleOpen(
const H245_OpenLogicalChannel & pdu);
160 virtual PBoolean
HandleOpenAck(
const H245_OpenLogicalChannelAck & pdu);
162 virtual PBoolean
HandleReject(
const H245_OpenLogicalChannelReject & pdu);
163 virtual PBoolean
HandleClose(
const H245_CloseLogicalChannel & pdu);
164 virtual PBoolean
HandleCloseAck(
const H245_CloseLogicalChannelAck & pdu);
186 e_AwaitingEstablishment,
190 e_AwaitingConfirmation,
213 virtual PBoolean
Open(
216 unsigned replacementFor = 0,
219 virtual PBoolean
Close(
unsigned channelNumber, PBoolean fromRemote);
220 virtual PBoolean
HandleOpen(
const H245_OpenLogicalChannel & pdu);
221 virtual PBoolean
HandleOpenAck(
const H245_OpenLogicalChannelAck & pdu);
223 virtual PBoolean
HandleReject(
const H245_OpenLogicalChannelReject & pdu);
224 virtual PBoolean
HandleClose(
const H245_CloseLogicalChannel & pdu);
225 virtual PBoolean
HandleCloseAck(
const H245_CloseLogicalChannelAck & pdu);
255 virtual PBoolean
StartRequest(
const PString & newModes);
256 virtual PBoolean
StartRequest(
const H245_ArrayOf_ModeDescription & newModes);
257 virtual PBoolean
HandleRequest(
const H245_RequestMode & pdu);
258 virtual PBoolean
HandleAck(
const H245_RequestModeAck & pdu);
259 virtual PBoolean
HandleReject(
const H245_RequestModeReject & pdu);
260 virtual PBoolean
HandleRelease(
const H245_RequestModeRelease & pdu);
280 PBoolean
HandleRequest(
const H245_RoundTripDelayRequest & pdu);
298 #endif // OPAL_H323_H323NEG_H
States state
Definition: h323neg.h:128
void Stop(PBoolean dec=false)
PBoolean HandleIncoming(const H245_TerminalCapabilitySet &pdu)
virtual PBoolean Open(const H323Capability &capability, unsigned sessionID, unsigned replacementFor=0, OpalMediaStreamPtr mediaStream=NULL)
Definition: h323neg.h:139
virtual PBoolean HandleRequest(const H245_RequestMode &pdu)
bool IsSendingCapabilities() const
Definition: h323neg.h:122
P_DECLARE_TRACED_ENUM(States, e_Idle, e_Outgoing, e_Incoming)
virtual PBoolean HandleReject(const H245_OpenLogicalChannelReject &pdu)
H323Connection & connection
Definition: h323neg.h:65
virtual PBoolean HandleRequestCloseRelease(const H245_RequestChannelCloseRelease &pdu)
P_DECLARE_TRACED_ENUM(States, e_Idle, e_InProgress, e_Confirmed)
PBoolean HandleRelease(const H245_MasterSlaveDeterminationRelease &pdu)
H245NegLogicalChannel * FindNegLogicalChannel(unsigned channelNumber, PBoolean fromRemote)
H323Channel * FindChannel(unsigned channelNumber, PBoolean fromRemote)
virtual PBoolean HandleRequestCloseReject(const H245_RequestChannelCloseReject &pdu)
PBoolean HandleReject(const H245_TerminalCapabilitySetReject &pdu)
virtual PBoolean HandleOpenConfirm(const H245_OpenLogicalChannelConfirm &pdu)
Definition: h323neg.h:204
H323ChannelNumber m_lastChannelNumberToRemote
Definition: h323neg.h:240
H323ChannelNumber channelNumber
Definition: h323neg.h:182
H245LogicalChannelDict channels
Definition: h323neg.h:242
virtual void HandleTimeout()
Definition: h323caps.h:95
virtual PBoolean HandleRequestCloseReject(const H245_RequestChannelCloseReject &pdu)
H245NegLogicalChannel(H323EndPoint &endpoint, H323Connection &connection, const H323ChannelNumber &channelNumber)
States m_state
Definition: h323neg.h:94
virtual PBoolean HandleCloseAck(const H245_CloseLogicalChannelAck &pdu)
virtual void Add(H323Channel &channel)
H245LogicalChannelDict & GetChannels()
Definition: h323neg.h:232
Definition: h323neg.h:272
PBoolean awaitingResponse
Definition: h323neg.h:264
H245NegLogicalChannels(H323EndPoint &endpoint, H323Connection &connection)
bool HasReceivedCapabilities() const
Definition: h323neg.h:124
virtual PBoolean HandleOpenConfirm(const H245_OpenLogicalChannelConfirm &pdu)
unsigned m_retryCount
Definition: h323neg.h:97
virtual PBoolean HandleRequestCloseAck(const H245_RequestChannelCloseAck &pdu)
unsigned retryCount
Definition: h323neg.h:292
bool IsAwaitingEstablishment() const
Definition: h323neg.h:173
bool ConfrimedCapabilitiesSent() const
Definition: h323neg.h:123
PTimeInterval tripStartTime
Definition: h323neg.h:290
virtual PBoolean Close(unsigned channelNumber, PBoolean fromRemote)
H323ChannelNumber m_lastChannelNumberFromRemote
Definition: h323neg.h:241
virtual PBoolean HandleRequestClose(const H245_RequestChannelClose &pdu)
H245NegMasterSlaveDetermination(H323EndPoint &endpoint, H323Connection &connection)
virtual PBoolean HandleClose(const H245_CloseLogicalChannel &pdu)
PBoolean HandleRelease(const H245_TerminalCapabilitySetRelease &pdu)
Definition: channels.h:95
DWORD m_determinationNumber
Definition: h323neg.h:96
virtual PBoolean HandleAck(const H245_RequestModeAck &pdu)
unsigned inSequenceNumber
Definition: h323neg.h:265
PBoolean HandleReject(const H245_MasterSlaveDeterminationReject &pdu)
bool HasSentCapabilities() const
Definition: h323neg.h:121
unsigned outSequenceNumber
Definition: h323neg.h:131
PBoolean awaitingResponse
Definition: h323neg.h:288
PBoolean Start(PBoolean renegotiate)
bool IsEstablished() const
Definition: h323neg.h:174
PBoolean HandleAck(const H245_TerminalCapabilitySetAck &pdu)
PTimeInterval GetRoundTripDelay() const
Definition: h323neg.h:284
const H245LogicalChannelDict & GetChannels() const
Definition: h323neg.h:233
PBoolean receivedCapabilites
Definition: h323neg.h:133
Definition: h323con.h:137
virtual PBoolean HandleOpen(const H245_OpenLogicalChannel &pdu)
H323Channel * FindChannelBySession(unsigned rtpSessionId, bool fromRemote, bool anyState)
unsigned inSequenceNumber
Definition: h323neg.h:130
MasterSlaveStatus m_status
Definition: h323neg.h:100
virtual PBoolean HandleClose(const H245_CloseLogicalChannel &pdu)
virtual PBoolean HandleOpenAck(const H245_OpenLogicalChannelAck &pdu)
P_DECLARE_TRACED_ENUM(States, e_Released, e_AwaitingEstablishment, e_Establishing, e_Established, e_AwaitingRelease, e_AwaitingConfirmation, e_AwaitingResponse, e_NumStates)
H323Channel * channel
Definition: h323neg.h:180
PBoolean IsMaster() const
Definition: h323neg.h:87
H323EndPoint & endpoint
Definition: h323neg.h:64
virtual PBoolean HandleRelease(const H245_RequestModeRelease &pdu)
PTimeInterval roundTripTime
Definition: h323neg.h:291
H245NegRequestMode(H323EndPoint &endpoint, H323Connection &connection)
States state
Definition: h323neg.h:194
PBoolean IsDetermined() const
Definition: h323neg.h:88
Definition: h323neg.h:106
virtual PBoolean HandleOpenAck(const H245_OpenLogicalChannelAck &pdu)
virtual PBoolean HandleCloseAck(const H245_CloseLogicalChannelAck &pdu)
virtual PBoolean StartRequest(const PString &newModes)
PDICTIONARY(H323CallIdentityDict, PString, H323Connection)
H323ChannelNumber GetNextChannelNumber(bool toRemote=false)
virtual PBoolean HandleOpen(const H245_OpenLogicalChannel &pdu)
Definition: channels.h:66
PBoolean HandleIncoming(const H245_MasterSlaveDetermination &pdu)
virtual PBoolean HandleRequestClose(const H245_RequestChannelClose &pdu)
PBoolean HandleRequest(const H245_RoundTripDelayRequest &pdu)
virtual PBoolean HandleReject(const H245_OpenLogicalChannelReject &pdu)
virtual PBoolean HandleRequestCloseAck(const H245_RequestChannelCloseAck &pdu)
H245NegTerminalCapabilitySet(H323EndPoint &endpoint, H323Connection &connection)
PBoolean IsRemoteOffline() const
Definition: h323neg.h:285
virtual void HandleTimeout()
PDECLARE_NOTIFIER(PTimer, H245Negotiator, HandleTimeoutUnlocked)
virtual void HandleTimeout()
virtual PBoolean HandleRequestCloseRelease(const H245_RequestChannelCloseRelease &pdu)
H245Negotiator(H323EndPoint &endpoint, H323Connection &connection)
H323Channel * GetChannel() const
unsigned sequenceNumber
Definition: h323neg.h:289
unsigned outSequenceNumber
Definition: h323neg.h:266
PBoolean Start(PBoolean renegotiate, PBoolean empty=false)
virtual PBoolean Open(const H323Capability &capability, unsigned sessionID, unsigned replacementFor=0, OpalMediaStreamPtr mediaStream=NULL)
virtual PBoolean HandleReject(const H245_RequestModeReject &pdu)
PBoolean HandleResponse(const H245_RoundTripDelayResponse &pdu)
PTimer replyTimer
Definition: h323neg.h:66
PBoolean HandleAck(const H245_MasterSlaveDeterminationAck &pdu)
H245NegRoundTripDelay(H323EndPoint &endpoint, H323Connection &connection)
Definition: h323neg.h:248