31 #ifndef OPAL_OPAL_CONNECTION_H
32 #define OPAL_OPAL_CONNECTION_H
45 #include <ptclib/dtmf.h>
46 #include <ptclib/mime.h>
47 #include <ptlib/safecoll.h>
52 #include <ptclib/script.h>
60 class OpalEchoCanceler;
66 #define OPAL_URL_PARAM_PREFIX "OPAL-"
67 #define OPAL_MAKE_URL_PARAM(opt) ";" OPAL_URL_PARAM_PREFIX opt
68 #define OPAL_MAKE_URL_PARAM2(opt, val) OPAL_MAKE_URL_PARAM(opt) "=" val
70 #define OPAL_OPT_AUTO_START "AutoStart"
75 #define OPAL_OPT_CALL_IDENTIFIER "Call-Identifier"
76 #define OPAL_OPT_CALLING_PARTY_URL "Calling-Party-URL"
77 #define OPAL_OPT_CALLING_PARTY_NUMBER "Calling-Party-Number"
78 #define OPAL_OPT_CALLING_PARTY_NAME "Calling-Party-Name"
79 #define OPAL_OPT_CALLING_PARTY_DOMAIN "Calling-Party-Domain"
80 #define OPAL_OPT_CALLING_DISPLAY_NAME "Calling-Display-Name"
81 #define OPAL_OPT_CALLED_PARTY_NAME "Called-Party-Name"
82 #define OPAL_OPT_CALLED_DISPLAY_NAME "Called-Display-Name"
83 #define OPAL_OPT_REDIRECTING_PARTY "Redirecting-Party"
84 #define OPAL_OPT_PRESENTATION_BLOCK "Presentation-Block"
85 #define OPAL_OPT_INTERFACE "Interface"
86 #define OPAL_OPT_USER_INPUT_MODE "User-Input-Mode"
87 #define OPAL_OPT_ENABLE_INBAND_DTMF "EnableInbandDTMF"
89 #define OPAL_OPT_ENABLE_INBAND_DTMF "EnableInbandDTMF"
90 #define OPAL_OPT_DETECT_INBAND_DTMF "DetectInBandDTMF"
91 #define OPAL_OPT_SEND_INBAND_DTMF "SendInBandDTMF"
92 #define OPAL_OPT_DTMF_MULT "dtmfmult"
93 #define OPAL_OPT_DTMF_DIV "dtmfdiv"
94 #define OPAL_OPT_DISABLE_JITTER "Disable-Jitter"
95 #define OPAL_OPT_MAX_JITTER "Max-Jitter"
96 #define OPAL_OPT_MIN_JITTER "Min-Jitter"
97 #define OPAL_OPT_RECORD_AUDIO "Record-Audio"
98 #define OPAL_OPT_ALERTING_TYPE "Alerting-Type"
99 #define OPAL_OPT_REMOVE_CODEC "Remove-Codec"
105 #define OPAL_OPT_SILENCE_DETECT_MODE "Silence-Detect"
111 #define OPAL_OPT_CRYPTO_SUITES "Crypto-Suites"
132 #define OPAL_OPT_VIDUP_METHODS "Video-Update-Picture-Method"
133 #define OPAL_OPT_VIDUP_METHOD_OOB 1
134 #define OPAL_OPT_VIDUP_METHOD_RTCP 2
135 #define OPAL_OPT_VIDUP_METHOD_PLI 4
136 #define OPAL_OPT_VIDUP_METHOD_FIR 8
137 #define OPAL_OPT_VIDUP_METHOD_PREFER_PLI 16
138 #define OPAL_OPT_VIDUP_METHOD_DEFAULT 3
382 PCaselessString
name;
427 EndedByTransportFail,
432 EndedByCapabilityExchange,
433 EndedByCallForwarded,
434 EndedBySecurityDenial,
436 EndedByLocalCongestion,
438 EndedByRemoteCongestion,
442 EndedByTemporaryFailure,
444 EndedByDurationLimit,
445 EndedByInvalidConferenceID,
447 EndedByNoRingBackTone,
449 EndedByAcceptingCallWaiting,
450 EndedByGkAdmissionFailed,
452 EndedByCallCompletedElsewhere,
453 EndedByCertificateAuthority,
454 EndedByIllegalAddress,
458 struct CallEndReason {
460 CallEndReasonCodes reason = NumCallEndReasons,
465 ) :
code((CallEndReasonCodes)(reason&0xff)),
q931((reason>>8)&0xff) { }
467 __inline
operator CallEndReasonCodes()
const {
return code; }
488 AnswerCallAlertWithMedia,
489 AnswerCallDeferredWithMedia,
491 AnswerCallNowAndReleaseCurrent
557 const PString & token,
558 unsigned options = 0,
615 __inline Phases
GetPhase()
const { PWaitAndSignal mutex(m_phaseMutex);
return m_phase; }
669 PSyncPoint * sync = NULL
698 const PString & remoteParty
823 const PString & calleeName,
844 const PString & callerName
858 AnswerCallResponse response
950 const PStringToString & info,
964 CallEndReason reason = EndedByLocalUser,
965 bool synchronous =
false
1010 const PString & forwardParty
1093 bool transfer =
false
1096 #if OPAL_T38_CAPABILITY
1099 virtual bool SwitchFaxMediaStreams(
1107 virtual void OnSwitchedFaxMediaStreams(
1116 virtual bool OnSwitchingFaxMediaStreams(
1119 #endif // OPAL_T38_CAPABILITY
1199 const PString & streamID,
1236 #endif // OPAL_STATISTICS
1267 const PString & reason
1371 unsigned & percentage
1445 SendUserInputAsQ931,
1446 SendUserInputAsString,
1447 SendUserInputAsTone,
1448 SendUserInputAsRFC2833,
1449 SendUserInputAsInlineRFC2833 = SendUserInputAsRFC2833,
1450 SendUserInputInBand,
1451 SendUserInputAsProtocolDefault
1476 const PString & value
1494 unsigned duration = 0
1504 const PString & value
1531 unsigned duration = 500
1537 unsigned timeout = 30
1545 const PString & input
1551 const char * terminators =
"YX#\r\n",
1552 unsigned lastDigitTimeout = 4,
1553 unsigned firstDigitTimeout = 30
1608 const PString & newChairURI,
1644 const PString & newToken
1815 virtual PMultiPartList
GetExtraCallInfo()
const {
return PMultiPartList(); }
1898 OpalEchoCanceler * GetEchoCanceler()
const {
return m_echoCanceler; }
1960 PDECLARE_MUTEX( m_phaseMutex);
1984 OpalEchoCanceler * m_echoCanceler;
1993 : PKey<uint64_t>(sessionID + (isSource ? 0x100000000ULL : 0x200000000ULL))
1996 : PKey<uint64_t>(stream.GetSessionID() + (stream.IsSource() ? 0x100000000ULL : 0x200000000ULL))
2000 typedef PSafeDictionary<StreamKey, OpalMediaStream>
StreamDict;
2013 PDTMFDecoder m_dtmfDecoder;
2014 bool m_detectInBandDTMF;
2015 unsigned m_dtmfScaleMultiplier;
2016 unsigned m_dtmfScaleDivisor;
2017 PNotifier m_dtmfDetectNotifier;
2020 bool m_sendInBandDTMF;
2022 PBYTEArray m_inBandDTMF;
2023 PINDEX m_emittedInBandDTMF;
2024 PDECLARE_MUTEX(m_inBandMutex);
2025 PNotifier m_dtmfSendNotifier;
2042 PString m_scriptTableName;
2044 PDECLARE_ScriptFunctionNotifier(
OpalConnection, ScriptSetOption);
2045 PDECLARE_ScriptFunctionNotifier(
OpalConnection, ScriptGetLocalPartyURL);
2046 PDECLARE_ScriptFunctionNotifier(
OpalConnection, ScriptGetRemotePartyURL);
2047 PDECLARE_ScriptFunctionNotifier(
OpalConnection, ScriptGetCalledPartyURL);
2048 PDECLARE_ScriptFunctionNotifier(
OpalConnection, ScriptGetRedirectingParty);
2049 #endif // OPAL_SCRIPT
2060 PDECLARE_MUTEX( m_mediaSessionFailedMutex);
2066 P_REMOVE_VIRTUAL(PBoolean, IsConnectionOnHold(),
false);
2067 P_REMOVE_VIRTUAL_VOID(OnMediaPatchStart(
unsigned,
bool));
2068 P_REMOVE_VIRTUAL_VOID(OnMediaPatchStop(
unsigned,
bool));
2073 P_REMOVE_VIRTUAL(
bool, HoldConnection(),
false);
2074 P_REMOVE_VIRTUAL(
bool, RetrieveConnection(),
false);
2075 P_REMOVE_VIRTUAL(
bool, IsConnectionOnHold(
bool),
false);
2077 P_REMOVE_VIRTUAL(PBoolean, IsMediaBypassPossible(
unsigned)
const,
false);
2083 P_REMOVE_VIRTUAL_VOID(OnSwitchedFaxMediaStreams(
bool));
2088 P_REMOVE_VIRTUAL(PNatMethod *, GetNatMethod(
const PIPSocket::Address &)
const,NULL);
2090 P_REMOVE_VIRTUAL(
bool,Hold(
bool,
bool),
false);
2095 #endif // OPAL_OPAL_CONNECTION_H
void ExtractFromString(PString &str)
PString m_callToken
Definition: connection.h:1968
const PString & GetCalledPartyNumber() const
Definition: connection.h:1806
Definition: connection.h:523
const PString & GetCalledPartyName() const
Definition: connection.h:1790
virtual bool OnTransferNotify(const PStringToString &info, const OpalConnection *transferringConnection)
void SetProductInfo(const OpalProductInfo &info)
Definition: connection.h:1683
virtual void OnReleased()
bool GetStatistics(const OpalMediaType &mediaType, bool source, OpalMediaStatistics &statistics) const
Get media statistics of the type, and of the specifed direction.
virtual void OnUserInputString(const PString &value)
Definition: endpoint.h:65
P_DEPRECATED const PString GetRemotePartyCallbackURL() const
Definition: connection.h:1759
PCaselessString name
Definition: connection.h:386
Definition: connection.h:524
virtual void OnUserInputTone(char tone, unsigned duration)
virtual bool SetBandwidthUsed(OpalBandwidth::Direction dir, OpalBandwidth releasedBandwidth, OpalBandwidth requiredBandwidth)
virtual void OnHold(bool fromRemote, bool onHold)
virtual bool SetBandwidthAvailable(OpalBandwidth::Direction dir, OpalBandwidth availableBandwidth)
Definition: connection.h:519
virtual bool ExecuteMediaCommand(const OpalMediaCommand &command, bool aync=false) const
virtual OpalMediaStream * CreateMediaStream(const OpalMediaFormat &mediaFormat, unsigned sessionID, PBoolean isSource)
virtual void SetToken(const PString &newToken)
PSafeList< OpalMediaTransport > m_mediaTransports
Definition: connection.h:2007
virtual bool OnChangedPresentationRole(const PString &newChairURI, bool request)
OpalEndPoint & GetEndPoint() const
Definition: connection.h:1633
void ClearCall(CallEndReason reason=EndedByLocalUser, PSyncPoint *sync=NULL)
virtual void OnAlerting()
const PString & GetDisplayName() const
Definition: connection.h:1705
Definition: connection.h:525
ZeroTime m_phaseTime[NumPhases]
Definition: connection.h:2061
ZeroTime()
Definition: connection.h:2059
Options
Definition: connection.h:500
OpalCall & GetCall() const
Definition: connection.h:1637
void SetAudioJitterDelay(unsigned minDelay, unsigned maxDelay)
virtual PBoolean ForwardCall(const PString &forwardParty)
virtual void ClearCallSynchronous(PSyncPoint *sync, CallEndReason reason=EndedByLocalUser)
PCaselessString GetRemoteApplication() const
Definition: connection.h:1764
void InternalOnRecordAudio(PString key, PAutoPtr< RTP_DataFrame > frame)
OpalProductInfo m_remoteProductInfo
Definition: connection.h:1975
WORD manufacturerCode
Definition: connection.h:392
bool InternalOnConnected()
PCaselessString version
Definition: connection.h:387
CallEndReason GetCallEndReason() const
virtual PString GetIdentifier() const
virtual OpalMediaFormatList GetLocalMediaFormats()
Definition: connection.h:527
friend ostream & operator<<(ostream &strm, const OpalProductInfo &info)
Definition: connection.h:517
virtual PBoolean SendUserInputTone(char tone, unsigned duration=0)
unsigned q931
Definition: connection.h:478
OpalSilenceDetector * GetSilenceDetector() const
Definition: connection.h:1897
void SetStringOptions(const StringOptions &options, bool overwrite)
Set the string options associated with this connection.
virtual void OnPauseMediaStream(OpalMediaStream &strm, bool paused)
virtual void OnFailedMediaStream(bool fromRemote, const PString &reason)
virtual PString GetLocalPartyURL() const
OpalMediaFormat m_filterMediaFormat
Definition: connection.h:1990
OpalCall & m_ownerCall
Definition: connection.h:1960
PString m_remotePartyNumber
Definition: connection.h:1976
virtual AnswerCallResponse OnAnswerCall(const PString &callerName)
bool InternalOnEstablished()
void SetRedirectingParty(const PString &party)
Definition: connection.h:1782
PString m_redirectingParty
Definition: connection.h:1977
OpalConnection(OpalCall &call, OpalEndPoint &endpoint, const PString &token, unsigned options=0, OpalConnection::StringOptions *stringOptions=NULL)
virtual bool IsOnHold(bool fromRemote) const
virtual void EnableRecording()
OpalMediaFormatList m_localMediaFormats
Definition: connection.h:1992
PString m_calledPartyName
Definition: connection.h:1980
void OnUserInputStringCallback(PString value)
Definition: connection.h:1510
virtual PString GetUserInput(unsigned timeout=30)
virtual void SetUserInput(const PString &input)
Definition: connection.h:511
PBoolean m_originating
Definition: connection.h:1969
PString m_remotePartyName
Definition: connection.h:1973
virtual bool GetConferenceState(OpalConferenceState *state) const
virtual void OnPatchMediaStream(PBoolean isSource, OpalMediaPatch &patch)
Definition: connection.h:518
unsigned m_minJitterDelay
Minimum delay in milliseconds.
Definition: jitter.h:57
virtual PBoolean OnIncomingConnection(unsigned int options, OpalConnection::StringOptions *stringOptions)
OpalBandwidth GetBandwidthAvailable(OpalBandwidth::Direction dir) const
void SetDisplayName(const PString &name)
Definition: connection.h:1709
PString oid
Definition: connection.h:394
Definition: silencedetect.h:43
P_DECLARE_TRACED_ENUM_EX(CallEndReasonCodes, NumCallEndReasons, EndedByLocalUser, 0, 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, EndedByMediaFailed, EndedByCallCompletedElsewhere, EndedByCertificateAuthority, EndedByIllegalAddress, EndedByCustomCode)
Definition: connection.h:510
PString m_calledPartyNumber
Definition: connection.h:1979
OpalSilenceDetector * m_silenceDetector
Definition: connection.h:1986
virtual PBoolean SetConnected()
Definition: connection.h:503
void SetQ931Cause(unsigned v)
Definition: connection.h:693
void operator=(const OpalProductInfo &other)
virtual PString GetRemotePartyURL() const
virtual void OnConnected()
virtual void OnStartRecording(OpalMediaPatch *patch)
virtual void Release(CallEndReason reason=EndedByLocalUser, bool synchronous=false)
void SetCalledPartyName(const PString &name)
Definition: connection.h:1798
unsigned custom
Definition: connection.h:479
virtual void OnStopMediaPatch(OpalMediaPatch &patch)
virtual void AnsweringCall(AnswerCallResponse response)
OpalEndPoint & m_endpoint
Definition: connection.h:1961
Definition: connection.h:502
std::set< unsigned > m_mediaSessionFailed
Definition: connection.h:2063
virtual PStringArray GetMediaCryptoSuites() const
PString m_recordingFilename
Definition: connection.h:2036
virtual PBoolean GetAudioVolume(PBoolean source, unsigned &percentage)
virtual void OnProceeding()
Definition: connection.h:507
virtual OpalMediaStreamPtr OpenMediaStream(const OpalMediaFormat &mediaFormat, unsigned sessionID, bool isSource)
Definition: mediafmt.h:60
virtual bool RequireSymmetricMediaStreams() const
Definition: connection.h:514
Definition: connection.h:530
__inline bool operator!=(const OpalProductInfo &other) const
Definition: connection.h:376
PNotifier m_recordVideoNotifier
Definition: connection.h:2039
virtual bool TransferConnection(const PString &remoteParty)
void SetPhase(Phases phaseToSet)
void PrintOn(ostream &strm) const
static const OpalProductInfo & Default()
virtual PString GetSupportedFeatures() const
virtual PBoolean SetAlerting(const PString &calleeName, PBoolean withMedia)
virtual void AutoStartMediaStreams(bool transfer=false)
virtual SendUserInputModes GetRealSendUserInputMode() const
Definition: connection.h:1471
PString GetCallEndReasonText() const
Definition: connection.h:648
virtual bool GetMediaTransportAddresses(OpalConnection &otherConnection, unsigned sessionId, const OpalMediaType &mediaType, OpalTransportAddressArray &transports) const
virtual bool IsPresentationBlocked() const
const PTime & GetConnectionEndTime() const
Definition: connection.h:1675
P_DEPRECATED PString GetRemotePartyAddress() const
Definition: connection.h:1756
virtual void OnEstablished()
bool InternalRelease(CallEndReason reason)
BYTE t35CountryCode
Definition: connection.h:390
Direction
Definition: mediafmt.h:64
virtual PBoolean SetUpConnection()
OpalMediaType::AutoStartMap m_autoStartInfo
Definition: connection.h:2043
CallEndReason(CallEndReasonCodes reason=NumCallEndReasons, unsigned cause=0)
Definition: connection.h:463
virtual void SetLocalPartyName(const PString &name)
PCaselessString vendor
Definition: connection.h:385
const PString & GetRemotePartyNumber() const
Definition: connection.h:1734
void SetRemotePartyName(const PString &name)
Definition: connection.h:1724
void SetRemoteProductInfo(const OpalProductInfo &info)
Definition: connection.h:1772
virtual void AdjustMediaFormats(bool local, const OpalConnection *otherConnection, OpalMediaFormatList &mediaFormats) const
unsigned GetQ931Cause() const
Definition: connection.h:688
PCaselessString AsString() const
OpalMediaStreamPtr GetMediaStream(const PString &streamID, bool source) const
void InternalOnRecordVideo(PString key, PAutoPtr< RTP_DataFrame > frame)
CallEndReasonCodes code
Definition: connection.h:475
virtual bool RequestPresentationRole(bool release)
__inline Phases GetPhase() const
Definition: connection.h:619
__inline bool IsEstablished() const
Return true if connection is in the established phase.
Definition: connection.h:622
virtual bool HoldRemote(bool placeOnHold)
const PTime & GetConnectionStartTime() const
Definition: connection.h:1671
const OpalProductInfo & GetRemoteProductInfo() const
Definition: connection.h:1768
OpalJitterBuffer::Params m_jitterParams
Definition: connection.h:2009
PString m_localPartyName
Definition: connection.h:1971
const PTime & GetAlertingTime() const
Definition: connection.h:1665
virtual bool SetAudioMute(bool source, bool mute)
StringOptions()
Definition: connection.h:533
virtual bool HasPresentationRole() const
Definition: connection.h:1994
virtual PString GetRemoteIdentity() const
Definition: connection.h:1753
Definition: rfc2833.h:108
void InternalSetAsOriginating()
PDECLARE_NOTIFIER(RTP_DataFrame, OpalConnection, OnRecordAudio)
ostream & operator<<(ostream &strm, OpalSilenceDetector::Mode mode)
virtual void OnStopRecording(OpalMediaPatch *patch)
virtual PBoolean OnSetUpConnection()
virtual SendUserInputModes GetSendUserInputMode() const
Definition: connection.h:1464
CallEndReason m_callEndReason
Definition: connection.h:1978
PCaselessString comments
Definition: connection.h:388
const PString & GetToken() const
Definition: connection.h:1641
void CopyPartyNames(const OpalConnection &other)
virtual bool SetBandwidthAllocated(OpalBandwidth::Direction dir, OpalBandwidth newBandwidth)
virtual PINDEX GetMaxRtpPayloadSize() const
const PTime & GetPhaseTime(Phases phase) const
Definition: connection.h:1657
Definition: connection.h:506
PSafePtr< OpalConnection > GetOtherPartyConnection() const
virtual PString GetDestinationAddress()
virtual void OnClosedMediaStream(const OpalMediaStream &stream)
virtual bool GetAudioMute(bool source, bool &mute)
Definition: connection.h:462
PSafePtr< cls > GetOtherPartyConnectionAs() const
Definition: connection.h:1023
static void SetCallEndReasonText(CallEndReasonCodes reasonCode, const PString &newText)
OpalProductInfo m_productInfo
Definition: connection.h:1970
bool RemoveMediaStream(OpalMediaStream &strm)
OpalBandwidth m_rxBandwidthAvailable
Definition: connection.h:2011
virtual bool IsNetworkConnection() const =0
Definition: connection.h:501
virtual unsigned GetAudioSignalLevel(PBoolean source)
virtual PString GetCallInfo() const
PBoolean IsOriginating() const
Definition: connection.h:1653
virtual PBoolean SendUserInputString(const PString &value)
bool CloseMediaStream(unsigned sessionId, bool source)
PString m_userInputString
Definition: connection.h:1983
virtual PString GetCalledPartyURL()
unsigned GetMaxAudioJitterDelay() const
Definition: connection.h:1886
void InternalExecuteMediaCommand(OpalMediaCommand *command)
void SendUserInputHookFlash(unsigned duration=500)
Definition: connection.h:1534
virtual bool SetAlertingType(const PString &info)
virtual PBoolean PromptUserInput(PBoolean play)
P_DECLARE_TRACED_ENUM(AnswerCallResponse, AnswerCallNow, AnswerCallDenied, AnswerCallPending, AnswerCallDeferred, AnswerCallAlertWithMedia, AnswerCallDeferredWithMedia, AnswerCallProgress, AnswerCallNowAndReleaseCurrent)
virtual PString GetAlertingType() const
virtual bool OnMediaFailed(unsigned sessionId)
Definition: connection.h:509
bool AllMediaFailed() const
PString m_remotePartyURL
Definition: connection.h:1974
Definition: connection.h:415
const PString & GetRemotePartyName() const
Definition: connection.h:1720
P_DECLARE_STREAMABLE_ENUM(Phases, UninitialisedPhase, SetUpPhase, ProceedingPhase, AlertingPhase, ConnectedPhase, EstablishedPhase, ForwardingPhase, ReleasingPhase, ReleasedPhase)
PString m_displayName
Definition: connection.h:1972
virtual void SetSendUserInputMode(SendUserInputModes mode)
virtual PString GetPrefixName() const
const PString & GetRedirectingParty() const
Definition: connection.h:1777
const PString & GetLocalPartyName() const
Definition: connection.h:1693
virtual bool OnMediaCommand(OpalMediaStream &stream, const OpalMediaCommand &command)
const OpalProductInfo & GetProductInfo() const
Definition: connection.h:1679
unsigned GetMinAudioJitterDelay() const
Definition: connection.h:1881
virtual PMultiPartList GetExtraCallInfo() const
Definition: connection.h:1819
virtual OpalMediaType::AutoStartMode GetAutoStart(const OpalMediaType &mediaType) const
__inline bool IsReleased() const
Return true if connection is in the established phase.
Definition: connection.h:625
const StringOptions & GetStringOptions() const
Get the string options associated with this connection.
Definition: connection.h:1922
virtual void OnApplyStringOptions()
Call back for connection to act on changed string options.
const PTime & GetSetupUpTime() const
Definition: connection.h:1661
Definition: transports.h:151
Definition: transports.h:326
BYTE t35Extension
Definition: connection.h:391
bool operator==(const OpalProductInfo &other) const
StreamKey(unsigned sessionID, bool isSource)
Definition: connection.h:1996
virtual unsigned GetNextSessionID(const OpalMediaType &mediaType, bool isSource)
virtual void SetCallEndReason(CallEndReason reason)
virtual void StartMediaStreams()
virtual void PauseMediaStreams(bool paused)
void ExtractFromURL(PURL &url)
PNotifier m_recordAudioNotifier
Definition: connection.h:2037
__inline int AsInteger() const
Definition: connection.h:473
Definition: connection.h:522
virtual OpalMediaFormatList GetMediaFormats() const
virtual void CloseMediaStreams()
virtual OpalTransportAddress GetRemoteAddress() const
Definition: connection.h:1738
Definition: connection.h:513
virtual bool GarbageCollection()
virtual PBoolean SetAudioVolume(PBoolean source, unsigned percentage)
Definition: connection.h:2056
StringOptions m_stringOptions
Definition: connection.h:2033
PSyncPoint m_userInputAvailable
Definition: connection.h:1984
PSafeDictionary< StreamKey, OpalMediaStream > StreamDict
Definition: connection.h:2004
virtual void DisableRecording()
SendUserInputModes m_sendUserInputMode
Definition: connection.h:1982
virtual void OnStartMediaPatch(OpalMediaPatch &patch)
Definition: connection.h:505
virtual PBoolean OnOpenMediaStream(OpalMediaStream &stream)
void InternalCreatedMediaTransport(const OpalMediaTransportPtr &transport)
Definition: connection.h:1956
PObject * Clone() const
Definition: connection.h:2002
Definition: connection.h:358
void InternalOnReleased()
unsigned m_maxJitterDelay
Maximum delay in milliseconds.
Definition: jitter.h:58
Definition: connection.h:515
virtual OpalBandwidth GetBandwidthUsed(OpalBandwidth::Direction dir) const
virtual PString ReadUserInput(const char *terminators="YX#\r\n", unsigned lastDigitTimeout=4, unsigned firstDigitTimeout=30)
StreamDict m_mediaStreams
Definition: connection.h:2005
OpalBandwidth m_txBandwidthAvailable
Definition: connection.h:2012
Definition: connection.h:521