RTP_UDP Class Reference

#include <rtp.h>

Inheritance diagram for RTP_UDP:

RTP_Session SecureRTP_UDP T38PseudoRTP List of all members.

Public Member Functions

virtual BOOL ModifyQOS (RTP_QOS *rtpqos)
virtual void Reopen (BOOL isReading)
virtual int GetDataSocketHandle () const
virtual int GetControlSocketHandle () const
Overrides from class RTP_Session
virtual BOOL ReadData (RTP_DataFrame &frame, BOOL loop)
virtual BOOL WriteData (RTP_DataFrame &frame)
virtual BOOL WriteOOBData (RTP_DataFrame &frame)
virtual BOOL WriteControl (RTP_ControlFrame &frame)
virtual void Close (BOOL reading)
virtual PString GetLocalHostName ()
New functions for class
virtual BOOL Open (PIPSocket::Address localAddress, WORD portBase, WORD portMax, BYTE ipTypeOfService, PSTUNClient *stun=NULL, RTP_QOS *rtpqos=NULL)
Member variable access
virtual PIPSocket::Address GetLocalAddress () const
virtual void SetLocalAddress (const PIPSocket::Address &addr)
PIPSocket::Address GetRemoteAddress () const
virtual WORD GetLocalDataPort () const
virtual WORD GetLocalControlPort () const
virtual WORD GetRemoteDataPort () const
virtual WORD GetRemoteControlPort () const
virtual PUDPSocket & GetDataSocket ()
virtual PUDPSocket & GetControlSocket ()
virtual BOOL SetRemoteSocketInfo (PIPSocket::Address address, WORD port, BOOL isDataPort)
virtual void ApplyQOS (const PIPSocket::Address &addr)

Protected Member Functions

virtual int WaitForPDU (PUDPSocket &dataSocket, PUDPSocket &controlSocket, const PTimeInterval &timer)
virtual SendReceiveStatus ReadDataPDU (RTP_DataFrame &frame)
virtual SendReceiveStatus ReadControlPDU ()
virtual SendReceiveStatus ReadDataOrControlPDU (PUDPSocket &socket, PBYTEArray &frame, BOOL fromDataChannel)

Protected Attributes

PIPSocket::Address localAddress
WORD localDataPort
WORD localControlPort
PIPSocket::Address remoteAddress
WORD remoteDataPort
WORD remoteControlPort
PIPSocket::Address remoteTransmitAddress
BOOL shutdownRead
BOOL shutdownWrite
PUDPSocket * dataSocket
PUDPSocket * controlSocket
BOOL appliedQOS
BOOL remoteIsNAT
BOOL first

Detailed Description

This class is for the IETF Real Time Protocol interface on UDP/IP.


Constructor & Destructor Documentation

RTP_UDP::RTP_UDP ( PHandleAggregator aggregator,
unsigned  id,
BOOL  remoteIsNAT 
)

Create a new RTP channel.

Parameters:
aggregator  RTP aggregator
id  Session ID for RTP channel
remoteIsNAT  TRUE is remote is behind NAT

RTP_UDP::~RTP_UDP (  ) 

Destroy the RTP.

RTP_UDP::RTP_UDP ( PHandleAggregator aggregator,
unsigned  id,
BOOL  remoteIsNAT 
)

Create a new RTP channel.

Parameters:
aggregator  RTP aggregator
id  Session ID for RTP channel
remoteIsNAT  TRUE is remote is behind NAT

RTP_UDP::~RTP_UDP (  ) 

Destroy the RTP.


Member Function Documentation

virtual BOOL RTP_UDP::ReadData ( RTP_DataFrame frame,
BOOL  loop 
) [virtual]

Read a data frame from the RTP channel. Any control frames received are dispatched to callbacks and are not returned by this function. It will block until a data frame is available or an error occurs.

Implements RTP_Session.

Reimplemented in T38PseudoRTP.

virtual BOOL RTP_UDP::WriteData ( RTP_DataFrame frame  )  [virtual]

Write a data frame to the RTP channel.

Implements RTP_Session.

Reimplemented in T38PseudoRTP.

virtual BOOL RTP_UDP::WriteOOBData ( RTP_DataFrame frame  )  [virtual]

Write data frame to the RTP channel outside the normal stream of media Used for RFC2833 packets

Reimplemented from RTP_Session.

virtual BOOL RTP_UDP::WriteControl ( RTP_ControlFrame frame  )  [virtual]

Write a control frame from the RTP channel.

Implements RTP_Session.

virtual void RTP_UDP::Close ( BOOL  reading  )  [virtual]

Close down the RTP session.

Parameters:
reading  Closing the read side of the session

Implements RTP_Session.

