OPAL  Version 3.18.8
OpalUDPMediaTransport Class Reference

#include <mediasession.h>

Inheritance diagram for OpalUDPMediaTransport:
Collaboration diagram for OpalUDPMediaTransport:

Public Member Functions

 OpalUDPMediaTransport (const PString &name)
 
virtual bool Open (OpalMediaSession &session, PINDEX count, const PString &localInterface, const OpalTransportAddress &remoteAddress)
 
virtual bool SetRemoteAddress (const OpalTransportAddress &remoteAddress, SubChannels subchannel=e_Media)
 
virtual bool Write (const void *data, PINDEX length, SubChannels=e_Media, const PIPSocketAddressAndPort *=NULL, int *=NULL)
 
PUDPSocket * GetSubChannelAsSocket (SubChannels subchannel=e_Media) const
 
- Public Member Functions inherited from OpalMediaTransport
 OpalMediaTransport (const PString &name)
 
 ~OpalMediaTransport ()
 
virtual void PrintOn (ostream &strm) const
 
const PString & GetName () const
 Return name of the transport. More...
 
virtual PString GetType ()
 Return the type of the transport. More...
 
virtual bool IsOpen () const
 
virtual void Start ()
 
virtual bool IsEstablished () const
 
virtual OpalTransportAddress GetLocalAddress (SubChannels subchannel=e_Media) const
 
virtual OpalTransportAddress GetRemoteAddress (SubChannels subchannel=e_Media) const
 
virtual void SetCandidates (const PString &user, const PString &pass, const PNatCandidateList &candidates)
 
virtual bool GetCandidates (PString &user, PString &pass, PNatCandidateList &candidates, bool offering)
 
void AddReadNotifier (const ReadNotifier &notifier, SubChannels subchannel=e_Media)
 
void RemoveReadNotifier (const ReadNotifier &notifier, SubChannels subchannel=e_Media)
 Remove the read notifier. More...
 
void RemoveReadNotifier (PObject *target, SubChannels subchannel=e_Media)
 
PChannel * GetChannel (SubChannels subchannel=e_Media) const
 
void SetDiscoverMTU (int mode)
 
void SetMediaTimeout (const PTimeInterval &t)
 
void SetRemoteBehindNAT ()
 
CongestionControlSetCongestionControl (CongestionControl *cc)
 
CongestionControlGetCongestionControl () const
 
virtual void GetStatistics (OpalMediaStatistics &statistics) const
 

Protected Member Functions

virtual void InternalRxData (SubChannels subchannel, const PBYTEArray &data)
 
virtual bool InternalSetRemoteAddress (const PIPSocket::AddressAndPort &ap, SubChannels subchannel, RemoteAddressSources source)
 
virtual bool InternalOpenPinHole (PUDPSocket &socket)
 
- Protected Member Functions inherited from OpalMediaTransport
virtual void InternalClose ()
 
virtual bool GarbageCollection ()
 
virtual PTimeInterval GetTimeout () const
 
 PDECLARE_NOTIFIER (PTimer, OpalMediaTransport, ProcessCongestionControl)
 
void AddChannel (PChannel *channel)
 
virtual PChannel * AddWrapperChannels (SubChannels subchannel, PChannel *channel)
 

Protected Attributes

bool m_localHasRestrictedNAT
 
vector< PUDPSocket * > m_socketCache
 
- Protected Attributes inherited from OpalMediaTransport
PString m_name
 
bool m_remoteBehindNAT
 
PINDEX m_packetSize
 
int m_mtuDiscoverMode
 
PTimeInterval m_mediaTimeout
 
PSimpleTimer m_mediaTimer
 
PTimeInterval m_maxNoTransmitTime
 
atomic< bool > m_opened
 
atomic< bool > m_established
 
atomic< bool > m_started
 
atomic< CongestionControl * > m_congestionControl
 
PTimer m_ccTimer
 
ChannelArray m_subchannels
 

Additional Inherited Members

- Public Types inherited from OpalMediaTransport
typedef PNotifierTemplate
< PBYTEArray > 
ReadNotifier
 
- Public Types inherited from OpalMediaTransportChannelTypes
enum  SubChannels {
  e_AllSubChannels = -1, e_Media, e_Data = e_Media, e_Control,
  eSubChannelA, eSubChannelB, eSubChannelC, eSubChannelD,
  eMaxSubChannels
}
 
- Protected Types inherited from OpalMediaTransport
enum  RemoteAddressSources {
  e_RemoteAddressUnknown, e_RemoteAddressFromSignalling, e_RemoteAddressFromFirstPacket, e_RemoteAddressFromProvisionalPair,
  e_RemoteAddressFromICE
}
 
typedef vector< ChannelInfoChannelArray
 

Detailed Description

Class for low level transport of media that uses UDP

Constructor & Destructor Documentation

OpalUDPMediaTransport::OpalUDPMediaTransport ( const PString &  name)

Member Function Documentation

PUDPSocket* OpalUDPMediaTransport::GetSubChannelAsSocket ( SubChannels  subchannel = e_Media) const
virtual bool OpalUDPMediaTransport::InternalOpenPinHole ( PUDPSocket &  socket)
protectedvirtual
virtual void OpalUDPMediaTransport::InternalRxData ( SubChannels  subchannel,
const PBYTEArray &  data 
)
protectedvirtual

Reimplemented from OpalMediaTransport.

virtual bool OpalUDPMediaTransport::InternalSetRemoteAddress ( const PIPSocket::AddressAndPort &  ap,
SubChannels  subchannel,
RemoteAddressSources  source 
)
protectedvirtual
virtual bool OpalUDPMediaTransport::Open ( OpalMediaSession session,
PINDEX  count,
const PString &  localInterface,
const OpalTransportAddress remoteAddress 
)
virtual

Open the media transport.

Implements OpalMediaTransport.

virtual bool OpalUDPMediaTransport::SetRemoteAddress ( const OpalTransportAddress remoteAddress,
SubChannels  subchannel = e_Media 
)
virtual

Set the remote transport address used by this media session. The subchannel can get an optional secondary channel address when false.

Reimplemented from OpalMediaTransport.

virtual bool OpalUDPMediaTransport::Write ( const void *  data,
PINDEX  length,
SubChannels  subchannel = e_Media,
const PIPSocketAddressAndPort *  remote = NULL,
int *  mtu = NULL 
)
virtual

Write to media transport.

Implements OpalMediaTransport.

Field Documentation

bool OpalUDPMediaTransport::m_localHasRestrictedNAT
protected
vector<PUDPSocket *> OpalUDPMediaTransport::m_socketCache
protected

The documentation for this class was generated from the following file: