OPAL Version 3.10.4

- Main Page
- Related Pages
- Namespaces
- Data Structures
- Files

- Data Structures
- Class Hierarchy
- Data Fields

Data Structures | Public Member Functions | Protected Member Functions | Protected Attributes
OpalRTPConnection Class Reference

`#include <rtpconn.h>`

Inheritance diagram for OpalRTPConnection:

## Data Structures

struct | MediaInformation

## Public Member Functions

virtual void | AttachRFC2833HandlerToPatch (PBoolean isSource, OpalMediaPatch &patch)
virtual PBoolean | SendUserInputTone (char tone, unsigned duration=0)
virtual void | SessionFailing (RTP_Session &session)
Construction
| OpalRTPConnection (OpalCall &call, OpalRTPEndPoint &endpoint, const PString &token, unsigned options=0, OpalConnection::StringOptions *stringOptions=NULL)
| ~OpalRTPConnection ()
virtual void | OnReleased ()
RTP Session Management
virtual unsigned | GetNextSessionID (const OpalMediaType &mediaType, bool isSource)
virtual RTP_Session * | GetSession (unsigned sessionID) const
virtual OpalMediaSession * | GetMediaSession (unsigned sessionID) const
virtual RTP_Session * | UseSession (const OpalTransport &transport, unsigned sessionID, const OpalMediaType &mediatype, RTP_QOS *rtpqos=NULL)
virtual void | CloseSession (unsigned sessionID)
virtual RTP_Session * | CreateSession (const OpalTransport &transport, unsigned sessionID, const OpalMediaType &mediaType, RTP_QOS *rtpqos)
virtual RTP_UDP * | CreateRTPSession (unsigned sessionId, const OpalMediaType &mediaType, bool remoteIsNat)
virtual bool | ChangeSessionID (unsigned fromSessionID, unsigned toSessionID)
NAT Management
virtual PBoolean | RemoteIsNAT () const
virtual PBoolean | IsRTPNATEnabled (const PIPSocket::Address &localAddr, const PIPSocket::Address &peerAddr, const PIPSocket::Address &signalAddr, PBoolean incoming)
Overrides from OpalConnection
virtual PBoolean | GetMediaInformation (unsigned sessionID, MediaInformation &info) const
virtual PBoolean | IsMediaBypassPossible (unsigned sessionID) const
virtual OpalMediaStream * | CreateMediaStream (const OpalMediaFormat &mediaFormat, unsigned sessionID, PBoolean isSource)
virtual void | AdjustMediaFormats (bool local, const OpalConnection *otherConnection, OpalMediaFormatList &mediaFormats) const
virtual void | OnPatchMediaStream (PBoolean isSource, OpalMediaPatch &patch)
virtual bool | OnMediaCommand (OpalMediaStream &stream, const OpalMediaCommand &command)
Public Member Functions inherited from OpalConnection
virtual bool | GarbageCollection ()
const StringOptions & | GetStringOptions () const
| Get the string options associated with this connection.
void | SetStringOptions (const StringOptions &options, bool overwrite)
| Set the string options associated with this connection.
virtual void | OnApplyStringOptions ()
| Call back for connection to act on changed string options.
virtual void | EnableRecording ()
virtual void | DisableRecording ()
| OpalConnection (OpalCall &call, OpalEndPoint &endpoint, const PString &token, unsigned options=0, OpalConnection::StringOptions *stringOptions=NULL)
| ~OpalConnection ()
void | PrintOn (ostream &strm) const
virtual PBoolean | OnIncomingConnection (unsigned int options, OpalConnection::StringOptions *stringOptions)
virtual PBoolean | SetUpConnection ()=0
virtual PBoolean | OnSetUpConnection ()
virtual void | OnProceeding ()
virtual void | OnAlerting ()
virtual PBoolean | SetAlerting (const PString &calleeName, PBoolean withMedia)=0
virtual AnswerCallResponse | OnAnswerCall (const PString &callerName)
virtual void | AnsweringCall (AnswerCallResponse response)
virtual void | OnConnected ()
virtual PBoolean | SetConnected ()
virtual void | OnEstablished ()
virtual bool | OnTransferNotify (const PStringToString &info, const OpalConnection *transferringConnection)
virtual void | Release (CallEndReason reason=EndedByLocalUser)
virtual PString | GetDestinationAddress ()
virtual PBoolean | ForwardCall (const PString &forwardParty)
PSafePtr< OpalConnection > | GetOtherPartyConnection () const
template<class cls >
PSafePtr< cls > | GetOtherPartyConnectionAs () const
virtual OpalMediaFormatList | GetMediaFormats () const
virtual OpalMediaFormatList | GetLocalMediaFormats ()
virtual OpalMediaType::AutoStartMode | GetAutoStart (const OpalMediaType &mediaType) const
virtual void | AutoStartMediaStreams (bool force=false)
virtual bool | SwitchFaxMediaStreams (bool enableFax)
virtual void | OnSwitchedFaxMediaStreams (bool enabledFax)
virtual OpalMediaStreamPtr | OpenMediaStream (const OpalMediaFormat &mediaFormat, unsigned sessionID, bool isSource)
virtual bool | CloseMediaStream (unsigned sessionId, bool source)
virtual bool | CloseMediaStream (OpalMediaStream &stream)
bool | RemoveMediaStream (OpalMediaStream &strm)
virtual void | StartMediaStreams ()
virtual void | CloseMediaStreams ()
virtual void | PauseMediaStreams (bool paused)
virtual void | OnPauseMediaStream (OpalMediaStream &strm, bool paused)
OpalMediaStreamPtr | GetMediaStream (const PString &streamID, bool source) const
OpalMediaStreamPtr | GetMediaStream (unsigned sessionId, bool source) const
OpalMediaStreamPtr | GetMediaStream (const OpalMediaType &mediaType, bool source, OpalMediaStreamPtr previous=NULL) const
virtual PBoolean | OnOpenMediaStream (OpalMediaStream &stream)
virtual void | OnClosedMediaStream (const OpalMediaStream &stream)
virtual void | OnStartMediaPatch (OpalMediaPatch &patch)
virtual void | OnStopMediaPatch (OpalMediaPatch &patch)
virtual PBoolean | CreateVideoInputDevice (const OpalMediaFormat &mediaFormat, PVideoInputDevice *&device, PBoolean &autoDelete)
virtual PBoolean | CreateVideoOutputDevice (const OpalMediaFormat &mediaFormat, PBoolean preview, PVideoOutputDevice *&device, PBoolean &autoDelete)
virtual bool | SendVideoUpdatePicture (unsigned sessionID=0, bool force=false) const
virtual PBoolean | SetAudioVolume (PBoolean source, unsigned percentage)
virtual unsigned | GetAudioSignalLevel (PBoolean source)
unsigned | GetBandwidthAvailable () const
virtual PBoolean | SetBandwidthAvailable (unsigned newBandwidth, PBoolean force=false)
virtual unsigned | GetBandwidthUsed () const
virtual PBoolean | SetBandwidthUsed (unsigned releasedBandwidth, unsigned requiredBandwidth)
OpalEndPoint & | GetEndPoint () const
OpalCall & | GetCall () const
const PString & | GetToken () const
PBoolean | IsOriginating () const
const PTime & | GetPhaseTime (Phases phase) const
const PTime & | GetSetupUpTime () const
const PTime & | GetAlertingTime () const
const PTime & | GetConnectionStartTime () const
const PTime & | GetConnectionEndTime () const
const OpalProductInfo & | GetProductInfo () const
void | SetProductInfo (const OpalProductInfo &info)
virtual PString | GetPrefixName () const
const PString & | GetLocalPartyName () const
virtual void | SetLocalPartyName (const PString &name)
virtual PString | GetLocalPartyURL () const
const PString & | GetDisplayName () const
void | SetDisplayName (const PString &name)
virtual bool | IsPresentationBlocked () const
const PString & | GetRemotePartyName () const
void | SetRemotePartyName (const PString &name)
const PString & | GetRemotePartyNumber () const
const PString & | GetRemotePartyAddress () const
void | SetRemotePartyAddress (const PString &addr)
virtual PString | GetRemotePartyURL () const
const PString & | GetRedirectingParty () const
void | SetRedirectingParty (const PString &party)
const PString | GetRemotePartyCallbackURL () const
PCaselessString | GetRemoteApplication () const
const OpalProductInfo & | GetRemoteProductInfo () const
const PString & | GetCalledPartyName () const
const PString & | GetCalledPartyNumber () const
virtual PString | GetCalledPartyURL ()
void | CopyPartyNames (const OpalConnection &other)
virtual PString | GetAlertingType () const
virtual bool | SetAlertingType (const PString &info)
virtual PString | GetCallInfo () const
unsigned | GetMinAudioJitterDelay () const
unsigned | GetMaxAudioJitterDelay () const
void | SetAudioJitterDelay (unsigned minDelay, unsigned maxDelay)
OpalSilenceDetector * | GetSilenceDetector () const
virtual PString | GetIdentifier () const
virtual PINDEX | GetMaxRtpPayloadSize () const
virtual OpalTransport & | GetTransport () const
| PDICTIONARY (MediaAddressesDict, POrdinalKey, OpalTransportAddress)
MediaAddressesDict & | GetMediaTransportAddresses ()
unsigned | GetVideoUpdateRequestsSent () const
virtual bool | IsNetworkConnection () const =0
__inline Phases | GetPhase () const
__inline bool | IsEstablished () const
| Return true if connection is in the established phase.
__inline bool | IsReleased () const
| Return true if connection is in the established phase.
void | SetPhase (Phases phaseToSet)
CallEndReason | GetCallEndReason () const
PString | GetCallEndReasonText () const
virtual void | SetCallEndReason (CallEndReason reason)
void | ClearCall (CallEndReason reason=EndedByLocalUser)
virtual void | ClearCallSynchronous (PSyncPoint *sync, CallEndReason reason=EndedByLocalUser)
unsigned | GetQ931Cause () const
void | SetQ931Cause (unsigned v)
virtual bool | TransferConnection (const PString &remoteParty)
virtual bool | Hold (bool fromRemote, bool placeOnHold)
virtual bool | IsOnHold (bool fromRemote)
virtual void | OnHold (bool fromRemote, bool onHold)
virtual void | SetSendUserInputMode (SendUserInputModes mode)
virtual SendUserInputModes | GetSendUserInputMode () const
virtual SendUserInputModes | GetRealSendUserInputMode () const
virtual PBoolean | SendUserInputString (const PString &value)
virtual void | OnUserInputString (const PString &value)
virtual void | OnUserInputTone (char tone, unsigned duration)
void | SendUserInputHookFlash (unsigned duration=500)
virtual PString | GetUserInput (unsigned timeout=30)
virtual void | SetUserInput (const PString &input)
virtual PString | ReadUserInput (const char *terminators="#\r\n", unsigned lastDigitTimeout=4, unsigned firstDigitTimeout=30)
virtual PBoolean | PromptUserInput (PBoolean play)

