34 #ifndef OPAL_RTP_RTP_SESSION_H 
   35 #define OPAL_RTP_RTP_SESSION_H 
   46 #include <ptlib/sockets.h> 
   47 #include <ptlib/safecoll.h> 
   48 #include <ptlib/notifier_ext.h> 
   49 #include <ptclib/pnat.h> 
   50 #include <ptclib/url.h> 
   58 class RTCP_XR_Metrics;
 
   69     static const PCaselessString & 
RTP_AVP();
 
   70     static const PCaselessString & 
RTP_AVPF();
 
   88     virtual bool IsOpen() 
const;
 
  145       const PIPSocketAddressAndPort * remote = NULL,  
 
  146       bool rewriteHeader = 
true                        
  159       const PIPSocketAddressAndPort * remote = NULL  
 
  200         void PrintOn(ostream &) 
const;
 
  217         void PrintOn(ostream &) 
const;
 
  228                                   const ReceiverReportArray & reports);
 
  230                                     const ReceiverReportArray & reports);
 
  238         void PrintOn(ostream &) 
const;
 
  247     virtual void OnRxGoodbye(
const PDWORDArray & sources,
 
  248                              const PString & reason);
 
  266     class ExtendedReport : 
public PObject  {
 
  267         PCLASSINFO(ExtendedReport, PObject);
 
  270         void PrintOn(ostream &) 
const;
 
  273         DWORD sourceIdentifier;
 
  278         DWORD roundTripDelay;      
 
  286     PARRAY(ExtendedReportArray, ExtendedReport);
 
  288     virtual void OnRxExtendedReport(
 
  290       const ExtendedReportArray & reports
 
  293     RTCP_XR_Metrics * GetExtendedMetrics()
 const { 
return m_metrics; }
 
  294 #endif // OPAL_RTCP_XR 
  326 #endif // OPAL_RTP_FEC 
  387       const PTimeInterval & interval 
 
  397       const PTimeInterval & interval 
 
  407       const PTimeInterval & interval 
 
  573       unsigned overhead = 0,  
 
  598     #define PDECLARE_RTPFilterNotifier(cls, fn) PDECLARE_NOTIFIER2(RTP_DataFrame, cls, fn, OpalRTPSession::SendReceiveStatus &) 
  599     #define PCREATE_RTPFilterNotifier(fn) PCREATE_NOTIFIER2(fn, OpalRTPSession::SendReceiveStatus &) 
  605     bool SetQoS(
const PIPSocket::QoS & qos);
 
  623       const BYTE * framePtr,
 
  626       const PIPSocketAddressAndPort * remote = NULL
 
  704     RTCP_XR_Metrics * m_metrics;
 
  705     friend class RTCP_XR_Metrics;
 
  761     PSTUNServer * m_stunServer;
 
  765     unsigned m_levelTxRR;
 
  766     unsigned m_levelRxSR;
 
  767     unsigned m_levelRxRR;
 
  768     unsigned m_levelRxSDES;
 
  775     P_REMOVE_VIRTUAL(
int,WaitForPDU(PUDPSocket&,PUDPSocket&,
const PTimeInterval&),0);
 
  777     P_REMOVE_VIRTUAL(
bool,WriteDataOrControlPDU(
const BYTE *,PINDEX,
bool),
false);
 
  785 #endif // OPAL_RTP_RTP_H