virtual PString RTP_UDP::GetLocalHostName (  )  [virtual]

Get the session description name.

Implements RTP_Session.

virtual BOOL RTP_UDP::ModifyQOS ( RTP_QOS rtpqos  )  [virtual]

Change the QoS settings

Reimplemented from RTP_Session.

virtual BOOL RTP_UDP::Open ( PIPSocket::Address  localAddress,
WORD  portBase,
WORD  portMax,
BYTE  ipTypeOfService,
PSTUNClient *  stun = NULL,
RTP_QOS rtpqos = NULL 
) [virtual]

Open the UDP ports for the RTP session.

Parameters:
localAddress  Local interface to bind to
portBase  Base of ports to search
portMax  end of ports to search (inclusive)
ipTypeOfService  Type of Service byte
stun  STUN server to use createing sockets (or NULL if no STUN)
rtpqos  QOS spec (or NULL if no QoS)

virtual void RTP_UDP::Reopen ( BOOL  isReading  )  [virtual]

Reopens an existing session in the given direction.

Implements RTP_Session.

virtual PIPSocket::Address RTP_UDP::GetLocalAddress (  )  const [inline, virtual]

Get local address of session.

virtual void RTP_UDP::SetLocalAddress ( const PIPSocket::Address &  addr  )  [inline, virtual]

Set local address of session.

PIPSocket::Address RTP_UDP::GetRemoteAddress (  )  const [inline]

Get remote address of session.

virtual WORD RTP_UDP::GetLocalDataPort (  )  const [inline, virtual]

Get local data port of session.

virtual WORD RTP_UDP::GetLocalControlPort (  )  const [inline, virtual]

Get local control port of session.

virtual WORD RTP_UDP::GetRemoteDataPort (  )  const [inline, virtual]

Get remote data port of session.

virtual WORD RTP_UDP::GetRemoteControlPort (  )  const [inline, virtual]

Get remote control port of session.

virtual PUDPSocket& RTP_UDP::GetDataSocket (  )  [inline, virtual]

Get data UDP socket of session.

virtual PUDPSocket& RTP_UDP::GetControlSocket (  )  [inline, virtual]

Get control UDP socket of session.

virtual BOOL RTP_UDP::SetRemoteSocketInfo ( PIPSocket::Address  address,
WORD  port,
BOOL  isDataPort 
) [virtual]

Set the remote address and port information for session.

Parameters:
address  Addre ss of remote
port  Port on remote
isDataPort  Flag for data or control channel

Reimplemented in T38PseudoRTP.

virtual void RTP_UDP::ApplyQOS ( const PIPSocket::Address &  addr  )  [virtual]

Apply QOS - requires address to connect the socket on Windows platforms

virtual int RTP_UDP::GetDataSocketHandle (  )  const [inline, virtual]

Reimplemented from RTP_Session.

virtual int RTP_UDP::GetControlSocketHandle (  )  const [inline, virtual]

Reimplemented from RTP_Session.

virtual int RTP_UDP::WaitForPDU ( PUDPSocket &  dataSocket,
PUDPSocket &  controlSocket,
const PTimeInterval &  timer 
) [protected, virtual]

Reimplemented in T38PseudoRTP.

virtual SendReceiveStatus RTP_UDP::ReadDataPDU ( RTP_DataFrame frame  )  [protected, virtual]

Reimplemented in T38PseudoRTP.

virtual SendReceiveStatus RTP_UDP::ReadControlPDU (  )  [protected, virtual]

virtual SendReceiveStatus RTP_UDP::ReadDataOrControlPDU ( PUDPSocket &  socket,
PBYTEArray &  frame,
BOOL  fromDataChannel 
) [protected, virtual]


Member Data Documentation

PIPSocket::Address RTP_UDP::localAddress [protected]

WORD RTP_UDP::localDataPort [protected]

WORD RTP_UDP::localControlPort [protected]

PIPSocket::Address RTP_UDP::remoteAddress [protected]

WORD RTP_UDP::remoteDataPort [protected]

WORD RTP_UDP::remoteControlPort [protected]

PIPSocket::Address RTP_UDP::remoteTransmitAddress [protected]

BOOL RTP_UDP::shutdownRead [protected]

BOOL RTP_UDP::shutdownWrite [protected]

PUDPSocket* RTP_UDP::dataSocket [protected]

PUDPSocket* RTP_UDP::controlSocket [protected]

BOOL RTP_UDP::appliedQOS [protected]

BOOL RTP_UDP::remoteIsNAT [protected]

BOOL RTP_UDP::first [protected]


The documentation for this class was generated from the following file:
Generated on Fri Mar 7 06:34:07 2008 for OPAL by  doxygen 1.5.1