## Protected Member Functions

| PDECLARE_NOTIFIER (OpalRFC2833Info, OpalRTPConnection, OnUserInputInlineRFC2833)
| PDECLARE_NOTIFIER (OpalRFC2833Info, OpalRTPConnection, OnUserInputInlineCiscoNSE)
Protected Member Functions inherited from OpalConnection
void | OnConnectedInternal ()
| PDECLARE_NOTIFIER (PThread, OpalConnection, OnReleaseThreadMain)
| PDECLARE_NOTIFIER (RTP_DataFrame, OpalConnection, OnRecordAudio)
| PDECLARE_NOTIFIER (RTP_DataFrame, OpalConnection, OnRecordVideo)
void | OnStartRecording (OpalMediaPatch *patch)
void | OnStopRecording (OpalMediaPatch *patch)

## Protected Attributes

OpalRTPSessionManager | m_rtpSessions
OpalRFC2833Proto * | rfc2833Handler
PBoolean | remoteIsNAT
PBoolean | useRTPAggregation
Protected Attributes inherited from OpalConnection
OpalCall & | ownerCall
OpalEndPoint & | endpoint
PString | callToken
PBoolean | originating
OpalProductInfo | productInfo
PString | localPartyName
PString | displayName
PString | remotePartyName
PString | remotePartyURL
OpalProductInfo | remoteProductInfo
PString | remotePartyNumber
PString | remotePartyAddress
PString | m_redirectingParty
CallEndReason | callEndReason
bool | synchronousOnRelease
PString | m_calledPartyNumber
PString | m_calledPartyName
SendUserInputModes | sendUserInputMode
PString | userInputString
PSyncPoint | userInputAvailable
OpalSilenceDetector * | silenceDetector
OpalMediaFormat | m_filterMediaFormat
OpalMediaFormatList | m_localMediaFormats
MediaAddressesDict | mediaTransportAddresses
PSafeList< OpalMediaStream > | mediaStreams
unsigned | minAudioJitterDelay
unsigned | maxAudioJitterDelay
unsigned | bandwidthAvailable
StringOptions | m_stringOptions
PString | m_recordingFilename
PNotifier | m_recordAudioNotifier
PNotifier | m_recordVideoNotifier
unsigned | m_VideoUpdateRequestsSent
AutoStartMap | m_autoStartInfo
enum OpalConnection:: { ... } | m_faxMediaStreamsSwitchState
ZeroTime | m_phaseTime [NumPhases]

