H323_RTPChannel Class Reference

#include <channels.h>

Inheritance diagram for H323_RTPChannel:

H323_RealTimeChannel H323UnidirectionalChannel H323Channel List of all members.

Public Member Functions

void AddFilter (const PNotifier &filterFunction)
void RemoveFilter (const PNotifier &filterFunction)
PTimeInterval GetSilenceDuration () const
Construction
 H323_RTPChannel (H323Connection &connection, const H323Capability &capability, Directions direction, RTP_Session &rtp)
 ~H323_RTPChannel ()
 Destroy the channel.
Overrides from class H323Channel
virtual void CleanUpOnTermination ()
virtual unsigned GetSessionID () const
virtual BOOL Open ()
virtual void Receive ()
virtual void Transmit ()
Overrides from class H323_RealTimeChannel
virtual BOOL OnSendingPDU (H245_H2250LogicalChannelParameters &param) const
virtual BOOL OnSendingAltPDU (H245_ArrayOf_GenericInformation &alternate) const
virtual void OnSendOpenAck (H245_H2250LogicalChannelAckParameters &param) const
virtual void OnSendOpenAckAlt (H245_ArrayOf_GenericInformation &alternate) const
virtual BOOL OnReceivedPDU (const H245_H2250LogicalChannelParameters &param, unsigned &errorCode)
virtual BOOL OnReceivedAltPDU (const H245_ArrayOf_GenericInformation &alternate)
virtual BOOL OnReceivedAckPDU (const H245_H2250LogicalChannelAckParameters &param)
virtual BOOL OnReceivedAckAltPDU (const H245_ArrayOf_GenericInformation &alternate)

Protected Attributes

RTP_SessionrtpSession
H323_RTP_SessionrtpCallbacks
FilterList filters
PMutex filterMutex
PTimeInterval silenceStartTick

Detailed Description

This class is for encpsulating the IETF Real Time Protocol interface.

Definition at line 710 of file channels.h.


Constructor & Destructor Documentation

H323_RTPChannel::H323_RTPChannel ( H323Connection connection,
const H323Capability capability,
Directions  direction,
RTP_Session rtp 
)

Create a new channel.

Parameters:
connection  Connection to endpoint for channel
capability  Capability channel is using
direction  Direction of channel
rtp  RTP session for channel

Definition at line 1108 of file channels.cxx.

References GetSessionID(), and H323UnidirectionalChannel::receiver.


Member Function Documentation

void H323_RTPChannel::CleanUpOnTermination (  )  [virtual]

This is called to clean up any threads on connection termination.

Reimplemented from H323Channel.

Definition at line 1129 of file channels.cxx.

References H323Channel::CleanUpOnTermination(), RTP_Session::Close(), H323Channel::number, H323UnidirectionalChannel::receiver, H323Channel::receiveThread, rtpSession, H323Channel::terminating, and H323Channel::transmitThread.

unsigned H323_RTPChannel::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 1145 of file channels.cxx.

References RTP_Session::GetSessionID(), and rtpSession.

Referenced by H323_RTPChannel(), and ~H323_RTPChannel().

BOOL H323_RTPChannel::Open (  )  [virtual]

Open the channel.

Reimplemented from H323Channel.

Definition at line 1151 of file channels.cxx.

References H323Codec::AttachLogicalChannel(), H323Channel::capability, H323Channel::codec, H323Channel::connection, H323Channel::GetCodec(), H323UnidirectionalChannel::GetDirection(), H323Codec::GetMediaFormat(), H323Channel::IsReceiver, OpalMediaFormat::IsValid(), H323Connection::OnStartLogicalChannel(), H323Codec::Open(), and H323Channel::opened.

void H323_RTPChannel::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 1438 of file channels.cxx.

References H323Connection::CloseLogicalChannelNumber(), H323Channel::codec, H323Channel::connection, OpalMediaFormat::DefaultAudioSessionID, H323Channel::endpoint, filterMutex, filters, OpalMediaFormat::GetDefaultSessionID(), H323Codec::GetFrameRate(), H323EndPoint::GetJitterThreadStackSize(), H323Connection::GetMaxAudioJitterDelay(), H323Codec::GetMediaFormat(), H323Connection::GetMinAudioJitterDelay(), H323_RealTimeChannel::GetRTPPayloadType(), OpalMediaFormat::GetTimeUnits(), RTP_DataFrame::IllegalPayloadType, OpalMediaFormat::NeedsJitterBuffer(), H323Channel::number, H323Channel::paused, RTP_Session::ReadBufferedData(), H323_RealTimeChannel::rtpPayloadType, rtpSession, RTP_Session::SetJitterBufferSize(), silenceStartTick, H323Channel::terminating, and H323Codec::Write().

void H323_RTPChannel::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 1277 of file channels.cxx.

References H323Channel::capability, H323Connection::CloseLogicalChannelNumber(), H323Channel::codec, H323Channel::connection, filterMutex, filters, RTP_DataFrame::G729, H323Codec::GetFrameRate(), OpalMediaFormat::GetFrameSize(), H323Codec::GetMediaFormat(), RTP_DataFrame::GetPayloadPtr(), H323_RealTimeChannel::GetRTPPayloadType(), OpalMediaFormat::GetTimeUnits(), H323Capability::GetTxFramesInPacket(), RTP_DataFrame::IllegalPayloadType, OpalMediaFormat::NeedsJitterBuffer(), H323Channel::number, H323Channel::paused, H323Codec::Read(), H323_RealTimeChannel::rtpPayloadType, rtpSession, RTP_DataFrame::SetMarker(), RTP_DataFrame::SetPayloadSize(), RTP_DataFrame::SetPayloadType(), RTP_DataFrame::SetTimestamp(), silenceStartTick, H323Channel::terminating, and RTP_Session::WriteData().

BOOL H323_RTPChannel::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 1193 of file channels.cxx.

References H323_RTP_Session::OnSendingPDU(), and rtpCallbacks.

BOOL H323_RTPChannel::OnSendingAltPDU ( H245_ArrayOf_GenericInformation alternate  )  const [virtual]

Alternate RTP port information for Same NAT

Parameters:
alternate  Alternate RTP ports

Implements H323_RealTimeChannel.

Definition at line 1198 of file channels.cxx.

References H323_RTP_Session::OnSendingAltPDU(), and rtpCallbacks.

void H323_RTPChannel::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 1203 of file channels.cxx.

References H323_RTP_Session::OnSendingAckPDU(), and rtpCallbacks.

void H323_RTPChannel::OnSendOpenAckAlt ( H245_ArrayOf_GenericInformation alternate  )  const [virtual]

Alternate RTP port information for Same NAT

Parameters:
alternate  Alternate RTP ports

Implements H323_RealTimeChannel.

Definition at line 1208 of file channels.cxx.

References H323_RTP_Session::OnSendOpenAckAlt(), and rtpCallbacks.

BOOL H323_RTPChannel::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 1213 of file channels.cxx.

References H323_RTP_Session::OnReceivedPDU(), and rtpCallbacks.

BOOL H323_RTPChannel::OnReceivedAltPDU ( const H245_ArrayOf_GenericInformation alternate  )  [virtual]

Alternate RTP port information for Same NAT

Parameters:
alternate  Alternate RTP ports

Implements H323_RealTimeChannel.

Definition at line 1219 of file channels.cxx.

References H323_RTP_Session::OnReceivedAltPDU(), and rtpCallbacks.

BOOL H323_RTPChannel::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 1225 of file channels.cxx.

References H323_RTP_Session::OnReceivedAckPDU(), and rtpCallbacks.

BOOL H323_RTPChannel::OnReceivedAckAltPDU ( const H245_ArrayOf_GenericInformation alternate  )  [virtual]

Alternate RTP port information for Same NAT

Parameters:
alternate  Alternate RTP ports

Implements H323_RealTimeChannel.

Definition at line 1230 of file channels.cxx.

References H323_RTP_Session::OnReceivedAckAltPDU(), and rtpCallbacks.


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