H323_ExternalRTPChannel Class Reference

#include <channels.h>

Inheritance diagram for H323_ExternalRTPChannel:
H323_RealTimeChannel H323UnidirectionalChannel H323Channel

Public Member Functions

void SetExternalAddress (const H323TransportAddress &data, const H323TransportAddress &control)
const H323TransportAddressGetRemoteMediaAddress () const
const H323TransportAddressGetRemoteMediaControlAddress () const
PBoolean 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 PBoolean GetMediaTransportAddress (OpalTransportAddress &data, OpalTransportAddress &control) const
virtual PBoolean Start ()
virtual void Receive ()
virtual void Transmit ()
Overrides from class H323_RealTimeChannel



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 Member Functions

void Construct (H323Connection &conn, unsigned id)

Protected Attributes

unsigned sessionID
H323TransportAddress externalMediaAddress
H323TransportAddress externalMediaControlAddress
H323TransportAddress remoteMediaAddress
H323TransportAddress remoteMediaControlAddress

Detailed Description

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


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
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
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)

Member Function Documentation

void H323_ExternalRTPChannel::Construct ( H323Connection conn,
unsigned  id 
) [protected]
virtual PBoolean H323_ExternalRTPChannel::GetMediaTransportAddress ( OpalTransportAddress data,
OpalTransportAddress control 
) const [virtual]

Get the media transport address for the connection. This is primarily used to determine if media bypass is possible for the call between two connections.

The default behaviour returns PFalse.

Parameters:
data Data channel address
control Control channel address

Reimplemented from H323Channel.

PBoolean H323_ExternalRTPChannel::GetRemoteAddress ( PIPSocket::Address &  ip,
WORD &  dataPort 
) const
const H323TransportAddress& H323_ExternalRTPChannel::GetRemoteMediaAddress (  )  const [inline]

References remoteMediaAddress.

const H323TransportAddress& H323_ExternalRTPChannel::GetRemoteMediaControlAddress (  )  const [inline]
virtual 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.

virtual PBoolean 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

Reimplemented from H323_RealTimeChannel.

virtual PBoolean 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

Reimplemented from H323_RealTimeChannel.

virtual PBoolean H323_ExternalRTPChannel::OnSendingPDU ( H245_H2250LogicalChannelParameters &  param  )  const [virtual]

Fill out the OpenLogicalChannel PDU for the particular channel type.

Parameters:
param Open PDU to send.

Reimplemented from H323_RealTimeChannel.

virtual 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

Reimplemented from H323_RealTimeChannel.

virtual 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).

void H323_ExternalRTPChannel::SetExternalAddress ( const H323TransportAddress data,
const H323TransportAddress control 
)
Parameters:
data Data address
control Control address
virtual PBoolean H323_ExternalRTPChannel::Start (  )  [virtual]

Start the channel.

Reimplemented from H323UnidirectionalChannel.

virtual 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).


Field Documentation

Referenced by GetRemoteMediaAddress().

unsigned H323_ExternalRTPChannel::sessionID [protected]

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

Generated on 14 Jul 2011 for OPAL by  doxygen 1.6.1