## Additional Inherited Members

Public Types inherited from OpalConnection

enum

CallEndReasonCodes {
EndedByLocalUser, EndedByNoAccept, EndedByAnswerDenied, EndedByRemoteUser,
EndedByRefusal, EndedByNoAnswer, EndedByCallerAbort, EndedByTransportFail,
EndedByConnectFail, EndedByGatekeeper, EndedByNoUser, EndedByNoBandwidth,
EndedByCapabilityExchange, EndedByCallForwarded, EndedBySecurityDenial, EndedByLocalBusy,
EndedByLocalCongestion, EndedByRemoteBusy, EndedByRemoteCongestion, EndedByUnreachable,
EndedByNoEndPoint, EndedByHostOffline, EndedByTemporaryFailure, EndedByQ931Cause,
EndedByDurationLimit, EndedByInvalidConferenceID, EndedByNoDialTone, EndedByNoRingBackTone,
EndedByOutOfService, EndedByAcceptingCallWaiting, EndedByGkAdmissionFailed, NumCallEndReasons
}

enum | AnswerCallResponse { AnswerCallNow, AnswerCallDenied, AnswerCallPending, AnswerCallDeferred, AnswerCallAlertWithMedia, AnswerCallDeferredWithMedia, AnswerCallProgress, AnswerCallNowAndReleaseCurrent, NumAnswerCallResponses }

