H323_ExternalRTPChannel Class Reference

#include <channels.h>

Inheritance diagram for H323_ExternalRTPChannel:

H323_RealTimeChannel H323UnidirectionalChannel H323Channel List of all members.

Public Member Functions

void SetExternalAddress (const H323TransportAddress &data, const H323TransportAddress &control)
const H323TransportAddressGetRemoteMediaAddress () const
const H323TransportAddressGetRemoteMediaControlAddress () const
BOOL GetRemoteAddress (PIPSocket::Address &ip, WORD &dataPort) const
Construction
 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)
Overrides from class H323Channel
virtual unsigned GetSessionID () const
virtual BOOL Start ()
virtual BOOL IsRunning () const
virtual void Receive ()
virtual void Transmit ()
Overrides from class H323_RealTimeChannel
virtual BOOL OnSendingPDU (H245_H2250LogicalChannelParameters &param) const
virtual void OnSendOpenAck (H245_H2250LogicalChannelAckParameters &param) const
virtual BOOL OnReceivedPDU (const H245_H2250LogicalChannelParameters &param, unsigned &errorCode)
virtual BOOL OnReceivedAckPDU (const H245_H2250LogicalChannelAckParameters &param)

Protected Attributes

unsigned sessionID
H323TransportAddress externalMediaAddress
H323TransportAddress externalMediaControlAddress
H323TransportAddress remoteMediaAddress
H323TransportAddress remoteMediaControlAddress
BOOL isRunning

Detailed Description

This class is for encpsulating the IETF Real Time Protocol interface as used by a remote host.

Definition at line 851 of file channels.h.


Constructor & Destructor Documentation

H323_ExternalRTPChannel::H323_ExternalRTPChannel ( H323Connection connection,
const H323Capability capability,
Directions  direction,
unsigned  sessionID 
)

Create a new channel.

Parameters:
connection  Connection to endpoint for channel
capability  Capability channel is using
direction  Direction of channel
sessionID  Session ID for channel

Definition at line 1578 of file channels.cxx.

References isRunning, and sessionID.

H323_ExternalRTPChannel::H323_ExternalRTPChannel ( H323Connection connection,
const H323Capability capability,
Directions  direction,
unsigned  sessionID,
const H323TransportAddress data,
const H323TransportAddress control 
)

Create a new channel.

Parameters:
connection  Connection to endpoint for channel
capability  Capability channel is using
direction  Direction of channel
sessionID  Session ID for channel
data  Data address
control  Control address

Definition at line 1589 of file channels.cxx.

References isRunning, and sessionID.

H323_ExternalRTPChannel::H323_ExternalRTPChannel ( H323Connection connection,
const H323Capability capability,
Directions  direction,
unsigned  sessionID,
const PIPSocket::Address &  ip,
WORD  dataPort 
)

Create a new channel.

Parameters:
connection  Connection to endpoint for channel
capability  Capability channel is using
direction  Direction of channel
sessionID  Session ID for channel
ip  IP address of media server
dataPort  Data port (control is dataPort+1)

Definition at line 1604 of file channels.cxx.

References isRunning, and sessionID.


Member Function Documentation

unsigned H323_ExternalRTPChannel::GetSessionID (  )  const [virtual]

Indicate the session number of the channel. Return session for channel. This returns the session ID of the RTP_Session member variable.

Reimplemented from H323Channel.

Definition at line 1619 of file channels.cxx.

References sessionID.

BOOL H323_ExternalRTPChannel::Start (  )  [virtual]

Start the channel.

Reimplemented from H323UnidirectionalChannel.

Definition at line 1625 of file channels.cxx.

References isRunning, and H323Channel::Open().

BOOL H323_ExternalRTPChannel::IsRunning (  )  const [virtual]

Indicate if is started.

Reimplemented from H323Channel.

Definition at line 1632 of file channels.cxx.

References isRunning, and H323Channel::opened.

void H323_ExternalRTPChannel::Receive (  )  [virtual]

Handle channel data reception.

This is called by the thread started by the Start() function and is typically a loop writing to the codec and reading from the transport (eg RTP_session).

Implements H323Channel.

Definition at line 1638 of file channels.cxx.

void H323_ExternalRTPChannel::Transmit (  )  [virtual]

Handle channel data transmission.

This is called by the thread started by the Start() function and is typically a loop reading from the codec and writing to the transport (eg an RTP_session).

Implements H323Channel.

