channels.h
Go to the documentation of this file.
/*
* channels.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: 27619 $
* $Author: rjongbloed $
* $Date: 2012-05-13 20:16:44 -0500 (Sun, 13 May 2012) $
*/
#ifndef OPAL_H323_CHANNELS_H
#define OPAL_H323_CHANNELS_H
#ifdef P_USE_PRAGMA
#pragma interface
#endif
#include <opal/buildopts.h>
#if OPAL_H323
#include <rtp/rtp.h>
#include <h323/transaddr.h>
#include <opal/mediastrm.h>
class H245_OpenLogicalChannel;
class H245_OpenLogicalChannelAck;
class H245_OpenLogicalChannel_forwardLogicalChannelParameters;
class H245_OpenLogicalChannel_reverseLogicalChannelParameters;
class H245_H2250LogicalChannelParameters;
class H245_H2250LogicalChannelAckParameters;
class H245_MiscellaneousCommand_type;
class H245_MiscellaneousIndication_type;
class H323EndPoint;
class H323Connection;
class H323Capability;
class H323_RTP_Session;
class H323ChannelNumber : public PObject
{
PCLASSINFO(H323ChannelNumber, PObject);
public:
H323ChannelNumber() { number = 0; fromRemote = false; }
H323ChannelNumber(unsigned number, PBoolean fromRemote);
virtual PObject * Clone() const;
virtual PINDEX HashFunction() const;
virtual void PrintOn(ostream & strm) const;
virtual Comparison Compare(const PObject & obj) const;
H323ChannelNumber & operator++(int);
operator unsigned() const { return number; }
PBoolean IsFromRemote() const { return fromRemote; }
protected:
unsigned number;
PBoolean fromRemote;
};
class H323Channel : public PObject
{
PCLASSINFO(H323Channel, PObject);
public:
H323Channel(
H323Connection & connection,
const H323Capability & capability
);
~H323Channel();
virtual void PrintOn(
ostream & strm
) const;
enum Directions {
IsBidirectional,
IsTransmitter,
IsReceiver,
NumDirections
};
#if PTRACING
friend ostream & operator<<(ostream & out, Directions dir);
#endif
virtual Directions GetDirection() const = 0;
virtual unsigned GetSessionID() const;
virtual bool SetSessionID(
unsigned sessionID
);
virtual PBoolean GetMediaTransportAddress(
OpalTransportAddress & data,
OpalTransportAddress & control
) const;
virtual PBoolean SetInitialBandwidth() = 0;
virtual PBoolean Open();
virtual PBoolean Start() = 0;
virtual void Close();
PBoolean IsOpen() const { return opened && m_terminating == 0; }
virtual OpalMediaStreamPtr GetMediaStream() const;
virtual PBoolean OnSendingPDU(
H245_OpenLogicalChannel & openPDU
) const = 0;
virtual void OnSendOpenAck(
const H245_OpenLogicalChannel & open,
H245_OpenLogicalChannelAck & ack
) const;
virtual PBoolean OnReceivedPDU(
const H245_OpenLogicalChannel & pdu,
unsigned & errorCode
);
virtual PBoolean OnReceivedAckPDU(
const H245_OpenLogicalChannelAck & pdu
);
virtual void OnFlowControl(
long bitRateRestriction
);
virtual void OnMiscellaneousCommand(
const H245_MiscellaneousCommand_type & type
);
virtual void OnMiscellaneousIndication(
const H245_MiscellaneousIndication_type & type
);
virtual void OnJitterIndication(
DWORD jitter,
int skippedFrameCount,
int additionalBuffer
);
const H323ChannelNumber & GetNumber() const { return number; }
void SetNumber(const H323ChannelNumber & num) { number = num; }
const H323ChannelNumber & GetReverseChannel() const { return reverseChannel; }
void SetReverseChannel(const H323ChannelNumber & num) { reverseChannel = num; }
unsigned GetBandwidthUsed() const { return bandwidthUsed; }
PBoolean SetBandwidthUsed(
unsigned bandwidth
);
const H323Capability & GetCapability() const { return *capability; }
PBoolean IsPaused() const { return paused; }
void SetPause(
PBoolean pause
) { paused = pause; }
virtual bool OnMediaCommand(const OpalMediaCommand &);
protected:
virtual void InternalClose();
H323EndPoint & endpoint;
H323Connection & connection;
H323Capability * capability;
H323ChannelNumber number;
H323ChannelNumber reverseChannel;
bool opened;
bool paused;
PAtomicInteger m_terminating;
private:
unsigned bandwidthUsed;
};
PLIST(H323LogicalChannelList, H323Channel);
class H323UnidirectionalChannel : public H323Channel
{
PCLASSINFO(H323UnidirectionalChannel, H323Channel);
public:
H323UnidirectionalChannel(
H323Connection & connection,
const H323Capability & capability,
Directions direction
);
~H323UnidirectionalChannel();
virtual Directions GetDirection() const;
virtual PBoolean SetInitialBandwidth();
virtual PBoolean Open();
virtual PBoolean Start();
virtual OpalMediaStreamPtr GetMediaStream() const;
protected:
virtual void InternalClose();
bool receiver;
OpalMediaStreamPtr mediaStream;
};
class H323BidirectionalChannel : public H323Channel
{
PCLASSINFO(H323BidirectionalChannel, H323Channel);
public:
H323BidirectionalChannel(
H323Connection & connection,
const H323Capability & capability
);
virtual Directions GetDirection() const;
virtual PBoolean Start();
};
class H323_RealTimeChannel : public H323UnidirectionalChannel
{
PCLASSINFO(H323_RealTimeChannel, H323UnidirectionalChannel);
public:
H323_RealTimeChannel(
H323Connection & connection,
const H323Capability & capability,
Directions direction
);
virtual PBoolean OnSendingPDU(
H245_OpenLogicalChannel & openPDU
) const;
virtual void OnSendOpenAck(
const H245_OpenLogicalChannel & open,
H245_OpenLogicalChannelAck & ack
) const;
virtual PBoolean OnReceivedPDU(
const H245_OpenLogicalChannel & pdu,
unsigned & errorCode
);
virtual PBoolean OnReceivedAckPDU(
const H245_OpenLogicalChannelAck & pdu
);
virtual PBoolean OnSendingPDU(
H245_H2250LogicalChannelParameters & param
) const;
virtual void OnSendOpenAck(
H245_H2250LogicalChannelAckParameters & param
) const;
virtual PBoolean OnReceivedPDU(
const H245_H2250LogicalChannelParameters & param,
unsigned & errorCode
);
virtual PBoolean OnReceivedAckPDU(
const H245_H2250LogicalChannelAckParameters & param
);
RTP_DataFrame::PayloadTypes GetDynamicRTPPayloadType() const;
};
class H323_RTPChannel : public H323_RealTimeChannel
{
PCLASSINFO(H323_RTPChannel, H323_RealTimeChannel);
public:
H323_RTPChannel(
H323Connection & connection,
const H323Capability & capability,
Directions direction,
RTP_Session & rtp
);
~H323_RTPChannel();
virtual unsigned GetSessionID() const;
virtual bool SetSessionID(
unsigned sessionID
);
virtual PBoolean OnSendingPDU(
H245_H2250LogicalChannelParameters & param
) const;
virtual void OnSendOpenAck(
H245_H2250LogicalChannelAckParameters & param
) const;
virtual PBoolean OnReceivedPDU(
const H245_H2250LogicalChannelParameters & param,
unsigned & errorCode
);
virtual PBoolean OnReceivedAckPDU(
const H245_H2250LogicalChannelAckParameters & param
);
protected:
RTP_Session & rtpSession;
H323_RTP_Session & rtpCallbacks;
};
class H323_ExternalRTPChannel : public H323_RealTimeChannel
{
PCLASSINFO(H323_ExternalRTPChannel, H323_RealTimeChannel);
public:
H323_ExternalRTPChannel(
H323Connection & connection,
const H323Capability & capability,
Directions direction,
unsigned sessionID
);
H323_ExternalRTPChannel(
H323Connection & connection,
const H323Capability & capability,
Directions direction,
unsigned sessionID,
const H323TransportAddress & data,
const H323TransportAddress & control
);
H323_ExternalRTPChannel(
H323Connection & connection,
const H323Capability & capability,
Directions direction,
unsigned sessionID,
const PIPSocket::Address & ip,
WORD dataPort
);
virtual unsigned GetSessionID() const;
virtual PBoolean GetMediaTransportAddress(
OpalTransportAddress & data,
OpalTransportAddress & control
) const;
virtual PBoolean Start();
virtual void Receive();
virtual void Transmit();
virtual PBoolean OnSendingPDU(
H245_H2250LogicalChannelParameters & param
) const;
virtual void OnSendOpenAck(
H245_H2250LogicalChannelAckParameters & param
) const;
virtual PBoolean OnReceivedPDU(
const H245_H2250LogicalChannelParameters & param,
unsigned & errorCode
);
virtual PBoolean OnReceivedAckPDU(
const H245_H2250LogicalChannelAckParameters & param
);
void SetExternalAddress(
const H323TransportAddress & data,
const H323TransportAddress & control
);
const H323TransportAddress & GetRemoteMediaAddress() const { return remoteMediaAddress; }
const H323TransportAddress & GetRemoteMediaControlAddress() const { return remoteMediaControlAddress; }
PBoolean GetRemoteAddress(
PIPSocket::Address & ip,
WORD & dataPort
) const;
protected:
void Construct(H323Connection & conn, unsigned id);
unsigned sessionID;
H323TransportAddress externalMediaAddress;
H323TransportAddress externalMediaControlAddress;
H323TransportAddress remoteMediaAddress;
H323TransportAddress remoteMediaControlAddress;
};
class H323DataChannel : public H323UnidirectionalChannel
{
PCLASSINFO(H323DataChannel, H323UnidirectionalChannel);
public:
H323DataChannel(
H323Connection & connection,
const H323Capability & capability,
Directions direction,
unsigned sessionID
);
~H323DataChannel();
virtual unsigned GetSessionID() const;
virtual PBoolean OnSendingPDU(
H245_OpenLogicalChannel & openPDU
) const;
virtual void OnSendOpenAck(
const H245_OpenLogicalChannel & open,
H245_OpenLogicalChannelAck & ack
) const;
virtual PBoolean OnReceivedPDU(
const H245_OpenLogicalChannel & pdu,
unsigned & errorCode
);
virtual PBoolean OnReceivedAckPDU(
const H245_OpenLogicalChannelAck & pdu
);
virtual PBoolean CreateListener();
virtual PBoolean CreateTransport();
protected:
virtual void InternalClose();
unsigned sessionID;
H323Listener * listener;
PBoolean autoDeleteListener;
H323Transport * transport;
PBoolean autoDeleteTransport;
PBoolean separateReverseChannel;
};
#endif // OPAL_H323
#endif // OPAL_H323_CHANNELS_H
H323Channel::GetMediaTransportAddress
virtual PBoolean GetMediaTransportAddress(OpalTransportAddress &data, OpalTransportAddress &control) const
H323Channel::connection
H323Connection & connection
Definition: channels.h:339
H323DataChannel::sessionID
unsigned sessionID
Definition: channels.h:893
H323DataChannel::H323DataChannel
H323DataChannel(H323Connection &connection, const H323Capability &capability, Directions direction, unsigned sessionID)
H323_ExternalRTPChannel::Transmit
virtual void Transmit()
H323BidirectionalChannel::GetDirection
virtual Directions GetDirection() const
H323DataChannel::InternalClose
virtual void InternalClose()
RTP_Session
Definition: rtp.h:502
H323Channel::GetCapability
const H323Capability & GetCapability() const
Definition: channels.h:308
H323ChannelNumber::HashFunction
virtual PINDEX HashFunction() const
H323DataChannel::autoDeleteTransport
PBoolean autoDeleteTransport
Definition: channels.h:897
H323_RealTimeChannel
Definition: channels.h:469
H323UnidirectionalChannel::Start
virtual PBoolean Start()
OpalMediaCommand
Definition: mediacmd.h:43
buildopts.h
H323UnidirectionalChannel::GetMediaStream
virtual OpalMediaStreamPtr GetMediaStream() const
H323_ExternalRTPChannel::externalMediaAddress
H323TransportAddress externalMediaAddress
Definition: channels.h:788
H323Channel::SetSessionID
virtual bool SetSessionID(unsigned sessionID)
H323Channel::GetMediaStream
virtual OpalMediaStreamPtr GetMediaStream() const
H323Capability
Definition: h323caps.h:89
H323DataChannel::autoDeleteListener
PBoolean autoDeleteListener
Definition: channels.h:895
H323_ExternalRTPChannel::externalMediaControlAddress
H323TransportAddress externalMediaControlAddress
Definition: channels.h:789
H323Channel::Directions
Directions
Definition: channels.h:129
OpalTransport
Definition: transports.h:703
H323DataChannel::CreateListener
virtual PBoolean CreateListener()
OpalMediaStreamPtr
PSafePtr< OpalMediaStream > OpalMediaStreamPtr
Definition: mediastrm.h:442
H323Channel::number
H323ChannelNumber number
Definition: channels.h:341
H323_RTPChannel::SetSessionID
virtual bool SetSessionID(unsigned sessionID)
H323Channel::GetReverseChannel
const H323ChannelNumber & GetReverseChannel() const
Definition: channels.h:290
H323_RTPChannel
Definition: channels.h:570
H323DataChannel::OnReceivedAckPDU
virtual PBoolean OnReceivedAckPDU(const H245_OpenLogicalChannelAck &pdu)
H323Channel::NumDirections
Definition: channels.h:133
H323_RTPChannel::OnSendOpenAck
virtual void OnSendOpenAck(H245_H2250LogicalChannelAckParameters &param) const
H323_ExternalRTPChannel::remoteMediaControlAddress
H323TransportAddress remoteMediaControlAddress
Definition: channels.h:791
H323_ExternalRTPChannel::remoteMediaAddress
H323TransportAddress remoteMediaAddress
Definition: channels.h:790
H323Channel::GetBandwidthUsed
unsigned GetBandwidthUsed() const
Definition: channels.h:298
H323DataChannel::GetSessionID
virtual unsigned GetSessionID() const
H323ChannelNumber::IsFromRemote
PBoolean IsFromRemote() const
Definition: channels.h:85
H323Channel::H323Channel
H323Channel(H323Connection &connection, const H323Capability &capability)
H323Channel::OnMiscellaneousCommand
virtual void OnMiscellaneousCommand(const H245_MiscellaneousCommand_type &type)
H323Channel::InternalClose
virtual void InternalClose()
H323_ExternalRTPChannel::OnSendOpenAck
virtual void OnSendOpenAck(H245_H2250LogicalChannelAckParameters &param) const
H323_RTPChannel::H323_RTPChannel
H323_RTPChannel(H323Connection &connection, const H323Capability &capability, Directions direction, RTP_Session &rtp)
H323Channel::OnMediaCommand
virtual bool OnMediaCommand(const OpalMediaCommand &)
H323UnidirectionalChannel::SetInitialBandwidth
virtual PBoolean SetInitialBandwidth()
OpalListener
Definition: transports.h:351
RTP_DataFrame::PayloadTypes
PayloadTypes
Definition: rtp.h:86
H323Channel::OnSendingPDU
virtual PBoolean OnSendingPDU(H245_OpenLogicalChannel &openPDU) const =0
H323Channel::capability
H323Capability * capability
Definition: channels.h:340
H323DataChannel::listener
H323Listener * listener
Definition: channels.h:894
H323Channel
Definition: channels.h:99
H323_RTPChannel::rtpCallbacks
H323_RTP_Session & rtpCallbacks
Definition: channels.h:648
H323Channel::GetSessionID
virtual unsigned GetSessionID() const
H323_ExternalRTPChannel::Construct
void Construct(H323Connection &conn, unsigned id)
H323DataChannel
Definition: channels.h:803
H323Channel::SetBandwidthUsed
PBoolean SetBandwidthUsed(unsigned bandwidth)
H323Channel::m_terminating
PAtomicInteger m_terminating
Definition: channels.h:345
H323Channel::GetDirection
virtual Directions GetDirection() const =0
H323_RTPChannel::~H323_RTPChannel
~H323_RTPChannel()
Destroy the channel.
H323_ExternalRTPChannel::OnReceivedPDU
virtual PBoolean OnReceivedPDU(const H245_H2250LogicalChannelParameters &param, unsigned &errorCode)
H323Channel::SetPause
void SetPause(PBoolean pause)
Definition: channels.h:328
H323ChannelNumber::Clone
virtual PObject * Clone() const
H323UnidirectionalChannel::GetDirection
virtual Directions GetDirection() const
H323_ExternalRTPChannel::Start
virtual PBoolean Start()
H323_RTPChannel::OnReceivedPDU
virtual PBoolean OnReceivedPDU(const H245_H2250LogicalChannelParameters &param, unsigned &errorCode)
H323Channel::IsOpen
PBoolean IsOpen() const
Definition: channels.h:198
H323_ExternalRTPChannel::GetRemoteMediaAddress
const H323TransportAddress & GetRemoteMediaAddress() const
Definition: channels.h:776
H323Channel::~H323Channel
~H323Channel()
H323UnidirectionalChannel::mediaStream
OpalMediaStreamPtr mediaStream
Definition: channels.h:423
H323_ExternalRTPChannel::GetRemoteAddress
PBoolean GetRemoteAddress(PIPSocket::Address &ip, WORD &dataPort) const
H323Channel::OnReceivedAckPDU
virtual PBoolean OnReceivedAckPDU(const H245_OpenLogicalChannelAck &pdu)
H323ChannelNumber::Compare
virtual Comparison Compare(const PObject &obj) const
H323Channel::IsTransmitter
Definition: channels.h:131
H323DataChannel::CreateTransport
virtual PBoolean CreateTransport()
PLIST
PLIST(H323LogicalChannelList, H323Channel)
H323Connection
Definition: h323con.h:130
H323_RealTimeChannel::OnReceivedPDU
virtual PBoolean OnReceivedPDU(const H245_OpenLogicalChannel &pdu, unsigned &errorCode)
H323_RTPChannel::GetSessionID
virtual unsigned GetSessionID() const
H323Channel::Open
virtual PBoolean Open()
H323Channel::OnSendOpenAck
virtual void OnSendOpenAck(const H245_OpenLogicalChannel &open, H245_OpenLogicalChannelAck &ack) const
H323DataChannel::~H323DataChannel
~H323DataChannel()
H323UnidirectionalChannel::~H323UnidirectionalChannel
~H323UnidirectionalChannel()
H323UnidirectionalChannel::H323UnidirectionalChannel
H323UnidirectionalChannel(H323Connection &connection, const H323Capability &capability, Directions direction)
operator<<
ostream & operator<<(ostream &strm, OpalSilenceDetector::Mode mode)
H323_ExternalRTPChannel::SetExternalAddress
void SetExternalAddress(const H323TransportAddress &data, const H323TransportAddress &control)
H323Channel::OnJitterIndication
virtual void OnJitterIndication(DWORD jitter, int skippedFrameCount, int additionalBuffer)
H323Channel::SetInitialBandwidth
virtual PBoolean SetInitialBandwidth()=0
H323Channel::endpoint
H323EndPoint & endpoint
Definition: channels.h:338
H323_RealTimeChannel::H323_RealTimeChannel
H323_RealTimeChannel(H323Connection &connection, const H323Capability &capability, Directions direction)
H323_RTPChannel::OnSendingPDU
virtual PBoolean OnSendingPDU(H245_H2250LogicalChannelParameters &param) const
H323ChannelNumber::number
unsigned number
Definition: channels.h:88
H323_ExternalRTPChannel::OnReceivedAckPDU
virtual PBoolean OnReceivedAckPDU(const H245_H2250LogicalChannelAckParameters &param)
H323_ExternalRTPChannel::OnSendingPDU
virtual PBoolean OnSendingPDU(H245_H2250LogicalChannelParameters &param) const
H323Channel::OnReceivedPDU
virtual PBoolean OnReceivedPDU(const H245_OpenLogicalChannel &pdu, unsigned &errorCode)
H323Channel::paused
bool paused
Definition: channels.h:344
H323Channel::opened
bool opened
Definition: channels.h:343
H323_ExternalRTPChannel::sessionID
unsigned sessionID
Definition: channels.h:787
H323Channel::IsPaused
PBoolean IsPaused() const
Definition: channels.h:318
H323UnidirectionalChannel::InternalClose
virtual void InternalClose()
H323Channel::Close
virtual void Close()
H323UnidirectionalChannel
Definition: channels.h:362
H323_ExternalRTPChannel::GetMediaTransportAddress
virtual PBoolean GetMediaTransportAddress(OpalTransportAddress &data, OpalTransportAddress &control) const
H323Channel::OnMiscellaneousIndication
virtual void OnMiscellaneousIndication(const H245_MiscellaneousIndication_type &type)
H323BidirectionalChannel::Start
virtual PBoolean Start()
H323BidirectionalChannel::H323BidirectionalChannel
H323BidirectionalChannel(H323Connection &connection, const H323Capability &capability)
H323_RTP_Session
Definition: h323rtp.h:62
H323BidirectionalChannel
Definition: channels.h:433
H323_ExternalRTPChannel::GetRemoteMediaControlAddress
const H323TransportAddress & GetRemoteMediaControlAddress() const
Definition: channels.h:777
H323Channel::IsReceiver
Definition: channels.h:132
H323ChannelNumber
Definition: channels.h:70
H323_ExternalRTPChannel::GetSessionID
virtual unsigned GetSessionID() const
H323ChannelNumber::fromRemote
PBoolean fromRemote
Definition: channels.h:89
H323Channel::reverseChannel
H323ChannelNumber reverseChannel
Definition: channels.h:342
transaddr.h
H323UnidirectionalChannel::receiver
bool receiver
Definition: channels.h:422
H323DataChannel::OnSendOpenAck
virtual void OnSendOpenAck(const H245_OpenLogicalChannel &open, H245_OpenLogicalChannelAck &ack) const
H323_ExternalRTPChannel::H323_ExternalRTPChannel
H323_ExternalRTPChannel(H323Connection &connection, const H323Capability &capability, Directions direction, unsigned sessionID)
H323_ExternalRTPChannel::Receive
virtual void Receive()
H323Channel::SetNumber
void SetNumber(const H323ChannelNumber &num)
Definition: channels.h:286
H323DataChannel::separateReverseChannel
PBoolean separateReverseChannel
Definition: channels.h:898
H323Channel::IsBidirectional
Definition: channels.h:130
mediastrm.h
rtp.h
OpalTransportAddress
Definition: transports.h:149
H323Channel::SetReverseChannel
void SetReverseChannel(const H323ChannelNumber &num)
Definition: channels.h:294
H323_ExternalRTPChannel
Definition: channels.h:657
H323EndPoint
Definition: h323ep.h:85
H323_RealTimeChannel::OnSendingPDU
virtual PBoolean OnSendingPDU(H245_OpenLogicalChannel &openPDU) const
H323ChannelNumber::H323ChannelNumber
H323ChannelNumber()
Definition: channels.h:75
H323ChannelNumber::PrintOn
virtual void PrintOn(ostream &strm) const
H323Channel::GetNumber
const H323ChannelNumber & GetNumber() const
Definition: channels.h:282
H323_RTPChannel::rtpSession
RTP_Session & rtpSession
Definition: channels.h:647
H323TransportAddress
Definition: transaddr.h:66
H323_RealTimeChannel::OnReceivedAckPDU
virtual PBoolean OnReceivedAckPDU(const H245_OpenLogicalChannelAck &pdu)
H323DataChannel::transport
H323Transport * transport
Definition: channels.h:896
H323Channel::OnFlowControl
virtual void OnFlowControl(long bitRateRestriction)
H323DataChannel::OnReceivedPDU
virtual PBoolean OnReceivedPDU(const H245_OpenLogicalChannel &pdu, unsigned &errorCode)
H323_RealTimeChannel::GetDynamicRTPPayloadType
RTP_DataFrame::PayloadTypes GetDynamicRTPPayloadType() const
H323_RealTimeChannel::OnSendOpenAck
virtual void OnSendOpenAck(const H245_OpenLogicalChannel &open, H245_OpenLogicalChannelAck &ack) const
H323Channel::Start
virtual PBoolean Start()=0
H323Channel::PrintOn
virtual void PrintOn(ostream &strm) const
H323ChannelNumber::operator++
H323ChannelNumber & operator++(int)
H323_RTPChannel::OnReceivedAckPDU
virtual PBoolean OnReceivedAckPDU(const H245_H2250LogicalChannelAckParameters &param)
H323DataChannel::OnSendingPDU
virtual PBoolean OnSendingPDU(H245_OpenLogicalChannel &openPDU) const
H323UnidirectionalChannel::Open
virtual PBoolean Open()