enum

Options {
FastStartOptionDisable = 0x0001, FastStartOptionEnable = 0x0002, FastStartOptionMask = 0x0003, H245TunnelingOptionDisable = 0x0004,
H245TunnelingOptionEnable = 0x0008, H245TunnelingOptionMask = 0x000c, H245inSetupOptionDisable = 0x0010, H245inSetupOptionEnable = 0x0020,
H245inSetupOptionMask = 0x0030, DetectInBandDTMFOptionDisable = 0x0040, DetectInBandDTMFOptionEnable = 0x0080, DetectInBandDTMFOptionMask = 0x00c0,
RTPAggregationDisable = 0x0100, RTPAggregationEnable = 0x0200, RTPAggregationMask = 0x0300, SendDTMFAsDefault = 0x0000,
SendDTMFAsString = 0x0400, SendDTMFAsTone = 0x0800, SendDTMFAsRFC2833 = 0x0c00, SendDTMFMask = 0x0c00
}

enum | Phases { UninitialisedPhase, SetUpPhase, ProceedingPhase, AlertingPhase, ConnectedPhase, EstablishedPhase, ForwardingPhase, ReleasingPhase, ReleasedPhase, NumPhases }
enum | SendUserInputModes { SendUserInputAsQ931, SendUserInputAsString, SendUserInputAsTone, SendUserInputAsRFC2833, SendUserInputInBand, SendUserInputAsProtocolDefault, NumSendUserInputModes, SendUserInputAsInlineRFC2833 = SendUserInputAsRFC2833 }
static PString | GetCallEndReasonText (CallEndReason reason)
static void | SetCallEndReasonText (CallEndReasonCodes reasonCode, const PString &newText)
Protected Types inherited from OpalConnection
enum | { e_NotSwitchingFaxMediaStreams, e_SwitchingToFaxMediaStreams, e_SwitchingFromFaxMediaStreams }