Definition at line 1644 of file channels.cxx.

BOOL H323_ExternalRTPChannel::OnSendingPDU ( H245_H2250LogicalChannelParameters param  )  const [virtual]

Fill out the OpenLogicalChannel PDU for the particular channel type.

Parameters:
param  Open PDU to send.

Implements H323_RealTimeChannel.

Definition at line 1650 of file channels.cxx.

References H245_H2250LogicalChannelAckParameters::e_mediaChannel, H245_H2250LogicalChannelParameters::e_mediaControlChannel, H245_H2250LogicalChannelParameters::e_mediaGuaranteedDelivery, H245_H2250LogicalChannelParameters::e_silenceSuppression, externalMediaAddress, externalMediaControlAddress, H245_H2250LogicalChannelParameters::m_mediaChannel, H245_H2250LogicalChannelParameters::m_mediaControlChannel, H245_H2250LogicalChannelParameters::m_mediaGuaranteedDelivery, H245_H2250LogicalChannelParameters::m_sessionID, H245_H2250LogicalChannelParameters::m_silenceSuppression, H323UnidirectionalChannel::receiver, sessionID, and H323TransportAddress::SetPDU().

void H323_ExternalRTPChannel::OnSendOpenAck ( H245_H2250LogicalChannelAckParameters param  )  const [virtual]

This is called when request to create a channel is received from a remote machine and is about to be acknowledged.

Parameters:
param  Acknowledgement PDU

Implements H323_RealTimeChannel.

Definition at line 1674 of file channels.cxx.

References H245_H2250LogicalChannelAckParameters::e_mediaChannel, H245_H2250LogicalChannelAckParameters::e_mediaControlChannel, externalMediaAddress, externalMediaControlAddress, H245_H2250LogicalChannelAckParameters::m_mediaChannel, H245_H2250LogicalChannelAckParameters::m_mediaControlChannel, and H323TransportAddress::SetPDU().

BOOL H323_ExternalRTPChannel::OnReceivedPDU ( const H245_H2250LogicalChannelParameters param,
unsigned &  errorCode 
) [virtual]

This is called after a request to create a channel occurs from the local machine via the H245LogicalChannelDict::Open() function, and the request has been acknowledged by the remote endpoint.

The default behaviour sets the remote ports to send UDP packets to.

Parameters:
param  Acknowledgement PDU
errorCode  Error on failure

Implements H323_RealTimeChannel.

Definition at line 1686 of file channels.cxx.

References H245_OpenLogicalChannelReject_cause::e_invalidSessionID, H245_H2250LogicalChannelParameters::e_mediaChannel, H245_H2250LogicalChannelParameters::e_mediaControlChannel, H245_OpenLogicalChannelReject_cause::e_unspecified, H245_H2250LogicalChannelParameters::m_mediaChannel, H245_H2250LogicalChannelParameters::m_mediaControlChannel, H245_H2250LogicalChannelParameters::m_sessionID, remoteMediaAddress, remoteMediaControlAddress, and sessionID.

BOOL H323_ExternalRTPChannel::OnReceivedAckPDU ( const H245_H2250LogicalChannelAckParameters param  )  [virtual]

This is called after a request to create a channel occurs from the local machine via the H245LogicalChannelDict::Open() function, and the request has been acknowledged by the remote endpoint.

The default behaviour sets the remote ports to send UDP packets to.

Parameters:
param  Acknowledgement PDU

Implements H323_RealTimeChannel.

Definition at line 1716 of file channels.cxx.

References H245_H2250LogicalChannelAckParameters::e_mediaChannel, H245_H2250LogicalChannelAckParameters::e_mediaControlChannel, H245_H2250LogicalChannelAckParameters::e_sessionID, H245_H2250LogicalChannelAckParameters::m_mediaChannel, H245_H2250LogicalChannelAckParameters::m_mediaControlChannel, H245_H2250LogicalChannelAckParameters::m_sessionID, remoteMediaAddress, remoteMediaControlAddress, and sessionID.

void H323_ExternalRTPChannel::SetExternalAddress ( const H323TransportAddress data,
const H323TransportAddress control 
)

Parameters:
data  Data address
control  Control address

Definition at line 1744 of file channels.cxx.

References externalMediaAddress, externalMediaControlAddress, and H323TransportAddress::GetIpAndPort().


The documentation for this class was generated from the following files:
Generated on Thu Oct 25 13:45:16 2007 for h323plus by  doxygen 1.5.2