rtpep.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef OPAL_OPAL_RTPEP_H
00030 #define OPAL_OPAL_RTPEP_H
00031
00032 #ifdef P_USE_PRAGMA
00033 #pragma interface
00034 #endif
00035
00036 #include <opal/buildopts.h>
00037
00038 #include <opal/endpoint.h>
00039
00040
00044 class OpalRTPEndPoint : public OpalEndPoint
00045 {
00046 PCLASSINFO(OpalRTPEndPoint, OpalEndPoint);
00047
00052 OpalRTPEndPoint(
00053 OpalManager & manager,
00054 const PCaselessString & prefix,
00055 unsigned attributes
00056 );
00057
00060 ~OpalRTPEndPoint();
00062
00074 virtual OpalMediaFormatList GetMediaFormats() const;
00075
00081 virtual void OnClosedMediaStream(
00082 const OpalMediaStream & stream
00083 );
00085
00105 virtual PBoolean IsRTPNATEnabled(
00106 OpalConnection & connection,
00107 const PIPSocket::Address & localAddr,
00108 const PIPSocket::Address & peerAddr,
00109 const PIPSocket::Address & signalAddr,
00110 PBoolean incoming
00111 );
00112
00113 #ifdef OPAL_ZRTP
00114 virtual bool GetZRTPEnabled() const;
00115 #endif
00116
00129 virtual bool OnLocalRTP(
00130 OpalConnection & connection1,
00131 OpalConnection & connection2,
00132 unsigned sessionID,
00133 bool opened
00134 ) const;
00135
00136
00137 bool CheckForLocalRTP(const OpalRTPMediaStream & stream);
00138
00139
00140 void CheckEndLocalRTP(OpalConnection & connection, RTP_UDP * rtp);
00142
00143 protected:
00144 #ifdef OPAL_ZRTP
00145 bool zrtpEnabled;
00146 #endif
00147
00148 struct LocalRtpInfo {
00149 LocalRtpInfo(OpalConnection & connection) : m_connection(connection), m_previousResult(-1) { }
00150
00151 OpalConnection & m_connection;
00152 int m_previousResult;
00153 };
00154 typedef std::map<WORD, LocalRtpInfo> LocalRtpInfoMap;
00155 LocalRtpInfoMap m_connectionsByRtpLocalPort;
00156 };
00157
00158
00159 #endif // OPAL_OPAL_RTPEP_H