sipxmedialib
Version 3.3
|
#include <RTCPSession.h>
Public Member Functions | |
CRTCPSession (unsigned long ulSSRC, IRTCPNotify *piRTCPNotify, ISDESReport *piSDESReport) | |
~CRTCPSession (void) | |
IRTCPConnection * | CreateRTCPConnection (void) |
bool | TerminateRTCPConnection (IRTCPConnection *piRTCPConnection) |
void | TerminateAllConnections (void) |
void | ReassignSSRC (unsigned long ulSSRC, unsigned char *puchReason=NULL) |
void | ForwardSDESReport (IGetSrcDescription *piGetSrcDescription, IRTCPConnection *piRTCPConnection) |
void | ForwardByeReport (IGetByeInfo *piGetByeInfo, IRTCPConnection *piRTCPConnection) |
void | CheckLocalSSRCCollisions (void) |
void | CheckRemoteSSRCCollisions (IRTCPConnection *piRTCPConnection) |
void | SetMixerMode (MIXER_MODE_ET etMixerMode) |
MIXER_MODE_ET | GetMixerMode (void) |
unsigned long | GetSessionID (void) |
ssrc_t | GetSSRC (int, int, int) |
unsigned long | GetEventInterest (void) |
IRTCPConnection * | GetFirstConnection (void) |
IRTCPConnection * | GetNextConnection (void) |
IRTCPConnection * | CheckConnection (IRTCPConnection *) |
void | NewSDES (IGetSrcDescription *piGetSrcDescription, IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession=NULL) |
void | UpdatedSDES (IGetSrcDescription *piGetSrcDescription, unsigned long ulChangeMask, IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession=NULL) |
void | SenderReportReceived (IGetSenderStatistics *piGetSenderStatistics, IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession=NULL) |
void | ReceiverReportReceived (IGetReceiverStatistics *piGetReceiverStatistics, IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession=NULL) |
void | ByeReportReceived (IGetByeInfo *piGetByeInfo, IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession=NULL) |
void | SDESReportSent (IGetSrcDescription *piGetSrcDescription, IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession=NULL) |
void | SenderReportSent (IGetSenderStatistics *piGetSenderStatistics, IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession=NULL) |
void | ReceiverReportSent (IGetReceiverStatistics *piGetReceiverStatistics, IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession=NULL) |
void | ByeReportSent (IGetByeInfo *piGetByeInfo, IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession=NULL) |
void | RTCPReportingAlarm (IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession=NULL) |
void | RTCPConnectionStopped (IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession=NULL) |
Public Member Functions inherited from CBaseClass | |
CBaseClass | CBASECLASS_PROTO_ARGS ((const char *pDerivedType="Unknown", int callLineNum=0)) |
virtual | ~CBaseClass (void) |
virtual bool | Initialize (void) |
bool | IsInitialized (void) |
void | setAutomatic (bool) |
virtual unsigned long AddRef | ADD_RELEASE_PROTO_ARGS ((int callLineNum)) |
virtual unsigned long Release | ADD_RELEASE_PROTO_ARGS ((int callLineNum)) |
Public Member Functions inherited from CTLinkedList< CRTCPConnection * > | |
CTLinkedList (void) | |
virtual | ~CTLinkedList (void) |
virtual unsigned long | GetCount (void) |
virtual void | TakeLock (void) |
virtual void | ReleaseLock (void) |
virtual bool | AddEntry (CRTCPConnection *tEntry) |
virtual CRTCPConnection * | GetFirstEntry (void) |
virtual CRTCPConnection * | GetNextEntry (void) |
virtual CRTCPConnection * | RemoveFirstEntry (void) |
virtual CRTCPConnection * | RemoveNextEntry (void) |
virtual CRTCPConnection * | GetEntry (CRTCPConnection *tEntry) |
virtual CRTCPConnection * | GetEntry (bool(*Comparitor)(CRTCPConnection *, void *), void *) |
virtual CRTCPConnection * | RemoveEntry (CRTCPConnection *tEntry) |
virtual CRTCPConnection * | RemoveEntry (bool(*Comparitor)(CRTCPConnection *, void *), void *) |
virtual void | RemoveAllEntries (bool(*Comparitor)(CRTCPConnection *, void *), void *) |
Private Member Functions | |
void | ResetAllConnections (unsigned char *puchReason) |
Private Attributes | |
ssrc_t | m_ulSSRC |
unsigned long | m_ulSessionID |
unsigned long | m_ulEventInterest |
MIXER_MODE_ET | m_etMixerMode |
IRTCPNotify * | m_piRTCPNotify |
ISDESReport * | m_piSDESReport |
Additional Inherited Members | |
Static Public Member Functions inherited from CBaseClass | |
static bool | AllowDeletes (void) |
static void | s_SetAllowDeletes (int v) |
Public Attributes inherited from CBaseClass | |
bool | m_bInitialized |
bool | m_bAutomatic |
int | m_ulReferences |
Static Public Attributes inherited from CBaseClass | |
static bool | s_bAllowDeletes = true |
Class Name: CRTCPSession
Inheritance: CBaseClass - Base Class Implementation
Interfaces: IRTCPSession - RTCP Session Control Interface
Description: The CRTCPSession Class shall create, manage, and terminate instances of RTCP Connection objects used to monitor and report upon a corresponding number of RTP Connections composing an RTP Session.
Notes: CRTCPSession is derived from CBaseClass which provides basic Initialization and reference counting support.
CRTCPSession | ( | unsigned long | ulSSRC, |
IRTCPNotify * | piRTCPNotify, | ||
ISDESReport * | piSDESReport | ||
) |
Method Name: CRTCPSession() - Constructor
Inputs: unsigned long ulSSRC - SSRC ID of the RTCP Session IRTCPNotify *piRTCPNotify - RTCP Event Notification Interface ISDESReport *piSDESReport
Outputs: None
Returns: None
Description: Performs routine assignment of constructor arguments to internal attributes.
Usage Notes:
~CRTCPSession | ( | void | ) |
Method Name: ~CRTCPSession() - Destructor
Inputs: None
Outputs: None
Returns: None
Description: Shall deallocated and/or release all resources which was acquired over the course of runtime. In particular, the following shall occur: ==> The list containing RTCP Connections objects shall be drained with the reference to each object released.
Usage Notes:
IRTCPConnection* CreateRTCPConnection | ( | void | ) |
Method Name: CreateRTCPConnection()
Inputs: None
Outputs: None
Returns: bool
Description: Creates an RTCP Connection used to monitor and report upon the identify and performance of an RTP Connection.
Usage Notes:
bool TerminateRTCPConnection | ( | IRTCPConnection * | piRTCPConnection | ) |
Method Name: TerminateRTCPConnection()
Inputs: IRTCPConnection *piRTCPConnection
Outputs: None
Returns: bool
Description: Terminates an RTCP Connection previously used to monitor and report upon the identify and performance of an RTP Connection.
Usage Notes:
void TerminateAllConnections | ( | void | ) |
Method Name: TerminateAllConnections
Inputs: None
Outputs: None
Returns: bool
Description: The TerminateAllConnections() method shall manage the termination of all RTCP connections. This shall include the graceful release of all associated objects as well as the deallocation of all resources associated with each contained RTCP connection.
Usage Notes:
void ReassignSSRC | ( | unsigned long | ulSSRC, |
unsigned char * | puchReason = NULL |
||
) |
Method Name: ReassignSSRC
Inputs: unsigned long ulSSRC - Source ID
Outputs: None
Returns: void
Description: Reassigns the Source Identifier associated with an RTP session due to collision detection and resolution. Calling of this method shall result in the resetting of the SSRC IDs of associated Sender, Receiver, and SDES Reports.
Usage Notes:
void ForwardSDESReport | ( | IGetSrcDescription * | piGetSrcDescription, |
IRTCPConnection * | piRTCPConnection | ||
) |
Method Name: ForwardSDESReport
Inputs: IGetSrcDescription *piGetSrcDescription
Outputs: None
Returns: None
Description: The ForwardSDESReport() method shall enable the RTC Manager to pass interfaces to SDES Reports received from participating site while acting in the mode of a conference Mixer. The Mixer's role in this situation is to transmit these reports unchanged to others participating within a conference. The handoff of an SDES Report to the CRTCPRender will cause the report to be transmitted to a participating site using the associated Network Render object.
Usage Notes: The interface for the local site's Source Description Report generator is passed as an argument at construction time.
void ForwardByeReport | ( | IGetByeInfo * | piGetByeInfo, |
IRTCPConnection * | piRTCPConnection | ||
) |
Method Name: ForwardByeReport
Inputs: IGetByeInfo *piGetByeInfo
Outputs: None
Returns: None
Description: The ForwardByeReport() method shall enable the RTC Manager to pass interfaces to Bye Reports received from participating site while acting in the mode of a conference Mixer. The Mixer's role in this situation is to transmit these reports unchanged to others participating within a conference. The handoff of a Bye Report to the CRTCPRender will cause the report to be transmitted to a participating site using the associated Network Render object.
Usage Notes:
void CheckLocalSSRCCollisions | ( | void | ) |
Method Name: CheckLocalSSRCCollisions
Inputs: None
Outputs: None
Returns: void
Description: Check that our local SSRC is not colliding with one fo the SSRCs of a participating site.
Usage Notes:
void CheckRemoteSSRCCollisions | ( | IRTCPConnection * | piRTCPConnection | ) |
Method Name: CheckRemoteSSRCCollisions
Inputs: IRTCPConnection *piRTCPConnection - Connection Interface
Outputs: None
Returns: void
Description: Check that other remote SSRCs aren't colliding with each other.
Usage Notes:
|
inline |
Method Name: SetMixerMode()
Inputs: MIXER_MODE_ET etMixerMode
Outputs: None
Returns: None
Description: Sets the audio mixer mode for a session.
Usage Notes:
|
inline |
Method Name: GetMixerMode()
Inputs: None
Outputs: None
Returns: MIXER_MODE_ET - The audio mixer mode supported by the session
Description: Retrieves the audio mixer mode supported by the session.
Usage Notes:
|
inline |
Method Name: GetSessionID()
Inputs: None
Outputs: None
Returns: unsigned long - The ID for this Sesson
Description: Retrieves the Session ID associated with a session.
Usage Notes:
ssrc_t GetSSRC | ( | int | , |
int | , | ||
int | |||
) |
Method Name: GetSSRC()
Inputs: integer triple, identifying the stream
Outputs: None
Returns: ssrc_t - Local SSRC associated with the session
Description: Retrieves the SSRC associated with a session.
Usage Notes:
|
inline |
Method Name: GetEventInterest()
Inputs: None
Outputs: None
Returns: unsigned long - Mask of Event Interests
Description: The GetEventInterest() event method shall allow the dispatcher of notifications to access the event interests of a subscriber and use these wishes to dispatch RTCP event notifications
Usage Notes:
IRTCPConnection* GetFirstConnection | ( | void | ) |
Method Name: GetFirstConnection
Inputs: None
Outputs: None
Returns: IRTCPSession *
Description: The GetFirstConnection shall retrieve the first instantiation of an RTCP Session interface on the RTC Manager's collection list.
Usage Notes:
IRTCPConnection* GetNextConnection | ( | void | ) |
Method Name: GetNextConnection
Inputs: None
Outputs: None
Returns: IRTCPSession *
Description: The GetNextConnection shall retrieve the next instantiation of an RTCP Conection interface on an RTCP Session's collection list.
Usage Notes:
|
inline |
Method Name: CheckConnection
Inputs: None
Outputs: None
Returns: IRTCPConnection *
Description: The CheckConnection shall check an instance of an RTCP Connection interface on the RTCP Session's collection list.
Usage Notes:
void NewSDES | ( | IGetSrcDescription * | piGetSrcDescription, |
IRTCPConnection * | piRTCPConnection, | ||
IRTCPSession * | piRTCPSession = NULL |
||
) |
Method Name: NewSDES()
Inputs: IGetSrcDescription *piGetSrcDescription
Outputs: None
Returns: None
Description: The NewSDES() event method shall inform the RTC Manager of a new Source Description and shall include the IGetSrcDescription interface for accessing the contents of this new Source Description. The RTCP Session shall react by adding this new SDES interface to the Source DescriptionList of associated CRTCPRenders so that the new SDES information may be forwarded to other call participants (i.e. Mixer scenario).
Usage Notes:
void UpdatedSDES | ( | IGetSrcDescription * | piGetSrcDescription, |
unsigned long | ulChangeMask, | ||
IRTCPConnection * | piRTCPConnection, | ||
IRTCPSession * | piRTCPSession = NULL |
||
) |
Method Name: UpdatedSDES()
Inputs: IGetSrcDescription *piGetSrcDescription
Outputs: None
Returns: None
Description: The UpdatedSDES() event method shall inform the RTCP Session of a change in Source Description and shall include the IGetSrcDescription interface for accessing the contents of this updated Source Description.
Usage Notes:
void SenderReportReceived | ( | IGetSenderStatistics * | piGetSenderStatistics, |
IRTCPConnection * | piRTCPConnection, | ||
IRTCPSession * | piRTCPSession = NULL |
||
) |
Method Name: SenderReportReceived()
Inputs: IGetSenderStatistics *piGetSenderStatistics
Outputs: None
Returns: None
Description: The SenderReportReceived() event method shall inform the recipient of a change in Sender Statistics and shall include the IGetSenderStatistics interface for accessing the contents of this updated Sender Report.
Usage Notes:
void ReceiverReportReceived | ( | IGetReceiverStatistics * | piGetReceiverStatistics, |
IRTCPConnection * | piRTCPConnection, | ||
IRTCPSession * | piRTCPSession = NULL |
||
) |
Method Name: ReceiverReportReceived()
Inputs: IGetReceiverStatistics *piGetReceiverStatistics
Outputs: None
Returns: None
Description: The ReceiverReportReceived() event method shall inform the recipient of a change in Receiver Statistics and shall include the IGetReceiverStatistics interface for accessing the contents of this updated Receiver Report.
Usage Notes:
void ByeReportReceived | ( | IGetByeInfo * | piGetByeInfo, |
IRTCPConnection * | piRTCPConnection, | ||
IRTCPSession * | piRTCPSession = NULL |
||
) |
Method Name: ByeReportReceived()
Inputs: IGetByeInfo *piGetByeInfo
Outputs: None
Returns: None
Description: The ByeReportReceived() event method shall inform the recipient of the discontinuation of an SSRC. This may result from an SSRC collision or the termination of an associated RTP connection. The RTCP Session shall react by forwarding this Bye Report to other connections within the session whne in a audio conference call (i.e. Mixer scenario).
Usage Notes:
void SDESReportSent | ( | IGetSrcDescription * | piGetSrcDescription, |
IRTCPConnection * | piRTCPConnection, | ||
IRTCPSession * | piRTCPSession = NULL |
||
) |
Method Name: SDESReportSent()
Inputs: IGetSrcDescription *piGetSrcDescription
Outputs: None
Returns: None
Description: The SDESReportSent() event method shall inform the recipient of a newly transmitted SDES Report and shall include the IGetSrcDescription interface for accessing the contents of this transmitted SDES Report.
Usage Notes:
void SenderReportSent | ( | IGetSenderStatistics * | piGetSenderStatistics, |
IRTCPConnection * | piRTCPConnection, | ||
IRTCPSession * | piRTCPSession = NULL |
||
) |
Method Name: SenderReportSent()
Inputs: IGetSenderStatistics *piGetSenderStatistics
Outputs: None
Returns: None
Description: The SenderReportSent() event method shall inform the recipient of a newly transmitted Sender Report and shall include the IGetSenderStatistics interface for accessing the contents of this transmitted Sender Report.
Usage Notes:
void ReceiverReportSent | ( | IGetReceiverStatistics * | piGetReceiverStatistics, |
IRTCPConnection * | piRTCPConnection, | ||
IRTCPSession * | piRTCPSession = NULL |
||
) |
Method Name: ReceiverReportSent()
Inputs: IGetReceiverStatistics *piGetReceiverStatistics
Outputs: None
Returns: None
Description: The ReceiverReportSent() event method shall inform the recipient of a newly transmitted Receiver Report and shall include the IGetReceiverStatistics interface for accessing the contents of this transmitted Receiver Report.
Usage Notes:
void ByeReportSent | ( | IGetByeInfo * | piGetByeInfo, |
IRTCPConnection * | piRTCPConnection, | ||
IRTCPSession * | piRTCPSession = NULL |
||
) |
Method Name: ByeReportSent()
Inputs: IGetByeInfo *piGetByeInfo
Outputs: None
Returns: None
Description: The ByeReportSent() event method shall inform the recipient of a newly transmitted BYE Report and shall include the SSRC ID and reason to identify the connection and the cause of termination.
Usage Notes:
void RTCPReportingAlarm | ( | IRTCPConnection * | piRTCPConnection, |
IRTCPSession * | piRTCPSession = NULL |
||
) |
Method Name: RTCPReportingAlarm
Inputs: IRTCPConnection *piRTCPConnection
Outputs: None
Returns: None
Description: The RTCPReportingAlarm() event method shall inform the recipient of the expiration of the RTCP Reporting Timer. This signals the generation of the next round of RTCP Reports.
Usage Notes:
void RTCPConnectionStopped | ( | IRTCPConnection * | piRTCPConnection, |
IRTCPSession * | piRTCPSession = NULL |
||
) |
Method Name: RTCPConnectionStopped()
Inputs: IRTCPConnection *piRTCPConnection
Outputs: None
Returns: None
Description: The RTCPConnectionStopped() event method shall inform the recipient of the imminent suspension of an RTCP outbound connection. This will allow whatever connection related operations to be suspended until it again resumes.
Usage Notes:
|
private |
Macro Name: DECLARE_IBASE_M
Inputs: None
Outputs: None
Returns: None
Description: This implements the IBaseClass functions used and exposed by derived classes.
Usage Notes:
Method Name: ResetAllConnections
Inputs: unsigned char *puchReason - Reason for Termination
Outputs: None
Returns: void
Description: The ResetAllConnections() method shall manage the termination of all RTCP connections. This shall include the graceful release of all associated objects as well as the deallocation of all resources associated with each contained RTCP connection.
Usage Notes:
|
private |
Attribute Name: m_ulSSRC
Type: unsigned long
Description: This member shall store the SSRC associated with this session
|
private |
Attribute Name: m_ulSessionID
Type: unsigned long
Description: This member shall store a reference to the session number. This is only for identification purposes from debug tracking
|
private |
Attribute Name: m_ulEventInterest
Type: unsigned long
Description: This member shall store the events of interest for this Session object.
|
private |
Attribute Name: m_etMixerMode
Type: MIXER_MODE_ET
Description: This member shall store the mixer mode of this Session object.
|
private |
Attribute Name: m_piRTCPNotify
Type: IRTCPNotify *
Description: This member shall contain the interface for delivering notification to a registered consumer.
|
private |
Attribute Name: m_piSDESReport
Type: ISDESReport *
Description: This member shall cache the control interface for the Source Description report that identifies the local site.