connection.h
Go to the documentation of this file.
/*
* connection.h
*
* Telephony connection abstraction
*
* Open Phone Abstraction Library (OPAL)
* Formally known as the Open H323 project.
*
* Copyright (c) 2001 Equivalence Pty. Ltd.
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Open Phone Abstraction Library.
*
* The Initial Developer of the Original Code is Equivalence Pty. Ltd.
*
* Contributor(s): Post Increment
* Portions of this code were written with the assistance of funding from
* US Joint Forces Command Joint Concept Development & Experimentation (J9)
* http://www.jfcom.mil/about/abt_j9.htm
*
* $Revision: 28445 $
* $Author: rjongbloed $
* $Date: 2012-10-02 20:11:02 -0500 (Tue, 02 Oct 2012) $
*/
#ifndef OPAL_OPAL_CONNECTION_H
#define OPAL_OPAL_CONNECTION_H
#ifdef P_USE_PRAGMA
#pragma interface
#endif
#include <opal/buildopts.h>
#include <opal/mediafmt.h>
#include <opal/mediastrm.h>
#include <opal/guid.h>
#include <opal/transports.h>
#include <ptclib/dtmf.h>
#include <ptlib/safecoll.h>
#include <rtp/rtp.h>
#if OPAL_HAS_IM
#include <im/t140.h>
#include <im/rfc4103.h>
#include <im/im.h>
#endif
#if P_LUA
#include <ptclib/lua.h>
#endif
class OpalEndPoint;
class OpalCall;
class OpalSilenceDetector;
class OpalEchoCanceler;
class OpalRFC2833Proto;
class OpalRFC2833Info;
class PURL;
#define OPAL_URL_PARAM_PREFIX "OPAL-"
#define OPAL_OPT_AUTO_START "AutoStart"
#define OPAL_OPT_CALL_IDENTIFIER "Call-Identifier"
#define OPAL_OPT_CALLING_PARTY_URL "Calling-Party-URL"
#define OPAL_OPT_CALLING_PARTY_NUMBER "Calling-Party-Number"
#define OPAL_OPT_CALLING_PARTY_NAME "Calling-Party-Name"
#define OPAL_OPT_CALLING_PARTY_DOMAIN "Calling-Party-Domain"
#define OPAL_OPT_CALLING_DISPLAY_NAME "Calling-Display-Name"
#define OPAL_OPT_CALLED_PARTY_NAME "Called-Party-Name"
#define OPAL_OPT_CALLED_DISPLAY_NAME "Called-Display-Name"
#define OPAL_OPT_REDIRECTING_PARTY "Redirecting-Party"
#define OPAL_OPT_PRESENTATION_BLOCK "Presentation-Block"
#define OPAL_OPT_ORIGINATOR_ADDRESS "Originator-Address"
#define OPAL_OPT_INTERFACE "Interface"
#define OPAL_OPT_USER_INPUT_MODE "User-Input-Mode"
#define OPAL_OPT_ENABLE_INBAND_DTMF "EnableInbandDTMF"
#define OPAL_OPT_ENABLE_INBAND_DTMF "EnableInbandDTMF"
#define OPAL_OPT_DETECT_INBAND_DTMF "DetectInBandDTMF"
#define OPAL_OPT_SEND_INBAND_DTMF "SendInBandDTMF"
#define OPAL_OPT_DTMF_MULT "dtmfmult"
#define OPAL_OPT_DTMF_DIV "dtmfdiv"
#define OPAL_OPT_DISABLE_JITTER "Disable-Jitter"
#define OPAL_OPT_MAX_JITTER "Max-Jitter"
#define OPAL_OPT_MIN_JITTER "Min-Jitter"
#define OPAL_OPT_RECORD_AUDIO "Record-Audio"
#define OPAL_OPT_ALERTING_TYPE "Alerting-Type"
#define OPAL_OPT_REMOVE_CODEC "Remove-Codec"
class OpalProductInfo
{
public:
OpalProductInfo();
static OpalProductInfo & Default();
friend ostream & operator<<(ostream & strm, const OpalProductInfo & info);
PCaselessString AsString() const;
PCaselessString vendor;
PCaselessString name;
PCaselessString version;
PCaselessString comments;
BYTE t35CountryCode;
BYTE t35Extension;
WORD manufacturerCode;
private:
OpalProductInfo(bool);
};
class OpalConnection : public PSafeObject
{
PCLASSINFO(OpalConnection, PSafeObject);
public:
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
};
struct CallEndReason {
CallEndReason(
CallEndReasonCodes reason = NumCallEndReasons,
unsigned cause = 0
) : code(reason), q931(cause) { }
explicit CallEndReason(
long reason
) : code((CallEndReasonCodes)(reason&0xff)), q931((reason>>8)&0xff) { }
__inline operator CallEndReasonCodes() const { return code; }
__inline int AsInteger() const { return code|(q931<<8); }
CallEndReasonCodes code:8; // Normalised OPAL code
unsigned q931:8; // PSTN Interworking code, actually Q.850
};
#if PTRACING
friend ostream & operator<<(ostream & o, CallEndReason reason);
#endif
enum AnswerCallResponse {
AnswerCallNow,
AnswerCallDenied,
AnswerCallPending,
AnswerCallDeferred,
AnswerCallAlertWithMedia,
AnswerCallDeferredWithMedia,
AnswerCallProgress,
AnswerCallNowAndReleaseCurrent,
NumAnswerCallResponses
};
#if PTRACING
friend ostream & operator<<(ostream & o, AnswerCallResponse s);
#endif
enum Options {
FastStartOptionDisable = 0x0001, // H.323 specific
FastStartOptionEnable = 0x0002,
FastStartOptionMask = 0x0003,
H245TunnelingOptionDisable = 0x0004, // H.323 specific
H245TunnelingOptionEnable = 0x0008,
H245TunnelingOptionMask = 0x000c,
H245inSetupOptionDisable = 0x0010, // H.323 specific
H245inSetupOptionEnable = 0x0020,
H245inSetupOptionMask = 0x0030,
DetectInBandDTMFOptionDisable = 0x0040, // SIP and H.323
DetectInBandDTMFOptionEnable = 0x0080,
DetectInBandDTMFOptionMask = 0x00c0,
RTPAggregationDisable = 0x0100, // SIP and H.323
RTPAggregationEnable = 0x0200,
RTPAggregationMask = 0x0300,
SendDTMFAsDefault = 0x0000, // SIP and H.323
SendDTMFAsString = 0x0400,
SendDTMFAsTone = 0x0800,
SendDTMFAsRFC2833 = 0x0c00,
SendDTMFMask = 0x0c00
};
class StringOptions : public PStringOptions
{
public:
void ExtractFromURL(
PURL & url
);
};
OpalConnection(
OpalCall & call,
OpalEndPoint & endpoint,
const PString & token,
unsigned options = 0,
OpalConnection::StringOptions * stringOptions = NULL
);
~OpalConnection();
void PrintOn(
ostream & strm
) const;
virtual bool IsNetworkConnection() const = 0;
enum Phases {
UninitialisedPhase,
SetUpPhase,
ProceedingPhase,
AlertingPhase,
ConnectedPhase,
EstablishedPhase,
ForwardingPhase,
ReleasingPhase,
ReleasedPhase,
NumPhases
};
__inline Phases GetPhase() const { return m_phase; }
__inline bool IsEstablished() const { return m_phase == EstablishedPhase; }
__inline bool IsReleased() const { return m_phase >= ReleasingPhase; }
void SetPhase(
Phases phaseToSet
);
CallEndReason GetCallEndReason() const { return callEndReason; }
static PString GetCallEndReasonText(CallEndReason reason);
PString GetCallEndReasonText() const { return GetCallEndReasonText(callEndReason); }
static void SetCallEndReasonText(CallEndReasonCodes reasonCode, const PString & newText);
virtual void SetCallEndReason(
CallEndReason reason
);
void ClearCall(
CallEndReason reason = EndedByLocalUser,
PSyncPoint * sync = NULL
);
virtual void ClearCallSynchronous(
PSyncPoint * sync,
CallEndReason reason = EndedByLocalUser
);
unsigned GetQ931Cause() const { return callEndReason.q931; }
void SetQ931Cause(unsigned v) { callEndReason.q931 = 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 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,
bool synchronous = false
);
virtual void OnReleased();
virtual PString GetDestinationAddress();
virtual PBoolean ForwardCall(
const PString & forwardParty
);
PSafePtr<OpalConnection> GetOtherPartyConnection() const;
template <class cls> PSafePtr<cls> GetOtherPartyConnectionAs() const { return PSafePtrCast<OpalConnection, cls>(GetOtherPartyConnection()); }
virtual OpalMediaFormatList GetMediaFormats() const;
virtual OpalMediaFormatList GetLocalMediaFormats();
virtual void AdjustMediaFormats(
bool local,
const OpalConnection * otherConnection,
OpalMediaFormatList & mediaFormats
) const;
virtual unsigned GetNextSessionID(
const OpalMediaType & mediaType,
bool isSource
);
virtual OpalMediaType::AutoStartMode GetAutoStart(
const OpalMediaType & mediaType
) const;
virtual void AutoStartMediaStreams(
bool force = false
);
#if OPAL_FAX
virtual bool SwitchFaxMediaStreams(
bool toT38
);
virtual void OnSwitchedFaxMediaStreams(
bool toT38,
bool success
);
virtual bool OnSwitchingFaxMediaStreams(
bool toT38
);
#endif
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
);
virtual OpalMediaStream * CreateMediaStream(
const OpalMediaFormat & mediaFormat,
unsigned sessionID,
PBoolean isSource
);
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 OnPatchMediaStream(
PBoolean isSource,
OpalMediaPatch & patch
);
virtual void OnStartMediaPatch(
OpalMediaPatch & patch
);
virtual void OnStopMediaPatch(
OpalMediaPatch & patch
);
virtual bool OnMediaCommand(
OpalMediaStream & stream,
const OpalMediaCommand & command
);
virtual void AttachRFC2833HandlerToPatch(PBoolean isSource, OpalMediaPatch & patch);
virtual PBoolean IsMediaBypassPossible(
unsigned sessionID
) const;
#if OPAL_VIDEO
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;
#endif
virtual PBoolean SetAudioVolume(
PBoolean source,
unsigned percentage
);
virtual PBoolean GetAudioVolume(
PBoolean source,
unsigned & percentage
);
virtual bool SetAudioMute(
bool source,
bool mute
);
virtual bool GetAudioMute(
bool source,
bool & mute
);
virtual unsigned GetAudioSignalLevel(
PBoolean source
);
unsigned GetBandwidthAvailable() const { return bandwidthAvailable; }
virtual PBoolean SetBandwidthAvailable(
unsigned newBandwidth,
PBoolean force = false
);
virtual unsigned GetBandwidthUsed() const;
virtual PBoolean SetBandwidthUsed(
unsigned releasedBandwidth,
unsigned requiredBandwidth
);
enum SendUserInputModes {
SendUserInputAsQ931,
SendUserInputAsString,
SendUserInputAsTone,
SendUserInputAsRFC2833,
SendUserInputInBand,
SendUserInputAsProtocolDefault,
NumSendUserInputModes,
SendUserInputAsInlineRFC2833 = SendUserInputAsRFC2833 // For backward compatibility
};
#if PTRACING
friend ostream & operator<<(ostream & o, SendUserInputModes m);
#endif
virtual void SetSendUserInputMode(SendUserInputModes mode);
virtual SendUserInputModes GetSendUserInputMode() const { return sendUserInputMode; }
virtual SendUserInputModes GetRealSendUserInputMode() const { return GetSendUserInputMode(); }
virtual PBoolean SendUserInputString(
const PString & value
);
virtual PBoolean SendUserInputTone(
char tone,
unsigned duration = 0
);
virtual void OnUserInputString(
const PString & value
);
virtual void OnUserInputTone(
char tone,
unsigned duration
);
void SendUserInputHookFlash(
unsigned duration = 500
) { SendUserInputTone('!', duration); }
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
);
virtual bool GarbageCollection();
OpalEndPoint & GetEndPoint() const { return endpoint; }
OpalCall & GetCall() const { return ownerCall; }
const PString & GetToken() const { return callToken; }
PBoolean IsOriginating() const { return originating; }
const PTime & GetPhaseTime(Phases phase) const { return m_phaseTime[phase]; }
const PTime & GetSetupUpTime() const { return m_phaseTime[SetUpPhase]; }
const PTime & GetAlertingTime() const { return m_phaseTime[AlertingPhase]; }
const PTime & GetConnectionStartTime() const { return m_phaseTime[ConnectedPhase]; }
const PTime & GetConnectionEndTime() const { return m_phaseTime[ReleasingPhase]; }
const OpalProductInfo & GetProductInfo() const { return productInfo; }
void SetProductInfo(
const OpalProductInfo & info
) { productInfo = info; }
virtual PString GetPrefixName() const;
const PString & GetLocalPartyName() const { return localPartyName; }
virtual void SetLocalPartyName(const PString & name);
virtual PString GetLocalPartyURL() const;
const PString & GetDisplayName() const { return displayName; }
void SetDisplayName(const PString & name) { displayName = name; }
virtual bool IsPresentationBlocked() const;
const PString & GetRemotePartyName() const { return remotePartyName; }
void SetRemotePartyName(const PString & name) { remotePartyName = name; }
const PString & GetRemotePartyNumber() const { return remotePartyNumber; }
const PString & GetRemotePartyAddress() const { return remotePartyAddress; }
void SetRemotePartyAddress(const PString & addr) { remotePartyAddress = addr; }
virtual PString GetRemotePartyURL() const;
const PString & GetRedirectingParty() const { return m_redirectingParty; }
void SetRedirectingParty(const PString & party) { m_redirectingParty = party; }
// Deprecated - backward compatibility only
const PString GetRemotePartyCallbackURL() const { return GetRemotePartyURL(); }
PCaselessString GetRemoteApplication() const { return remoteProductInfo.AsString(); }
const OpalProductInfo & GetRemoteProductInfo() const { return remoteProductInfo; }
const PString & GetCalledPartyName() const { return m_calledPartyName; }
const PString & GetCalledPartyNumber() const { return m_calledPartyNumber; }
virtual PString GetCalledPartyURL();
/* Internal function to copy party names from "network" connection to
"non-network" connection such as OpalPCSSConnection. This allows
the non-network GetRemoteAddress() function and its ilk to return
the intuitive value, i.e. the value from the OTHER connection.
*/
void CopyPartyNames(const OpalConnection & other);
virtual PString GetAlertingType() const;
virtual bool SetAlertingType(const PString & info);
virtual PString GetCallInfo() const;
unsigned GetMinAudioJitterDelay() const { return minAudioJitterDelay; }
unsigned GetMaxAudioJitterDelay() const { return maxAudioJitterDelay; }
void SetAudioJitterDelay(
unsigned minDelay,
unsigned maxDelay
);
OpalSilenceDetector * GetSilenceDetector() const { return silenceDetector; }
#if OPAL_AEC
OpalEchoCanceler * GetEchoCanceler() const { return echoCanceler; }
#endif
virtual PString GetIdentifier() const;
virtual PINDEX GetMaxRtpPayloadSize() const;
virtual OpalTransport & GetTransport() const
{ return *(OpalTransport *)NULL; }
PDICTIONARY(MediaAddressesDict, POrdinalKey, OpalTransportAddress);
MediaAddressesDict & GetMediaTransportAddresses()
{ return mediaTransportAddresses; }
#if OPAL_STATISTICS
unsigned GetVideoUpdateRequestsSent() const { return m_VideoUpdateRequestsSent; }
#endif
const StringOptions & GetStringOptions() const { return m_stringOptions; }
void SetStringOptions(
const StringOptions & options,
bool overwrite
);
virtual void OnApplyStringOptions();
#if OPAL_HAS_MIXER
virtual void EnableRecording();
virtual void DisableRecording();
#endif
#if 0 //OPAL_HAS_IM
virtual bool TransmitInternalIM(
const OpalMediaFormat & format,
RTP_IMFrame & body
);
virtual void OnReceiveInternalIM(
const OpalMediaFormat & format,
RTP_IMFrame & body
);
virtual bool TransmitExternalIM(
const OpalMediaFormat & format,
RTP_IMFrame & body
);
virtual bool OnReceiveExternalIM(
const OpalMediaFormat & format,
RTP_IMFrame & body
);
RFC4103Context & GetRFC4103Context(PINDEX i) { return m_rfc4103Context[i]; };
protected:
RFC4103Context m_rfc4103Context[2];
#endif
protected:
void OnConnectedInternal();
PDECLARE_NOTIFIER(PThread, OpalConnection, OnReleaseThreadMain);
#if OPAL_HAS_MIXER
PDECLARE_NOTIFIER(RTP_DataFrame, OpalConnection, OnRecordAudio);
#if OPAL_VIDEO
PDECLARE_NOTIFIER(RTP_DataFrame, OpalConnection, OnRecordVideo);
#endif
void OnStartRecording(OpalMediaPatch * patch);
void OnStopRecording(OpalMediaPatch * patch);
#endif
// Member variables
OpalCall & ownerCall;
OpalEndPoint & endpoint;
private:
PMutex m_phaseMutex;
Phases m_phase;
protected:
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;
PString m_calledPartyNumber;
PString m_calledPartyName;
SendUserInputModes sendUserInputMode;
PString userInputString;
PSyncPoint userInputAvailable;
OpalSilenceDetector * silenceDetector;
#if OPAL_AEC
OpalEchoCanceler * echoCanceler;
#endif
OpalMediaFormat m_filterMediaFormat;
OpalMediaFormatList m_localMediaFormats;
MediaAddressesDict mediaTransportAddresses;
PSafeList<OpalMediaStream> mediaStreams;
unsigned minAudioJitterDelay;
unsigned maxAudioJitterDelay;
unsigned bandwidthAvailable;
// The In-Band DTMF detector. This is used inside an audio filter which is
// added to the audio channel.
#if OPAL_PTLIB_DTMF
PDTMFDecoder m_dtmfDecoder;
bool m_detectInBandDTMF;
unsigned m_dtmfScaleMultiplier;
unsigned m_dtmfScaleDivisor;
PNotifier m_dtmfDetectNotifier;
PDECLARE_NOTIFIER(RTP_DataFrame, OpalConnection, OnDetectInBandDTMF);
bool m_sendInBandDTMF;
OpalMediaFormat m_dtmfSendFormat;
PBYTEArray m_inBandDTMF;
PINDEX m_emittedInBandDTMF;
PMutex m_inBandMutex;
PNotifier m_dtmfSendNotifier;
PDECLARE_NOTIFIER(RTP_DataFrame, OpalConnection, OnSendInBandDTMF);
#endif
#if PTRACING
friend ostream & operator<<(ostream & o, Phases p);
#endif
StringOptions m_stringOptions;
#if OPAL_HAS_MIXER
PString m_recordingFilename;
PNotifier m_recordAudioNotifier;
#if OPAL_VIDEO
PNotifier m_recordVideoNotifier;
#endif
#endif
#if OPAL_STATISTICS
unsigned m_VideoUpdateRequestsSent;
#endif
struct AutoStartInfo {
unsigned preferredSessionId; // preferred session ID (only used for originating)
OpalMediaType::AutoStartMode autoStart;// Mode for this session when the call is started
};
class AutoStartMap : public std::map<OpalMediaType, AutoStartInfo>
{
public:
AutoStartMap();
void Initialise(const OpalConnection::StringOptions & stringOptions);
OpalMediaType::AutoStartMode GetAutoStart(const OpalMediaType & mediaType) const;
void SetAutoStart(const OpalMediaType & mediaType, OpalMediaType::AutoStartMode autoStart);
protected:
bool m_initialised;
PMutex m_mutex;
};
AutoStartMap m_autoStartInfo;
#if OPAL_FAX
enum {
e_NotSwitchingFaxMediaStreams,
e_SwitchingToFaxMediaStreams,
e_SwitchingFromFaxMediaStreams
} m_faxMediaStreamsSwitchState;
#endif
#if P_LUA
protected:
PLua m_lua;
bool m_luaScriptLoaded;
public:
PLUA_BINDING_START(OpalConnection)
PLUA_BINDING2(LuaSetOption, "SetOption")
PLUA_BINDING_END()
PLUA_DECLARE_FUNCTION(LuaSetOption);
#endif
// A version of PTime where default constructor creates invalid times
class ZeroTime : public PTime
{
public:
ZeroTime() : PTime(0) { }
};
ZeroTime m_phaseTime[NumPhases];
private:
P_REMOVE_VIRTUAL(PBoolean, OnIncomingConnection(unsigned int), false);
P_REMOVE_VIRTUAL(PBoolean, OnIncomingConnection(), false);
P_REMOVE_VIRTUAL(PBoolean, IsConnectionOnHold(), false);
P_REMOVE_VIRTUAL_VOID(OnMediaPatchStart(unsigned, bool));
P_REMOVE_VIRTUAL_VOID(OnMediaPatchStop(unsigned, bool));
P_REMOVE_VIRTUAL_VOID(AdjustMediaFormats(OpalMediaFormatList &) const);
P_REMOVE_VIRTUAL_VOID(AdjustMediaFormats(OpalMediaFormatList &, OpalConnection *) const);
P_REMOVE_VIRTUAL_VOID(AdjustMediaFormats(bool,OpalMediaFormatList &,OpalConnection *) const);
P_REMOVE_VIRTUAL_VOID(PreviewPeerMediaFormats(const OpalMediaFormatList &));
P_REMOVE_VIRTUAL(bool, HoldConnection(), false);
P_REMOVE_VIRTUAL(bool, RetrieveConnection(), false);
P_REMOVE_VIRTUAL(bool, IsConnectionOnHold(bool), false);
P_REMOVE_VIRTUAL_VOID(ApplyStringOptions(OpalConnection::StringOptions &));
P_REMOVE_VIRTUAL(bool, OnTransferNotify(const PStringToString &), false);
P_REMOVE_VIRTUAL_VOID(OnSwitchedFaxMediaStreams(bool));
};
#endif // OPAL_OPAL_CONNECTION_H
// End of File ///////////////////////////////////////////////////////////////
OpalConnection::PDECLARE_NOTIFIER
PDECLARE_NOTIFIER(PThread, OpalConnection, OnReleaseThreadMain)
OpalConnection::GetCalledPartyNumber
const PString & GetCalledPartyNumber() const
Definition: connection.h:1595
OpalConnection::SendDTMFAsTone
Definition: connection.h:457
OpalConnection::GetCalledPartyName
const PString & GetCalledPartyName() const
Definition: connection.h:1587
OpalConnection::OnTransferNotify
virtual bool OnTransferNotify(const PStringToString &info, const OpalConnection *transferringConnection)
OpalConnection::SetProductInfo
void SetProductInfo(const OpalProductInfo &info)
Definition: connection.h:1486
OpalConnection::OnReleased
virtual void OnReleased()
OpalConnection::callEndReason
CallEndReason callEndReason
Definition: connection.h:1806
OpalConnection::Hold
virtual bool Hold(bool fromRemote, bool placeOnHold)
OpalConnection::OnUserInputString
virtual void OnUserInputString(const PString &value)
OpalConnection::EndedByAcceptingCallWaiting
Call cleared because the line is out of service,.
Definition: connection.h:391
OpalEndPoint
Definition: endpoint.h:67
OpalProductInfo::name
PCaselessString name
Definition: connection.h:323
OpalConnection::EndedByUnreachable
Remote endpoint congested.
Definition: connection.h:381
OpalConnection::SendDTMFAsRFC2833
Definition: connection.h:458
OpalConnection::CreateVideoInputDevice
virtual PBoolean CreateVideoInputDevice(const OpalMediaFormat &mediaFormat, PVideoInputDevice *&device, PBoolean &autoDelete)
OpalConnection::OnUserInputTone
virtual void OnUserInputTone(char tone, unsigned duration)
OpalConnection::EndedByTemporaryFailure
The remote party host off line.
Definition: connection.h:384
OpalConnection::ConnectedPhase
There is agreement on having a call, usually means billing will apply.
Definition: connection.h:528
OpalConnection::OnHold
virtual void OnHold(bool fromRemote, bool onHold)
OpalConnection::RTPAggregationMask
Definition: connection.h:453
OpalConnection::AnswerCallNowAndReleaseCurrent
Answer the call with a h323 progress, or sip 183 session in progress, or ...
Definition: connection.h:425
OpalConnection::CreateMediaStream
virtual OpalMediaStream * CreateMediaStream(const OpalMediaFormat &mediaFormat, unsigned sessionID, PBoolean isSource)
OpalConnection::m_faxMediaStreamsSwitchState
enum OpalConnection::@30 m_faxMediaStreamsSwitchState
OpalConnection::GetEndPoint
OpalEndPoint & GetEndPoint() const
Definition: connection.h:1444
OpalConnection::endpoint
OpalEndPoint & endpoint
Definition: connection.h:1788
OpalConnection::ClearCall
void ClearCall(CallEndReason reason=EndedByLocalUser, PSyncPoint *sync=NULL)
OpalConnection::OnAlerting
virtual void OnAlerting()
OpalConnection::GetDisplayName
const PString & GetDisplayName() const
Definition: connection.h:1508
OpalConnection::SendDTMFMask
Definition: connection.h:459
OpalConnection::m_phaseTime
ZeroTime m_phaseTime[NumPhases]
Definition: connection.h:1911
OpalConnection::m_VideoUpdateRequestsSent
unsigned m_VideoUpdateRequestsSent
Definition: connection.h:1862
OpalConnection::ZeroTime::ZeroTime
ZeroTime()
Definition: connection.h:1909
RTP_IMFrame
Definition: im.h:382
OpalConnection::Options
Options
Definition: connection.h:434
OpalMediaCommand
Definition: mediacmd.h:43
OpalConnection::GetCall
OpalCall & GetCall() const
Definition: connection.h:1448
buildopts.h
OpalConnection::OnSwitchedFaxMediaStreams
virtual void OnSwitchedFaxMediaStreams(bool toT38, bool success)
OpalConnection::EndedByInvalidConferenceID
Call cleared due to an enforced duration limit.
Definition: connection.h:387
OpalConnection::SetAudioJitterDelay
void SetAudioJitterDelay(unsigned minDelay, unsigned maxDelay)
OpalConnection::ForwardCall
virtual PBoolean ForwardCall(const PString &forwardParty)
im.h
OpalConnection::minAudioJitterDelay
unsigned minAudioJitterDelay
Definition: connection.h:1824
OpalConnection::SendUserInputAsProtocolDefault
Definition: connection.h:1317
OpalConnection::ClearCallSynchronous
virtual void ClearCallSynchronous(PSyncPoint *sync, CallEndReason reason=EndedByLocalUser)
OpalConnection::AlertingPhase
The remote says there is a phone ringing, somewhere.
Definition: connection.h:527
OpalConnection::GetRemoteApplication
PCaselessString GetRemoteApplication() const
Definition: connection.h:1574
OpalConnection::~OpalConnection
~OpalConnection()
OpalConnection::GetTransport
virtual OpalTransport & GetTransport() const
Definition: connection.h:1695
OpalConnection::EndedByRemoteBusy
Local endpoint congested.
Definition: connection.h:379
OpalConnection::CloseMediaStream
virtual bool CloseMediaStream(unsigned sessionId, bool source)
OpalProductInfo::manufacturerCode
WORD manufacturerCode
Definition: connection.h:329
OpalProductInfo::version
PCaselessString version
Definition: connection.h:324
OpalConnection::GetCallEndReason
CallEndReason GetCallEndReason() const
Definition: connection.h:564
OpalConnection::SetBandwidthAvailable
virtual PBoolean SetBandwidthAvailable(unsigned newBandwidth, PBoolean force=false)
OpalTransport
Definition: transports.h:703
OpalConnection::GetIdentifier
virtual PString GetIdentifier() const
OpalMediaStreamPtr
PSafePtr< OpalMediaStream > OpalMediaStreamPtr
Definition: mediastrm.h:442
OpalConnection::GetLocalMediaFormats
virtual OpalMediaFormatList GetLocalMediaFormats()
OpalConnection::AnswerCallDeferredWithMedia
As for AnswerCallPending but starts media channels.
Definition: connection.h:423
OpalProductInfo::operator<<
friend ostream & operator<<(ostream &strm, const OpalProductInfo &info)
OpalConnection::RTPAggregationDisable
Definition: connection.h:451
OpalConnection::SendUserInputTone
virtual PBoolean SendUserInputTone(char tone, unsigned duration=0)
OpalConnection::SendUserInputAsString
Definition: connection.h:1313
OpalConnection::CallEndReason::q931
unsigned q931
Definition: connection.h:410
OpalConnection::GetSilenceDetector
OpalSilenceDetector * GetSilenceDetector() const
Definition: connection.h:1672
OpalConnection::SetStringOptions
void SetStringOptions(const StringOptions &options, bool overwrite)
Set the string options associated with this connection.
OpalConnection::OnPauseMediaStream
virtual void OnPauseMediaStream(OpalMediaStream &strm, bool paused)
OpalConnection::CallEndReasonCodes
CallEndReasonCodes
Definition: connection.h:361
OpalConnection::GetLocalPartyURL
virtual PString GetLocalPartyURL() const
OpalMediaType
Definition: mediatype.h:57
OpalConnection::m_autoStartInfo
AutoStartMap m_autoStartInfo
Definition: connection.h:1883
guid.h
OpalConnection::e_NotSwitchingFaxMediaStreams
Definition: connection.h:1887
OpalConnection::m_filterMediaFormat
OpalMediaFormat m_filterMediaFormat
Definition: connection.h:1818
OpalConnection::EndedByTransportFail
Remote endpoint stopped calling.
Definition: connection.h:369
OpalConnection::SendUserInputInBand
Definition: connection.h:1316
OpalConnection::silenceDetector
OpalSilenceDetector * silenceDetector
Definition: connection.h:1814
OpalConnection::AnswerCallAlertWithMedia
As for AnswerCallPending but does not send Alerting PDU.
Definition: connection.h:422
OpalConnection::OnAnswerCall
virtual AnswerCallResponse OnAnswerCall(const PString &callerName)
OpalConnection::SwitchFaxMediaStreams
virtual bool SwitchFaxMediaStreams(bool toT38)
OpalConnection::SetRedirectingParty
void SetRedirectingParty(const PString &party)
Definition: connection.h:1566
OpalConnection::mediaStreams
PSafeList< OpalMediaStream > mediaStreams
Definition: connection.h:1822
OpalConnection::m_redirectingParty
PString m_redirectingParty
Definition: connection.h:1805
OpalConnection::OnStopRecording
void OnStopRecording(OpalMediaPatch *patch)
OpalConnection::EndedBySecurityDenial
Call was forwarded using FACILITY message.
Definition: connection.h:376
OpalConnection::OpalConnection
OpalConnection(OpalCall &call, OpalEndPoint &endpoint, const PString &token, unsigned options=0, OpalConnection::StringOptions *stringOptions=NULL)
OpalConnection::EnableRecording
virtual void EnableRecording()
OpalConnection::m_localMediaFormats
OpalMediaFormatList m_localMediaFormats
Definition: connection.h:1820
OpalConnection::m_calledPartyName
PString m_calledPartyName
Definition: connection.h:1808
OpalConnection::CallEndReason::CallEndReason
CallEndReason(long reason)
Definition: connection.h:401
OpalConnection::EndedByGkAdmissionFailed
Call cleared because another call is answered.
Definition: connection.h:392
OpalConnection::ReleasingPhase
Hangup packet has been sent/received, media and control not yet stopped.
Definition: connection.h:531
OpalConnection::GetUserInput
virtual PString GetUserInput(unsigned timeout=30)
OpalConnection::SetUserInput
virtual void SetUserInput(const PString &input)
OpalConnection::H245inSetupOptionMask
Definition: connection.h:445
OpalConnection::OnPatchMediaStream
virtual void OnPatchMediaStream(PBoolean isSource, OpalMediaPatch &patch)
OpalConnection::RTPAggregationEnable
Definition: connection.h:452
OpalConnection::EndedByGatekeeper
Transport connection failed to establish call.
Definition: connection.h:371
OpalConnection::remotePartyName
PString remotePartyName
Definition: connection.h:1800
OpalConnection::OnConnectedInternal
void OnConnectedInternal()
OpalConnection::maxAudioJitterDelay
unsigned maxAudioJitterDelay
Definition: connection.h:1825
OpalConnection::bandwidthAvailable
unsigned bandwidthAvailable
Definition: connection.h:1826
OpalConnection::SetUpPhase
Has just sent/received the initial SETUP/INVITE packet.
Definition: connection.h:525
OpalConnection::EndedByCallForwarded
Could not find common capabilities.
Definition: connection.h:375
OpalConnection::EndedByNoEndPoint
Could not reach the remote party.
Definition: connection.h:382
OpalConnection::AnswerCallDenied
Answer the call continuing with the connection.
Definition: connection.h:419
OpalConnection::OnIncomingConnection
virtual PBoolean OnIncomingConnection(unsigned int options, OpalConnection::StringOptions *stringOptions)
OpalConnection::EndedByHostOffline
The remote party is not running an endpoint.
Definition: connection.h:383
OpalConnection::EndedByNoAccept
Local endpoint application cleared call.
Definition: connection.h:363
OpalConnection::SetDisplayName
void SetDisplayName(const PString &name)
Definition: connection.h:1512
OpalConnection::EndedByAnswerDenied
Local endpoint did not accept call OnIncomingCall()=false.
Definition: connection.h:364
OpalSilenceDetector
Definition: silencedetect.h:43
OpalConnection::EstablishedPhase
Media is established, streams are all operational.
Definition: connection.h:529
OpalConnection::H245inSetupOptionEnable
Definition: connection.h:444
OpalConnection::m_calledPartyNumber
PString m_calledPartyNumber
Definition: connection.h:1807
OpalConnection::SetConnected
virtual PBoolean SetConnected()
OpalConnection::FastStartOptionMask
Definition: connection.h:437
OpalConnection::SetQ931Cause
void SetQ931Cause(unsigned v)
Definition: connection.h:614
OpalRFC2833Info
Definition: rfc2833.h:65
rfc4103.h
OpalConnection::GetRemotePartyURL
virtual PString GetRemotePartyURL() const
OpalConnection::OnConnected
virtual void OnConnected()
OpalConnection::AnswerCallNow
Definition: connection.h:418
OpalConnection::EndedByConnectFail
Transport error cleared call.
Definition: connection.h:370
OpalConnection::Release
virtual void Release(CallEndReason reason=EndedByLocalUser, bool synchronous=false)
OpalConnection::OnStopMediaPatch
virtual void OnStopMediaPatch(OpalMediaPatch &patch)
OpalConnection::AnsweringCall
virtual void AnsweringCall(AnswerCallResponse response)
OpalMediaFormatList
Definition: mediafmt.h:72
OpalConnection::FastStartOptionEnable
Definition: connection.h:436
OpalConnection::SendUserInputModes
SendUserInputModes
Definition: connection.h:1311
OpalConnection::AnswerCallPending
Refuse the call sending a release complete.
Definition: connection.h:420
OpalConnection::UninitialisedPhase
Indicates the OpalConnection instance has just been constructed.
Definition: connection.h:524
OpalConnection::callToken
PString callToken
Definition: connection.h:1795
OpalConnection::m_recordingFilename
PString m_recordingFilename
Definition: connection.h:1854
OpalConnection::GetAudioVolume
virtual PBoolean GetAudioVolume(PBoolean source, unsigned &percentage)
OpalConnection::OnProceeding
virtual void OnProceeding()
OpalConnection::H245TunnelingOptionMask
Definition: connection.h:441
OpalConnection::OpenMediaStream
virtual OpalMediaStreamPtr OpenMediaStream(const OpalMediaFormat &mediaFormat, unsigned sessionID, bool isSource)
OpalConnection::AnswerCallResponse
AnswerCallResponse
Definition: connection.h:417
OpalConnection::GetVideoUpdateRequestsSent
unsigned GetVideoUpdateRequestsSent() const
Definition: connection.h:1705
OpalConnection::DetectInBandDTMFOptionEnable
Definition: connection.h:448
OpalConnection::StringOptions
Definition: connection.h:462
OpalConnection::GetBandwidthUsed
virtual unsigned GetBandwidthUsed() const
OpalConnection::m_recordVideoNotifier
PNotifier m_recordVideoNotifier
Definition: connection.h:1857
OpalConnection::TransferConnection
virtual bool TransferConnection(const PString &remoteParty)
OpalConnection::AutoStartInfo::preferredSessionId
unsigned preferredSessionId
Definition: connection.h:1866
OpalConnection::IsOnHold
virtual bool IsOnHold(bool fromRemote)
OpalConnection::SetPhase
void SetPhase(Phases phaseToSet)
OpalConnection::PrintOn
void PrintOn(ostream &strm) const
OpalConnection::GetBandwidthAvailable
unsigned GetBandwidthAvailable() const
Definition: connection.h:1278
RTP_DataFrame
Definition: rtp.h:71
OpalConnection::SetBandwidthUsed
virtual PBoolean SetBandwidthUsed(unsigned releasedBandwidth, unsigned requiredBandwidth)
OpalConnection::GetRealSendUserInputMode
virtual SendUserInputModes GetRealSendUserInputMode() const
Definition: connection.h:1339
OpalConnection::GetCallEndReasonText
PString GetCallEndReasonText() const
Definition: connection.h:569
OpalConnection::SetUpConnection
virtual PBoolean SetUpConnection()=0
OpalMediaPatch
Definition: patch.h:60
OpalConnection::IsPresentationBlocked
virtual bool IsPresentationBlocked() const
OpalConnection::e_SwitchingToFaxMediaStreams
Definition: connection.h:1888
OpalConnection::GetConnectionEndTime
const PTime & GetConnectionEndTime() const
Definition: connection.h:1478
OpalConnection::NumSendUserInputModes
Definition: connection.h:1318
OpalProductInfo::OpalProductInfo
OpalProductInfo()
OpalProductInfo::Default
static OpalProductInfo & Default()
OpalConnection::NumPhases
Number of available phases. Can be used to indicate an unknown phase.
Definition: connection.h:533
OpalConnection::OnEstablished
virtual void OnEstablished()
OpalMediaFormat
Definition: mediafmt.h:724
OpalProductInfo::t35CountryCode
BYTE t35CountryCode
Definition: connection.h:327
OpalConnection::AutoStartMap::Initialise
void Initialise(const OpalConnection::StringOptions &stringOptions)
OpalConnection::NumAnswerCallResponses
Answer the call and destroy the current call.
Definition: connection.h:426
OpalConnection::CallEndReason::CallEndReason
CallEndReason(CallEndReasonCodes reason=NumCallEndReasons, unsigned cause=0)
Definition: connection.h:397
OpalCall
Definition: call.h:65
OpalMediaType::AutoStartMode
AutoStartMode
Definition: mediatype.h:90
OpalConnection::SetLocalPartyName
virtual void SetLocalPartyName(const PString &name)
OpalProductInfo::vendor
PCaselessString vendor
Definition: connection.h:322
OpalConnection::SendUserInputAsInlineRFC2833
Definition: connection.h:1320
OpalConnection::EndedByCallerAbort
Remote endpoint did not answer in required time.
Definition: connection.h:368
OpalConnection::GetRemotePartyNumber
const PString & GetRemotePartyNumber() const
Definition: connection.h:1537
OpalConnection::SetRemotePartyName
void SetRemotePartyName(const PString &name)
Definition: connection.h:1527
OpalConnection::EndedByOutOfService
Call cleared due to missing ringback tone.
Definition: connection.h:390
OpalConnection::AutoStartInfo::autoStart
OpalMediaType::AutoStartMode autoStart
Definition: connection.h:1867
OpalConnection::AutoStartMap
Definition: connection.h:1870
OpalConnection::AutoStartMap::m_mutex
PMutex m_mutex
Definition: connection.h:1880
OpalConnection::AdjustMediaFormats
virtual void AdjustMediaFormats(bool local, const OpalConnection *otherConnection, OpalMediaFormatList &mediaFormats) const
OpalConnection::GetQ931Cause
unsigned GetQ931Cause() const
Definition: connection.h:609
OpalConnection::EndedByLocalCongestion
Local endpoint busy.
Definition: connection.h:378
OpalProductInfo::AsString
PCaselessString AsString() const
OpalConnection::GetMediaStream
OpalMediaStreamPtr GetMediaStream(const PString &streamID, bool source) const
OpalConnection::AutoStartMap::SetAutoStart
void SetAutoStart(const OpalMediaType &mediaType, OpalMediaType::AutoStartMode autoStart)
OpalConnection::CallEndReason::code
CallEndReasonCodes code
Definition: connection.h:409
OpalConnection::GetPhase
__inline Phases GetPhase() const
Definition: connection.h:540
OpalConnection::IsEstablished
__inline bool IsEstablished() const
Return true if connection is in the established phase.
Definition: connection.h:543
OpalConnection::EndedByNoRingBackTone
Call cleared due to missing dial tone.
Definition: connection.h:389
OpalConnection::GetConnectionStartTime
const PTime & GetConnectionStartTime() const
Definition: connection.h:1474
OpalConnection::displayName
PString displayName
Definition: connection.h:1799
OpalConnection::GetRemoteProductInfo
const OpalProductInfo & GetRemoteProductInfo() const
Definition: connection.h:1578
OpalConnection::GetAlertingTime
const PTime & GetAlertingTime() const
Definition: connection.h:1468
OpalConnection::SetAudioMute
virtual bool SetAudioMute(bool source, bool mute)
OpalConnection::Phases
Phases
Definition: connection.h:523
OpalRFC2833Proto
Definition: rfc2833.h:112
transports.h
OpalConnection::productInfo
OpalProductInfo productInfo
Definition: connection.h:1797
OpalConnection::EndedByNoAnswer
Remote endpoint refused call.
Definition: connection.h:367
OpalConnection::remotePartyURL
PString remotePartyURL
Definition: connection.h:1801
operator<<
ostream & operator<<(ostream &strm, OpalSilenceDetector::Mode mode)
OpalConnection::OnSetUpConnection
virtual PBoolean OnSetUpConnection()
OpalConnection::GetSendUserInputMode
virtual SendUserInputModes GetSendUserInputMode() const
Definition: connection.h:1332
OpalProductInfo::comments
PCaselessString comments
Definition: connection.h:325
OpalConnection::AnswerCallDeferred
Send an Alerting PDU and wait for AnsweringCall()
Definition: connection.h:421
OpalConnection::remotePartyNumber
PString remotePartyNumber
Definition: connection.h:1803
mediafmt.h
OpalEchoCanceler
Definition: echocancel.h:51
OpalConnection::GetToken
const PString & GetToken() const
Definition: connection.h:1452
OpalConnection::CopyPartyNames
void CopyPartyNames(const OpalConnection &other)
OpalConnection::GetMaxRtpPayloadSize
virtual PINDEX GetMaxRtpPayloadSize() const
OpalConnection::GetPhaseTime
const PTime & GetPhaseTime(Phases phase) const
Definition: connection.h:1460
OpalConnection::H245TunnelingOptionEnable
Definition: connection.h:440
OpalConnection::SetRemotePartyAddress
void SetRemotePartyAddress(const PString &addr)
Definition: connection.h:1548
OpalConnection::GetOtherPartyConnection
PSafePtr< OpalConnection > GetOtherPartyConnection() const
OpalConnection::GetDestinationAddress
virtual PString GetDestinationAddress()
OpalConnection::OnClosedMediaStream
virtual void OnClosedMediaStream(const OpalMediaStream &stream)
OpalConnection::GetAudioMute
virtual bool GetAudioMute(bool source, bool &mute)
OpalConnection::CallEndReason
Definition: connection.h:396
OpalConnection::GetOtherPartyConnectionAs
PSafePtr< cls > GetOtherPartyConnectionAs() const
Definition: connection.h:934
OpalConnection::SetCallEndReasonText
static void SetCallEndReasonText(CallEndReasonCodes reasonCode, const PString &newText)
OpalConnection::mediaTransportAddresses
MediaAddressesDict mediaTransportAddresses
Definition: connection.h:1821
OpalConnection::NumCallEndReasons
Call cleared because gatekeeper admission request failed.
Definition: connection.h:393
OpalConnection::RemoveMediaStream
bool RemoveMediaStream(OpalMediaStream &strm)
OpalConnection::IsNetworkConnection
virtual bool IsNetworkConnection() const =0
OpalConnection::e_SwitchingFromFaxMediaStreams
Definition: connection.h:1889
t140.h
OpalConnection::FastStartOptionDisable
Definition: connection.h:435
OpalConnection::CreateVideoOutputDevice
virtual PBoolean CreateVideoOutputDevice(const OpalMediaFormat &mediaFormat, PBoolean preview, PVideoOutputDevice *&device, PBoolean &autoDelete)
OpalConnection::GetAudioSignalLevel
virtual unsigned GetAudioSignalLevel(PBoolean source)
OpalConnection::SendUserInputAsRFC2833
Definition: connection.h:1315
OpalConnection::GetCallInfo
virtual PString GetCallInfo() const
OpalConnection::IsOriginating
PBoolean IsOriginating() const
Definition: connection.h:1456
OpalConnection::SendUserInputString
virtual PBoolean SendUserInputString(const PString &value)
OpalConnection::remotePartyAddress
PString remotePartyAddress
Definition: connection.h:1804
OpalConnection::sendUserInputMode
SendUserInputModes sendUserInputMode
Definition: connection.h:1810
OpalConnection::GetCalledPartyURL
virtual PString GetCalledPartyURL()
OpalConnection::GetMaxAudioJitterDelay
unsigned GetMaxAudioJitterDelay() const
Definition: connection.h:1661
OpalConnection::EndedByCapabilityExchange
Call failed as could not get enough bandwidth.
Definition: connection.h:374
OpalConnection::GetMediaTransportAddresses
MediaAddressesDict & GetMediaTransportAddresses()
Definition: connection.h:1699
OpalConnection::SendUserInputHookFlash
void SendUserInputHookFlash(unsigned duration=500)
Definition: connection.h:1396
OpalMediaStream
Definition: mediastrm.h:111
OpalConnection::EndedByLocalBusy
Call failed a security check and was ended.
Definition: connection.h:377
OpalConnection::ownerCall
OpalCall & ownerCall
Definition: connection.h:1787
OpalConnection::localPartyName
PString localPartyName
Definition: connection.h:1798
OpalConnection::AnswerCallProgress
As for AnswerCallDeferred but starts media channels.
Definition: connection.h:424
OpalConnection::SetAlertingType
virtual bool SetAlertingType(const PString &info)
OpalConnection::PromptUserInput
virtual PBoolean PromptUserInput(PBoolean play)
OpalConnection::AutoStartMap::m_initialised
bool m_initialised
Definition: connection.h:1879
OpalConnection::SendUserInputAsTone
Definition: connection.h:1314
OpalConnection::EndedByNoDialTone
Call cleared due to invalid conference ID.
Definition: connection.h:388
OpalConnection::GetAlertingType
virtual PString GetAlertingType() const
OpalConnection::H245inSetupOptionDisable
Definition: connection.h:443
OpalConnection::EndedByRemoteUser
Local endpoint declined to answer call.
Definition: connection.h:365
RFC4103Context
Definition: rfc4103.h:44
OpalConnection
Definition: connection.h:353
OpalConnection::GetRemotePartyName
const PString & GetRemotePartyName() const
Definition: connection.h:1523
OpalConnection::OnStartRecording
void OnStartRecording(OpalMediaPatch *patch)
OpalConnection::remoteProductInfo
OpalProductInfo remoteProductInfo
Definition: connection.h:1802
OpalConnection::ReleasedPhase
Media and control streams have been terminated.
Definition: connection.h:532
OpalConnection::SetSendUserInputMode
virtual void SetSendUserInputMode(SendUserInputModes mode)
OpalConnection::GetPrefixName
virtual PString GetPrefixName() const
OpalConnection::GetRedirectingParty
const PString & GetRedirectingParty() const
Definition: connection.h:1561
OpalConnection::GetLocalPartyName
const PString & GetLocalPartyName() const
Definition: connection.h:1496
OpalConnection::GetRemotePartyCallbackURL
const PString GetRemotePartyCallbackURL() const
Definition: connection.h:1569
OpalConnection::OnMediaCommand
virtual bool OnMediaCommand(OpalMediaStream &stream, const OpalMediaCommand &command)
OpalConnection::ProceedingPhase
The receipt of SETUP/INVITE has been acknowledged.
Definition: connection.h:526
OpalConnection::EndedByNoUser
Gatekeeper has cleared call.
Definition: connection.h:372
OpalConnection::GetProductInfo
const OpalProductInfo & GetProductInfo() const
Definition: connection.h:1482
OpalConnection::GetMinAudioJitterDelay
unsigned GetMinAudioJitterDelay() const
Definition: connection.h:1656
mediastrm.h
OpalConnection::AutoStartMap::AutoStartMap
AutoStartMap()
OpalConnection::AutoStartInfo
Definition: connection.h:1865
OpalConnection::GetAutoStart
virtual OpalMediaType::AutoStartMode GetAutoStart(const OpalMediaType &mediaType) const
OpalConnection::IsReleased
__inline bool IsReleased() const
Return true if connection is in the established phase.
Definition: connection.h:546
OpalConnection::GetStringOptions
const StringOptions & GetStringOptions() const
Get the string options associated with this connection.
Definition: connection.h:1710
OpalConnection::OnApplyStringOptions
virtual void OnApplyStringOptions()
Call back for connection to act on changed string options.
rtp.h
OpalConnection::GetSetupUpTime
const PTime & GetSetupUpTime() const
Definition: connection.h:1464
OpalTransportAddress
Definition: transports.h:149
OpalProductInfo::t35Extension
BYTE t35Extension
Definition: connection.h:328
OpalConnection::userInputAvailable
PSyncPoint userInputAvailable
Definition: connection.h:1812
OpalConnection::userInputString
PString userInputString
Definition: connection.h:1811
OpalConnection::ForwardingPhase
Connection is in the process of being forwarded.
Definition: connection.h:530
OpalConnection::GetNextSessionID
virtual unsigned GetNextSessionID(const OpalMediaType &mediaType, bool isSource)
OpalConnection::SetCallEndReason
virtual void SetCallEndReason(CallEndReason reason)
OpalConnection::StartMediaStreams
virtual void StartMediaStreams()
OpalConnection::PauseMediaStreams
virtual void PauseMediaStreams(bool paused)
OpalConnection::OnSwitchingFaxMediaStreams
virtual bool OnSwitchingFaxMediaStreams(bool toT38)
OpalConnection::StringOptions::ExtractFromURL
void ExtractFromURL(PURL &url)
OpalConnection::m_recordAudioNotifier
PNotifier m_recordAudioNotifier
Definition: connection.h:1855
OpalConnection::EndedByRefusal
Remote endpoint application cleared call.
Definition: connection.h:366
OpalConnection::CallEndReason::AsInteger
__inline int AsInteger() const
Definition: connection.h:407
OpalConnection::AttachRFC2833HandlerToPatch
virtual void AttachRFC2833HandlerToPatch(PBoolean isSource, OpalMediaPatch &patch)
OpalConnection::SendVideoUpdatePicture
virtual bool SendVideoUpdatePicture(unsigned sessionID=0, bool force=false) const
OpalConnection::SendDTMFAsString
Definition: connection.h:456
OpalConnection::GetMediaFormats
virtual OpalMediaFormatList GetMediaFormats() const
OpalConnection::CloseMediaStreams
virtual void CloseMediaStreams()
OpalConnection::originating
PBoolean originating
Definition: connection.h:1796
OpalConnection::DetectInBandDTMFOptionDisable
Definition: connection.h:447
OpalConnection::GarbageCollection
virtual bool GarbageCollection()
OpalConnection::SetAudioVolume
virtual PBoolean SetAudioVolume(PBoolean source, unsigned percentage)
OpalConnection::ZeroTime
Definition: connection.h:1906
OpalConnection::m_stringOptions
StringOptions m_stringOptions
Definition: connection.h:1851
OpalConnection::DisableRecording
virtual void DisableRecording()
OpalConnection::EndedByNoBandwidth
Call failed as could not find user (in GK)
Definition: connection.h:373
OpalConnection::AutoStartMap::GetAutoStart
OpalMediaType::AutoStartMode GetAutoStart(const OpalMediaType &mediaType) const
OpalConnection::EndedByQ931Cause
The remote failed temporarily app may retry.
Definition: connection.h:385
OpalConnection::OnStartMediaPatch
virtual void OnStartMediaPatch(OpalMediaPatch &patch)
OpalConnection::EndedByLocalUser
Definition: connection.h:362
OpalConnection::H245TunnelingOptionDisable
Definition: connection.h:439
OpalConnection::PDICTIONARY
PDICTIONARY(MediaAddressesDict, POrdinalKey, OpalTransportAddress)
OpalConnection::OnOpenMediaStream
virtual PBoolean OnOpenMediaStream(OpalMediaStream &stream)
OpalConnection::SendUserInputAsQ931
Definition: connection.h:1312
OpalConnection::ReadUserInput
virtual PString ReadUserInput(const char *terminators="#\r\n", unsigned lastDigitTimeout=4, unsigned firstDigitTimeout=30)
OpalProductInfo
Definition: connection.h:312
OpalConnection::EndedByDurationLimit
The remote ended the call with unmapped Q.931 cause code.
Definition: connection.h:386
OpalConnection::SetAlerting
virtual PBoolean SetAlerting(const PString &calleeName, PBoolean withMedia)=0
OpalConnection::GetRemotePartyAddress
const PString & GetRemotePartyAddress() const
Definition: connection.h:1544
OpalConnection::DetectInBandDTMFOptionMask
Definition: connection.h:449
OpalConnection::AutoStartMediaStreams
virtual void AutoStartMediaStreams(bool force=false)
OpalConnection::SendDTMFAsDefault
Definition: connection.h:455
OpalConnection::EndedByRemoteCongestion
Remote endpoint busy.
Definition: connection.h:380
OpalConnection::IsMediaBypassPossible
virtual PBoolean IsMediaBypassPossible(unsigned sessionID) const