Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages   Examples  

QueueRTCPManager Class Reference

Extends the RTP queue with the management of RTCP functions: Management of RTCP functions. More...

#include <cc++/rtp.h>

Inheritance diagram for QueueRTCPManager::

RTPQueue Thread MembershipControl Members List of all members.

Public Methods

virtual void setControlBandwidth (float fraction)
 Specify the bandwith available for control (RTCP) packets. More...

virtual void setSendersControlFraction (float fraction)
 Specify the fraction of the total control bandwith to be dedicated to senders reports. More...

uint32 RTCPSendCount () const
 Get the total number of RTCP packets sent until now. More...

void setNAME (const char *const name)
 Minimal control information about the local participant. More...

void setEMAIL (const char *const email)
void setPHONE (const char *const phone)
void setLOC (const char *const loc)
void setTOOL (const char *const tool)
void setNOTE (const char *const note)
void setPRIV (const char *const priv)
void setH323_CADDR (const char *const h323ca)

Protected Methods

 QueueRTCPManager (int pri)
virtual ~QueueRTCPManager ()
void endQueueRTCPManager ()
void RTCPService (microtimeout_t &wait)
 A scheduler of RTCP packets. More...

void Bye (const char *const reason=NULL)
 Try to post a BYE message. More...

void gotHello (const char *sdes)
 A plugin point for hello message. More...

void gotGoodbye (void)
 A plugin point for goodbye message. More...

void handleSSRCCollision ()
virtual timeval computeRTCPInterval ()
 Computes the interval for sending RTCP compound packets, based on the average size of RTCP packets sent and received, and the current estimated number of participants in the session. More...


Detailed Description

Extends the RTP queue with the management of RTCP functions: Management of RTCP functions.

Author:
Federico Montesino <p5087@quintero.fie.us.es>


Constructor & Destructor Documentation

QueueRTCPManager::QueueRTCPManager int   pri [protected]
 

virtual QueueRTCPManager::~QueueRTCPManager   [protected, virtual]
 


Member Function Documentation

void QueueRTCPManager::Bye const char *const   reason = NULL [protected, virtual]
 

Try to post a BYE message.

It will send a BYE packet as long as at least one RTP or RTCP packet has been sent before. If the number of members in the session is more than 50, the algorithm described in section 6.3.7 of RFC ???? is applied in order to avoid a flood of BYE messages.

Reimplemented from RTPQueue.

uint32 QueueRTCPManager::RTCPSendCount   const [inline]
 

Get the total number of RTCP packets sent until now.

Parameters:
total   number of RTCP packets sent

void QueueRTCPManager::RTCPService microtimeout_t &   wait [protected, virtual]
 

A scheduler of RTCP packets.

Parameters:
wait   queue scheduling timeout

Reimplemented from RTPQueue.

virtual timeval QueueRTCPManager::computeRTCPInterval   [protected, virtual]
 

Computes the interval for sending RTCP compound packets, based on the average size of RTCP packets sent and received, and the current estimated number of participants in the session.

Note:
This currently follows the rules in section 6 of draft-ietf-avt-rtp-new-10

Todo:
make it more flexible as recommended in the draft

Returns:
interval for sending RTCP compound packets

void QueueRTCPManager::endQueueRTCPManager   [protected]
 

void QueueRTCPManager::gotGoodbye void   [inline, protected]
 

A plugin point for goodbye message.

void QueueRTCPManager::gotHello const char *   sdes [inline, protected]
 

A plugin point for hello message.

void QueueRTCPManager::handleSSRCCollision   [protected]
 

virtual void QueueRTCPManager::setControlBandwidth float   fraction [inline, virtual]
 

Specify the bandwith available for control (RTCP) packets.

Parameters:
bw   fraction of the session bandwidth, between 0 and 1
This method sets the global control bandwidth for both sender and receiver reports. As recommended in (RFC XXXX - RTP is currently in transition from Proposed to Draft Standard), 1/4 of the total control bandwidth is dedicated to senders, whereas 3/4 are dedicated to receivers.

Note:
If this method is not called, it is assumed that the control bandwidth is equal to 5% of the session bandwidth.
See also:
setSessionBandwidth , setSendersControlFraction

void QueueRTCPManager::setEMAIL const char *const   email [inline]
 

void QueueRTCPManager::setH323_CADDR const char *const   h323ca [inline]
 

void QueueRTCPManager::setLOC const char *const   loc [inline]
 

void QueueRTCPManager::setNAME const char *const   name [inline]
 

Minimal control information about the local participant.

void QueueRTCPManager::setNOTE const char *const   note [inline]
 

void QueueRTCPManager::setPHONE const char *const   phone [inline]
 

void QueueRTCPManager::setPRIV const char *const   priv [inline]
 

virtual void QueueRTCPManager::setSendersControlFraction float   fraction [inline, virtual]
 

Specify the fraction of the total control bandwith to be dedicated to senders reports.

Parameters:
fraction   fraction of bandwidth, must be between 0 an 1.
This method sets the fraction of the global control bandwidth that will be dedicated to senders reports. Of course, 1 - fraction will be dedicated to receivers reports.

See also:
setControlBandwidth

void QueueRTCPManager::setTOOL const char *const   tool [inline]
 


The documentation for this class was generated from the following file:
Generated at Sat Nov 3 09:44:13 2001 for ccRTP by doxygen1.2.10 written by Dimitri van Heesch, © 1997-2001