## Detailed Description

This is the base class for OpalConnections that use RTP sessions, such as H.323 and SIPconnections to an endpoint.

## Constructor & Destructor Documentation

OpalRTPConnection::OpalRTPConnection | ( | OpalCall & | call,
|  | OpalRTPEndPoint & | endpoint,
|  | const PString & | token,
|  | unsigned | options = `0`,
|  | OpalConnection::StringOptions * | stringOptions = `NULL`
| ) |  |

Create a new connection.

Parameters:

  call | Owner calll for connection
  endpoint | Owner endpoint for connection
  token | Token to identify the connection
  options | Connection options
  stringOptions | more complex options

OpalRTPConnection::~OpalRTPConnection | ( |  | ) |

Destroy connection.

## Member Function Documentation

virtual void OpalRTPConnection::AdjustMediaFormats | ( | bool | local,
|  | const OpalConnection * | otherConnection,
|  | OpalMediaFormatList & | mediaFormats
| ) |  | const

virtual

Adjust media formats available on a connection. This is called by a connection after it has called OpalCall::GetMediaFormats() to get all media formats that it can use so that an application may remove or reorder the media formats before they are used to open media streams.

This function may also be executed by other connections in the call. If this happens then the "otherConnection" parameter will be non-NULL. The "local" parameter sense is relative to the "otherConnection" parameter, if NULL then it is relative to "this".

The default behaviour calls the OpalEndPoint function of the same name.

Parameters:

  local | Media formats a local ones to be presented to remote
  otherConnection | Other connection we are adjusting media for
  mediaFormats | Media formats to use

Reimplemented from OpalConnection.

virtual void OpalRTPConnection::AttachRFC2833HandlerToPatch | ( | PBoolean | isSource,
|  | OpalMediaPatch & | patch
| ) |  |

virtual

Attaches the RFC 2833 handler to the media patch This method may be called from subclasses, e.g. within OnPatchMediaStream()

Reimplemented from OpalConnection.

virtual bool OpalRTPConnection::ChangeSessionID | ( | unsigned | fromSessionID,
|  | unsigned | toSessionID
| ) |  |

virtual

Change the sessionID for an existing session. This will adjust the RTP session and media streams.

Return false if no such session exists.

Parameters:

  fromSessionID | Session ID to search for
  toSessionID | Session ID to change to

virtual void OpalRTPConnection::CloseSession | ( | unsigned | sessionID | ) |

virtual

Release the session.

Parameters:

  sessionID | RTP session number, 0 indicates all

virtual OpalMediaStream* OpalRTPConnection::CreateMediaStream | ( | const OpalMediaFormat & | mediaFormat,
|  | unsigned | sessionID,
|  | PBoolean | isSource
| ) |  |

virtual

Create a new media stream. This will create a media stream of an appropriate subclass as required by the underlying connection protocol. For instance H.323 would create an OpalRTPStream.

The sessionID parameter may not be needed by a particular media stream and may be ignored. In the case of an OpalRTPStream it us used.

Note that media streams may be created internally to the underlying protocol. This function is not the only way a stream can come into existance.

