OpenH323 1.18.0
Public Member Functions | Protected Member Functions | Protected Attributes
RTP_UDP Class Reference

#include <rtp.h>

Inheritance diagram for RTP_UDP:
RTP_Session

List of all members.

Public Member Functions

void Reopen (BOOL isReading)
Construction
 RTP_UDP (unsigned id, BOOL remoteIsNat=FALSE)
 ~RTP_UDP ()
 Destroy the RTP.
Overrides from class RTP_Session
virtual BOOL ReadData (RTP_DataFrame &frame)
virtual BOOL WriteData (RTP_DataFrame &frame)
virtual BOOL WriteControl (RTP_ControlFrame &frame)
virtual void Close (BOOL reading)
virtual PString GetLocalHostName ()
QoS Settings
virtual BOOL ModifyQOS (RTP_QOS *rtpqos)
virtual void EnableGQoS ()
New functions for class
BOOL Open (PIPSocket::Address localAddress, WORD portBase, WORD portMax, BYTE ipTypeOfService, void *=NULL, RTP_QOS *rtpqos=NULL)
Member variable access
PIPSocket::Address GetLocalAddress () const
void SetLocalAddress (const PIPSocket::Address &addr)
PIPSocket::Address GetRemoteAddress () const
WORD GetLocalDataPort () const
WORD GetLocalControlPort () const
WORD GetRemoteDataPort () const
WORD GetRemoteControlPort () const
PUDPSocket & GetDataSocket ()
PUDPSocket & GetControlSocket ()
BOOL SetRemoteSocketInfo (PIPSocket::Address address, WORD port, BOOL isDataPort)
void ApplyQOS (const PIPSocket::Address &addr)

Protected Member Functions

SendReceiveStatus ReadDataPDU (RTP_DataFrame &frame)
SendReceiveStatus ReadControlPDU ()
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 enableGQOS
BOOL remoteIsNAT

Detailed Description

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


Constructor & Destructor Documentation

RTP_UDP::RTP_UDP ( unsigned  id,
BOOL  remoteIsNat = FALSE 
)

Create a new RTP channel.

Parameters:
idSession ID for RTP channel
remoteIsNatIf TRUE, we have hints the remote endpoint is behind a NAT
RTP_UDP::~RTP_UDP ( )

Destroy the RTP.


Member Function Documentation

void RTP_UDP::ApplyQOS ( const PIPSocket::Address &  addr)

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

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

Close down the RTP session.

Parameters:
readingClosing the read side of the session

Implements RTP_Session.

virtual void RTP_UDP::EnableGQoS ( ) [virtual]

Enable QOS on Call Basis

PUDPSocket& RTP_UDP::GetControlSocket ( ) [inline]

Get control UDP socket of session.

References controlSocket.

PUDPSocket& RTP_UDP::GetDataSocket ( ) [inline]

Get data UDP socket of session.

References dataSocket.

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

Get local address of session.

References localAddress.

WORD RTP_UDP::GetLocalControlPort ( ) const [inline]

Get local control port of session.

References localControlPort.

WORD RTP_UDP::GetLocalDataPort ( ) const [inline]

Get local data port of session.

References localDataPort.

virtual PString RTP_UDP::GetLocalHostName ( ) [virtual]

Get the session description name.

Implements RTP_Session.

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

Get remote address of session.

References remoteAddress.

WORD RTP_UDP::GetRemoteControlPort ( ) const [inline]

Get remote control port of session.

References remoteControlPort.

WORD RTP_UDP::GetRemoteDataPort ( ) const [inline]

Get remote data port of session.

References remoteDataPort.

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

Change the QoS settings

Reimplemented from RTP_Session.

BOOL RTP_UDP::Open ( PIPSocket::Address  localAddress,
WORD  portBase,
WORD  portMax,
BYTE  ipTypeOfService,
void *  = NULL,
RTP_QOS *  rtpqos = NULL 
)

Open the UDP ports for the RTP session.

Parameters:
localAddressLocal interface to bind to
portBaseBase of ports to search
portMaxend of ports to search (inclusive)
ipTypeOfServiceType of Service byte
rtpqosQOS spec (or NULL if no QoS)
SendReceiveStatus RTP_UDP::ReadControlPDU ( ) [protected]
virtual BOOL RTP_UDP::ReadData ( RTP_DataFrame frame) [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.

SendReceiveStatus RTP_UDP::ReadDataOrControlPDU ( PUDPSocket &  socket,
PBYTEArray &  frame,
BOOL  fromDataChannel 
) [protected]
SendReceiveStatus RTP_UDP::ReadDataPDU ( RTP_DataFrame frame) [protected]
void RTP_UDP::Reopen ( BOOL  isReading)

Reopens an existing session in the given direction.

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

Set local address of session.

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

Set the remote address and port information for session.

Parameters:
addressAddress of remote
portPort on remote
isDataPortFlag for data or control channel
virtual BOOL RTP_UDP::WriteControl ( RTP_ControlFrame frame) [virtual]

Write a control frame from the RTP channel.

Implements RTP_Session.

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

Write a data frame from the RTP channel.

Implements RTP_Session.


Member Data Documentation

BOOL RTP_UDP::appliedQOS [protected]
PUDPSocket* RTP_UDP::controlSocket [protected]

Referenced by GetControlSocket().

PUDPSocket* RTP_UDP::dataSocket [protected]

Referenced by GetDataSocket().

BOOL RTP_UDP::enableGQOS [protected]
PIPSocket::Address RTP_UDP::localAddress [protected]

Referenced by GetLocalAddress().

WORD RTP_UDP::localControlPort [protected]

Referenced by GetLocalControlPort().

WORD RTP_UDP::localDataPort [protected]

Referenced by GetLocalDataPort().

PIPSocket::Address RTP_UDP::remoteAddress [protected]

Referenced by GetRemoteAddress().

WORD RTP_UDP::remoteControlPort [protected]

Referenced by GetRemoteControlPort().

WORD RTP_UDP::remoteDataPort [protected]

Referenced by GetRemoteDataPort().

BOOL RTP_UDP::remoteIsNAT [protected]
PIPSocket::Address RTP_UDP::remoteTransmitAddress [protected]
BOOL RTP_UDP::shutdownRead [protected]
BOOL RTP_UDP::shutdownWrite [protected]

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