H323_ExternalRTPChannel Class Reference

`#include <channels.h>`

Inheritance diagram for H323_ExternalRTPChannel:

## Public Member Functions

void | SetExternalAddress (const H323TransportAddress &data, const H323TransportAddress &control)
const H323TransportAddress & | GetRemoteMediaAddress () const
const H323TransportAddress & | GetRemoteMediaControlAddress () 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 H323ChannelNumber & | GetNumber () const
void | SetNumber (const H323ChannelNumber &num)
const H323ChannelNumber & | GetReverseChannel () const
void | SetReverseChannel (const H323ChannelNumber &num)
unsigned | GetBandwidthUsed () const
PBoolean | SetBandwidthUsed (unsigned bandwidth)
const H323Capability & | GetCapability () 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
H323EndPoint & | endpoint
H323Connection & | connection
H323Capability * | capability
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

  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 false.

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

References remoteMediaControlAddress.

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

H323TransportAddress H323_ExternalRTPChannel::externalMediaAddress

protected

H323TransportAddress H323_ExternalRTPChannel::externalMediaControlAddress

protected

H323TransportAddress H323_ExternalRTPChannel::remoteMediaAddress

protected

Referenced by GetRemoteMediaAddress().

H323TransportAddress H323_ExternalRTPChannel::remoteMediaControlAddress

protected

Referenced by GetRemoteMediaControlAddress().

unsigned H323_ExternalRTPChannel::sessionID

protected

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

- channels.h