Parameters:

  mediaFormat | Media format for stream
  sessionID | Session number for stream
  isSource | Is a source stream

Reimplemented from OpalConnection.

virtual RTP_UDP* OpalRTPConnection::CreateRTPSession | ( | unsigned | sessionId,
|  | const OpalMediaType & | mediaType,
|  | bool | remoteIsNat
| ) |  |

virtual

Create a new underlying RTP session instance.

virtual RTP_Session* OpalRTPConnection::CreateSession | ( | const OpalTransport & | transport,
|  | unsigned | sessionID,
|  | const OpalMediaType & | mediaType,
|  | RTP_QOS * | rtpqos
| ) |  |

virtual

Create and open a new RTP session. The type of RTP session that is created will be compatible with the transport. At this time only IP (RTP over UDP) is supported.

virtual PBoolean OpalRTPConnection::GetMediaInformation | ( | unsigned | sessionID,
|  | MediaInformation & | info
| ) |  | const

virtual

Get information on the media channel for the connection. The default behaviour checked the mediaTransportAddresses dictionary for the session ID and returns information based on that. It also uses the rfc2833Handler variable for that part of the info.

It is up to the descendant class to assure that the mediaTransportAddresses dictionary is set correctly before OnIncomingCall() is executed.

Parameters:

  sessionID | Session ID for media channel
  info | Information on media channel

Reimplemented in H323Connection.

virtual OpalMediaSession* OpalRTPConnection::GetMediaSession | ( | unsigned | sessionID | ) | const

virtual

Parameters:

  sessionID | RTP session number

virtual unsigned OpalRTPConnection::GetNextSessionID | ( | const OpalMediaType & | mediaType,
|  | bool | isSource
| ) |  |

virtual

Get next available session ID for the media type.

Parameters:

  mediaType | Media type of stream being opened
  isSource | Stream is a source/sink

Reimplemented from OpalConnection.

Reimplemented in H323Connection.

virtual RTP_Session* OpalRTPConnection::GetSession | ( | unsigned | sessionID | ) | const

virtual

Get an RTP session for the specified ID. If there is no session of the specified ID, NULL is returned.

Parameters:

  sessionID | RTP session number

virtual PBoolean OpalRTPConnection::IsMediaBypassPossible | ( | unsigned | sessionID | ) | const

virtual

See if the media can bypass the local host.

       The default behaviour returns true if the session is audio or video.

Parameters:

  sessionID | Session ID for media channel

Reimplemented from OpalConnection.

virtual PBoolean OpalRTPConnection::IsRTPNATEnabled | ( | const PIPSocket::Address & | localAddr,
|  | const PIPSocket::Address & | peerAddr,
|  | const PIPSocket::Address & | signalAddr,
|  | PBoolean | incoming
| ) |  |

virtual

Determine if the RTP session needs to accommodate a NAT router. For endpoints that do not use STUN or something similar to set up all the correct protocol embeddded addresses correctly when a NAT router is between the endpoints, it is possible to still accommodate the call, with some restrictions. This function determines if the RTP can proceed with special NAT allowances.

The special allowance is that the RTP code will ignore whatever the remote indicates in the protocol for the address to send RTP data and wait for the first packet to arrive from the remote and will then proceed to send all RTP data back to that address AND port.

The default behaviour checks the values of the physical link (localAddr/peerAddr) against the signaling address the remote indicated in the protocol, eg H.323 SETUP sourceCallSignalAddress or SIP "To" or "Contact" fields, and makes a guess that the remote is behind a NAT router.

Parameters:

  localAddr | Local physical address of connection
  peerAddr | Remote physical address of connection
  signalAddr | Remotes signaling address as indicated by protocol of connection
  incoming | Incoming/outgoing connection

virtual bool OpalRTPConnection::OnMediaCommand | ( | OpalMediaStream & | stream,
|  | const OpalMediaCommand & | command
| ) |  |

virtual

Callback for media commands. Calls the SendIntraFrameRequest on the rtp session

Returns:
  true if command is handled.

