sipxmedialib  Version 3.3
RTCManager.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2004-2006 SIPfoundry Inc.
3 // Licensed by SIPfoundry under the LGPL license.
4 //
5 // Copyright (C) 2004-2006 Pingtel Corp. All rights reserved.
6 // Licensed to SIPfoundry under a Contributor Agreement.
7 //
8 // $$
10 
11 
12 // Border Guard
13 #ifndef _RTCManager_h
14 #define _RTCManager_h
15 
16 #include "rtcp/RtcpConfig.h"
17 
18 // Includes
19 #include "RTCPSession.h"
20 #include "ByeReport.h"
21 #include "SenderReport.h"
22 #include "ReceiverReport.h"
23 #include "SourceDescription.h"
24 #include "TLinkedList.h"
25 #include "MsgQueue.h"
26 #include "IRTCPRegister.h"
27 #include "IRTCPControl.h"
28 #include "IRTCPNotify.h"
29 
30 
80 class CRTCManager : public CBaseClass,
81  // Inherits CBaseClass implementation
82  public CMsgQueue,
83  // Inherit Messaging Services
84  public IRTCPControl,
85  // Interface exposed for controlling RTCP
86  public IRTCPNotify
87  // Notification Interface for receiving RTCP events
88  {
89 
90 // Public Methods
91 public:
92 
112  CRTCManager(ISDESReport *piSDESReport=NULL);
113 
114 
138  ~CRTCManager(void);
139 
158  bool Initialize(void);
159 
160 
161 
179  static IRTCPControl *getRTCPControl(void);
180 
202  bool Advise(IRTCPNotify *piRTCPNotify);
203 
222  bool Unadvise(IRTCPNotify *piRTCPNotify);
223 
224 
247  IRTCPSession *CreateSession(unsigned long ulSSRC);
248 
272  bool TerminateSession(IRTCPSession *piRTCPSession);
273 
292  unsigned long GetEventInterest(void);
293 
294 
321  void NewSDES(IGetSrcDescription *piGetSrcDescription,
322  IRTCPConnection *piRTCPConnection,
323  IRTCPSession *piRTCPSession);
324 
353  void UpdatedSDES(IGetSrcDescription *piGetSrcDescription,
354  unsigned long ulChangeMask,
355  IRTCPConnection *piRTCPConnection,
356  IRTCPSession *piRTCPSession);
357 
358 
385  void SenderReportReceived(IGetSenderStatistics *piGetSenderStatistics,
386  IRTCPConnection *piRTCPConnection,
387  IRTCPSession *piRTCPSession);
388 
415  void ReceiverReportReceived(IGetReceiverStatistics *piGetReceiverStatistics,
416  IRTCPConnection *piRTCPConnection,
417  IRTCPSession *piRTCPSession);
418 
445  void ByeReportReceived(IGetByeInfo *piGetByeInfo,
446  IRTCPConnection *piRTCPConnection,
447  IRTCPSession *piRTCPSession);
448 
473  void SDESReportSent(IGetSrcDescription *piGetSrcDescription,
474  IRTCPConnection *piRTCPConnection,
475  IRTCPSession *piRTCPSession);
476 
503  void SenderReportSent(IGetSenderStatistics *piGetSenderStatistics,
504  IRTCPConnection *piRTCPConnection,
505  IRTCPSession *piRTCPSession);
506 
507 
534  void ReceiverReportSent(IGetReceiverStatistics *piGetReceiverStatistics,
535  IRTCPConnection *piRTCPConnection,
536  IRTCPSession *piRTCPSession);
537 
538 
565  void ByeReportSent(IGetByeInfo *piGetByeInfo,
566  IRTCPConnection *piRTCPConnection,
567  IRTCPSession *piRTCPSession);
568 
591  void RTCPReportingAlarm(IRTCPConnection *piRTCPConnection,
592  IRTCPSession *piRTCPSession);
593 
594 
616  void LocalSSRCCollision(IRTCPConnection *piRTCPConnection,
617  IRTCPSession *piRTCPSession);
618 
619 
640  void RemoteSSRCCollision(IRTCPConnection *piRTCPConnection,
641  IRTCPSession *piRTCPSession);
642 
664  bool ProcessMessage(CMessage *poMessage);
665 
666 
667 
668 
669 
689 
690 
691 
692 
693 private: // Private Data Members
694 
695 
696 
708 
709 
722 
734 
746  ISDESReport *m_piSDESReport;
747 
758  unsigned long m_ulEventInterest;
759 
760 };
761 
762 
782 inline unsigned long CRTCManager::GetEventInterest(void)
783 {
784 
785  return(m_ulEventInterest);
786 }
787 
788 #endif
void LocalSSRCCollision(IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession)
bool Unadvise(IRTCPNotify *piRTCPNotify)
void ReceiverReportSent(IGetReceiverStatistics *piGetReceiverStatistics, IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession)
void SenderReportSent(IGetSenderStatistics *piGetSenderStatistics, IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession)
bool Advise(IRTCPNotify *piRTCPNotify)
unsigned long m_ulEventInterest
Definition: RTCManager.h:758
unsigned long GetEventInterest(void)
Definition: RTCManager.h:782
Definition: RTCManager.h:80
void NewSDES(IGetSrcDescription *piGetSrcDescription, IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession)
static CRTCManager * m_spoRTCManager
Definition: RTCManager.h:707
Definition: MsgQueue.h:83
bool ProcessMessage(CMessage *poMessage)
void ByeReportSent(IGetByeInfo *piGetByeInfo, IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession)
void ByeReportReceived(IGetByeInfo *piGetByeInfo, IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession)
void UpdatedSDES(IGetSrcDescription *piGetSrcDescription, unsigned long ulChangeMask, IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession)
void RTCPReportingAlarm(IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession)
bool TerminateSession(IRTCPSession *piRTCPSession)
#define DECLARE_IBASE_M
Definition: BaseClass.h:368
void RemoteSSRCCollision(IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession)
void SenderReportReceived(IGetSenderStatistics *piGetSenderStatistics, IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession)
CRTCManager(ISDESReport *piSDESReport=NULL)
Definition: BaseClass.h:118
IRTCPSession * CreateSession(unsigned long ulSSRC)
bool Initialize(void)
static IRTCPControl * getRTCPControl(void)
CTLinkedList< IRTCPNotify * > m_tRegistrationList
Definition: RTCManager.h:721
void ReceiverReportReceived(IGetReceiverStatistics *piGetReceiverStatistics, IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession)
void SDESReportSent(IGetSrcDescription *piGetSrcDescription, IRTCPConnection *piRTCPConnection, IRTCPSession *piRTCPSession)
~CRTCManager(void)
Definition: Message.h:43
interface IGetSenderStatistics IGetReceiverStatistics IGetByeInfo ** piGetByeInfo
Definition: IRTCPStatistics.h:74
CTLinkedList< CRTCPSession * > m_tSessionList
Definition: RTCManager.h:733
ISDESReport * m_piSDESReport
Definition: RTCManager.h:746