OPAL  Version 3.10.10
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)
 
- Public Member Functions inherited from H323_RealTimeChannel
 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)
 
RTP_DataFrame::PayloadTypes GetDynamicRTPPayloadType () const
 
- Public Member Functions inherited from H323UnidirectionalChannel
 H323UnidirectionalChannel (H323Connection &connection, const H323Capability &capability, Directions direction)
 
 ~H323UnidirectionalChannel ()
 
virtual Directions GetDirection () const
 
virtual PBoolean SetInitialBandwidth ()
 
virtual PBoolean Open ()
 
virtual OpalMediaStreamPtr GetMediaStream () const
 
- Public Member Functions inherited from H323Channel
virtual bool OnMediaCommand (const OpalMediaCommand &)
 
 H323Channel (H323Connection &connection, const H323Capability &capability)
 
 ~H323Channel ()
 
virtual void PrintOn (ostream &strm) const
 
const H323ChannelNumberGetNumber () const
 
void SetNumber (const H323ChannelNumber &num)
 
const H323ChannelNumberGetReverseChannel () const
 
void SetReverseChannel (const H323ChannelNumber &num)
 
unsigned GetBandwidthUsed () const
 
PBoolean SetBandwidthUsed (unsigned bandwidth)
 
const H323CapabilityGetCapability () const
 
PBoolean IsPaused () const
 
void SetPause (PBoolean pause)
 
virtual bool SetSessionID (unsigned sessionID)
 
virtual void Close ()
 
PBoolean IsOpen () const
 
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)
 

Protected Member Functions

void Construct (H323Connection &conn, unsigned id)
 
- Protected Member Functions inherited from H323UnidirectionalChannel
virtual void InternalClose ()
 

Protected Attributes

unsigned sessionID
 
H323TransportAddress externalMediaAddress
 
H323TransportAddress externalMediaControlAddress
 
H323TransportAddress remoteMediaAddress
 
H323TransportAddress remoteMediaControlAddress
 
- Protected Attributes inherited from H323UnidirectionalChannel
bool receiver
 
OpalMediaStreamPtr mediaStream
 
- Protected Attributes inherited from H323Channel
H323EndPointendpoint
 
H323Connectionconnection
 
H323Capabilitycapability
 
H323ChannelNumber number
 
H323ChannelNumber reverseChannel
 
bool opened
 
bool paused
 
PAtomicInteger m_terminating
 

Additional Inherited Members

- Public Types inherited from H323Channel
enum  Directions { IsBidirectional, IsTransmitter, IsReceiver, NumDirections }
 

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
connectionConnection to endpoint for channel
capabilityCapability channel is using
directionDirection of channel
sessionIDSession 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
connectionConnection to endpoint for channel
capabilityCapability channel is using
directionDirection of channel
sessionIDSession ID for channel
dataData address
controlControl 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
connectionConnection to endpoint for channel
capabilityCapability channel is using
directionDirection of channel
sessionIDSession ID for channel
ipIP address of media server
dataPortData 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 false.

Parameters
dataData channel address
controlControl 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
paramAcknowledgement 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
paramAcknowledgement PDU
errorCodeError 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
paramOpen 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
paramAcknowledgement 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
dataData address
controlControl 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

H323TransportAddress H323_ExternalRTPChannel::externalMediaAddress
protected
H323TransportAddress H323_ExternalRTPChannel::externalMediaControlAddress
protected
H323TransportAddress H323_ExternalRTPChannel::remoteMediaAddress
protected

Referenced by GetRemoteMediaAddress().

H323TransportAddress H323_ExternalRTPChannel::remoteMediaControlAddress
protected
unsigned H323_ExternalRTPChannel::sessionID
protected

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