Parameters:

  stream | Stream command executed on
  command | Media command being executed

Reimplemented from OpalConnection.

Reimplemented in H323Connection, and SIPConnection.

virtual void OpalRTPConnection::OnPatchMediaStream | ( | PBoolean | isSource,
|  | OpalMediaPatch & | patch
| ) |  |

virtual

Call back when patching a media stream. This function is called when a connection has created a new media patch between two streams. This is usually called twice per media patch, once for the source stream and once for the sink stream.

Note this is not called within the context of the patch thread and is called before that thread has started.

Parameters:

  isSource | Is source/sink call
  patch | New patch

Reimplemented from OpalConnection.

virtual void OpalRTPConnection::OnReleased | ( |  | ) |

virtual

Clean up the termination of the connection. This function can do any internal cleaning up and waiting on background threads that may be using the connection object.

Note that there is not a one to one relationship with the OnEstablishedConnection() function. This function may be called without that function being called. For example if SetUpConnection() was used but the call never completed.

Classes that override this function should make sure they call the ancestor version for correct operation.

An application will not typically call this function as it is used by the OpalManager during a release of the connection.

The default behaviour calls the OpalEndPoint function of the same name.

Reimplemented from OpalConnection.

Reimplemented in SIPConnection, and H323Connection.

OpalRTPConnection::PDECLARE_NOTIFIER | ( | OpalRFC2833Info | ,
|  | OpalRTPConnection | ,
|  | OnUserInputInlineRFC2833 |
| ) |  |

protected

OpalRTPConnection::PDECLARE_NOTIFIER | ( | OpalRFC2833Info | ,
|  | OpalRTPConnection | ,
|  | OnUserInputInlineCiscoNSE |
| ) |  |

protected

virtual PBoolean OpalRTPConnection::RemoteIsNAT | ( |  | ) | const

inline virtual

Return true if the remote appears to be behind a NAT firewall

References remoteIsNAT.

virtual PBoolean OpalRTPConnection::SendUserInputTone | ( | char | tone,
|  | unsigned | duration = `0`
| ) |  |

virtual

Send a user input indication to the remote endpoint. This sends DTMF emulation user input. If something more sophisticated than the simple tones that can be sent using the SendUserInput() function.

A duration of zero indicates that no duration is to be indicated. A non-zero logical channel indicates that the tone is to be syncronised with the logical channel at the rtpTimestamp value specified.

The tone parameter must be one of "0123456789#*ABCD!" where '!' indicates a hook flash. If tone is a ' ' character then a signalUpdate PDU is sent that updates the last tone indication sent. See the H.245 specifcation for more details on this.

The default behaviour sends the tone using RFC2833.

Parameters:

  tone | DTMF tone code
  duration | Duration of tone in milliseconds

Reimplemented from OpalConnection.

Reimplemented in H323Connection, and SIPConnection.

virtual void OpalRTPConnection::SessionFailing | ( | RTP_Session & | session | ) |

virtual

virtual RTP_Session* OpalRTPConnection::UseSession | ( | const OpalTransport & | transport,
|  | unsigned | sessionID,
|  | const OpalMediaType & | mediatype,
|  | RTP_QOS * | rtpqos = `NULL`
| ) |  |

virtual

Use an RTP session for the specified ID. This will find a session of the specified ID and uses it if available.

If there is no session of the specified ID one is created.

The type of RTP session that is created will be compatible with the transport. At this time only IP (RTP over UDP) is supported.

Parameters:

  transport | Transport of signalling
  sessionID | RTP session number
  mediatype | media type
  rtpqos | Quiality of Service information

Reimplemented in H323Connection.

## Field Documentation

OpalRTPSessionManager OpalRTPConnection::m_rtpSessions

protected

PBoolean OpalRTPConnection::remoteIsNAT

protected

Referenced by RemoteIsNAT().

OpalRFC2833Proto* OpalRTPConnection::rfc2833Handler

protected

PBoolean OpalRTPConnection::useRTPAggregation

protected

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

- rtpconn.h