h323con.h
Go to the documentation of this file.
/*
* h323con.h
*
* H.323 protocol handler
*
* Open H323 Library
*
* Copyright (c) 1998-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 H323 Library.
*
* The Initial Developer of the Original Code is Equivalence Pty. Ltd.
*
* Portions of this code were written with the assisance of funding from
* Vovida Networks, Inc. http://www.vovida.com.
*
* Contributor(s): ______________________________________.
*
* $Revision: 28579 $
* $Author: rjongbloed $
* $Date: 2012-11-25 23:46:48 -0600 (Sun, 25 Nov 2012) $
*/
#ifndef OPAL_H323_H323CON_H
#define OPAL_H323_H323CON_H
#ifdef P_USE_PRAGMA
#pragma interface
#endif
#include <opal/buildopts.h>
#if OPAL_H323
#include <opal/rtpconn.h>
#include <opal/guid.h>
#include <opal/buildopts.h>
#include <h323/h323caps.h>
#include <ptclib/dtmf.h>
/* The following classes have forward references to avoid including the VERY
large header files for H225 and H245. If an application requires access
to the protocol classes they can include them, but for simple usage their
inclusion can be avoided.
*/
class PPER_Stream;
class PASN_OctetString;
class H225_EndpointType;
class H225_TransportAddress;
class H225_ArrayOf_PASN_OctetString;
class H225_ProtocolIdentifier;
class H225_AdmissionRequest;
class H225_AdmissionConfirm;
class H225_AdmissionReject;
class H225_InfoRequestResponse;
class H225_DisengageRequest;
class H225_FeatureSet;
class H245_TerminalCapabilitySet;
class H245_TerminalCapabilitySetReject;
class H245_OpenLogicalChannel;
class H245_OpenLogicalChannelAck;
class H245_TransportAddress;
class H245_UserInputIndication;
class H245_RequestMode;
class H245_RequestModeAck;
class H245_RequestModeReject;
class H245_ModeDescription;
class H245_ArrayOf_ModeDescription;
class H245_SendTerminalCapabilitySet;
class H245_MultiplexCapability;
class H245_FlowControlCommand;
class H245_MiscellaneousCommand;
class H245_MiscellaneousIndication;
class H245_JitterIndication;
class H245_ArrayOf_GenericParameter;
class H323SignalPDU;
class H323ControlPDU;
class H323EndPoint;
class H323TransportAddress;
class H235Authenticators;
class H245NegMasterSlaveDetermination;
class H245NegTerminalCapabilitySet;
class H245NegLogicalChannels;
class H245NegRequestMode;
class H245NegRoundTripDelay;
class H450xDispatcher;
class H4502Handler;
class H4504Handler;
class H4506Handler;
class H4507Handler;
class H45011Handler;
class OpalCall;
#if OPAL_H460
class H460_FeatureSet;
#endif
#define OPAL_OPT_Q931_BEARER_CAPS "Q931-Bearer-Caps"
class H323Connection : public OpalRTPConnection
{
PCLASSINFO(H323Connection, OpalRTPConnection);
public:
H323Connection(
OpalCall & call,
H323EndPoint & endpoint,
const PString & token,
const PString & alias,
const H323TransportAddress & address,
unsigned options = 0,
OpalConnection::StringOptions * stringOptions = NULL
);
~H323Connection();
virtual bool IsNetworkConnection() const { return true; }
virtual PString GetPrefixName() const;
virtual void OnApplyStringOptions();
virtual PBoolean SetUpConnection();
virtual PBoolean SetAlerting(
const PString & calleeName,
PBoolean withMedia
);
virtual PBoolean SetConnected();
virtual PBoolean SetProgressed();
virtual void OnEstablished();
virtual void OnReleased();
virtual PString GetDestinationAddress();
virtual PString GetAlertingType() const;
virtual bool SetAlertingType(const PString & info);
unsigned GetProgressIndicator() const { return m_progressIndicator; }
void SetProgressIndicator(unsigned indicator) { m_progressIndicator = indicator; }
virtual OpalMediaFormatList GetMediaFormats() const;
virtual unsigned GetNextSessionID(
const OpalMediaType & mediaType,
bool isSource
);
#if OPAL_FAX
virtual bool SwitchFaxMediaStreams(
bool toT38
);
#endif
virtual OpalMediaStreamPtr OpenMediaStream(
const OpalMediaFormat & mediaFormat,
unsigned sessionID,
bool isSource
);
virtual bool CloseMediaStream(
OpalMediaStream & stream
);
virtual PBoolean GetMediaInformation(
unsigned sessionID,
MediaInformation & info
) const;
void AttachSignalChannel(
const PString & token,
H323Transport * channel,
PBoolean answeringCall
);
PBoolean WriteSignalPDU(
H323SignalPDU & pdu
);
virtual void HandleSignallingChannel();
virtual PBoolean HandleSignalPDU(
H323SignalPDU & pdu
);
virtual void HandleTunnelPDU(
H323SignalPDU * txPDU
);
virtual PBoolean OnReceivedSignalSetup(
const H323SignalPDU & pdu
);
virtual PBoolean OnReceivedSignalSetupAck(
const H323SignalPDU & pdu
);
virtual PBoolean OnReceivedSignalInformation(
const H323SignalPDU & pdu
);
virtual PBoolean OnReceivedCallProceeding(
const H323SignalPDU & pdu
);
virtual PBoolean OnReceivedProgress(
const H323SignalPDU & pdu
);
virtual PBoolean OnReceivedAlerting(
const H323SignalPDU & pdu
);
virtual PBoolean OnReceivedSignalConnect(
const H323SignalPDU & pdu
);
virtual PBoolean OnReceivedFacility(
const H323SignalPDU & pdu
);
virtual PBoolean OnReceivedSignalNotify(
const H323SignalPDU & pdu
);
virtual PBoolean OnReceivedSignalStatus(
const H323SignalPDU & pdu
);
virtual PBoolean OnReceivedStatusEnquiry(
const H323SignalPDU & pdu
);
virtual void OnReceivedReleaseComplete(
const H323SignalPDU & pdu
);
virtual PBoolean OnUnknownSignalPDU(
const H323SignalPDU & pdu
);
virtual void OnSendARQ(
H225_AdmissionRequest & arq
);
virtual void OnReceivedACF(
const H225_AdmissionConfirm & acf
);
virtual void OnReceivedARJ(
const H225_AdmissionReject & arj
);
virtual void OnSendIRR(
H225_InfoRequestResponse & irr
) const;
virtual void OnSendDRQ(
H225_DisengageRequest & drq
) const;
virtual PBoolean OnIncomingCall(
const H323SignalPDU & setupPDU,
H323SignalPDU & alertingPDU
);
virtual PBoolean ForwardCall(
const PString & forwardParty
);
virtual bool TransferConnection(
const PString & remoteParty
);
virtual bool Hold(
bool fromRemote,
bool placeOnHold
);
virtual bool IsOnHold(
bool fromRemote
);
#if OPAL_H450
bool TransferCall(
const PString & remoteParty,
const PString & callIdentity = PString::Empty()
);
void ConsultationTransfer(
const PString & primaryCallToken
);
virtual void HandleConsultationTransfer(
const PString & callIdentity,
H323Connection & incoming
);
PBoolean IsTransferringCall() const;
PBoolean IsTransferredCall() const;
virtual void HandleTransferCall(
const PString & token,
const PString & identity
);
int GetCallTransferInvokeId();
virtual void HandleCallTransferFailure(
const int returnError
);
void SetAssociatedCallToken(
const PString & token
);
virtual void OnConsultationTransferSuccess(
H323Connection & secondaryCall
);
virtual void IntrudeCall(
unsigned capabilityLevel
);
virtual void HandleIntrudeCall(
const PString & token,
const PString & identity
);
void SetCallIntrusion() { isCallIntrusion = true; }
PBoolean IsCallIntrusion() { return isCallIntrusion; }
unsigned GetLocalCallIntrusionProtectionLevel() { return callIntrusionProtectionLevel; }
virtual PBoolean GetRemoteCallIntrusionProtectionLevel(
const PString & callToken,
unsigned callIntrusionProtectionLevel
);
virtual void SetIntrusionImpending();
virtual void SetForcedReleaseAccepted();
virtual void SetIntrusionNotAuthorized();
void SendCallWaitingIndication(
const unsigned nbOfAddWaitingCalls = 0
);
#endif
virtual AnswerCallResponse OnAnswerCall(
const PString & callerName,
const H323SignalPDU & setupPDU,
H323SignalPDU & connectPDU,
H323SignalPDU & progressPDU
);
virtual AnswerCallResponse OnAnswerCall(
const PString & callerName
);
void AnsweringCall(
AnswerCallResponse response
);
virtual CallEndReason SendSignalSetup(
const PString & alias,
const H323TransportAddress & address
);
virtual PBoolean OnSendSignalSetup(
H323SignalPDU & setupPDU
);
virtual PBoolean OnSendCallProceeding(
H323SignalPDU & callProceedingPDU
);
virtual PBoolean OnSendReleaseComplete(
H323SignalPDU & releaseCompletePDU
);
virtual PBoolean OnAlerting(
const H323SignalPDU & alertingPDU,
const PString & user
);
virtual PBoolean OnInsufficientDigits();
virtual void SendMoreDigits(
const PString & digits
);
virtual PBoolean OnOutgoingCall(
const H323SignalPDU & connectPDU
);
virtual PBoolean SendFastStartAcknowledge(
H225_ArrayOf_PASN_OctetString & array
);
virtual PBoolean HandleFastStartAcknowledge(
const H225_ArrayOf_PASN_OctetString & array
);
virtual PBoolean CreateOutgoingControlChannel(
const H225_TransportAddress & h245Address
);
virtual PBoolean CreateIncomingControlChannel(
H225_TransportAddress & h245Address
);
virtual PBoolean WriteControlPDU(
const H323ControlPDU & pdu
);
virtual PBoolean StartControlNegotiations();
virtual void HandleControlChannel();
virtual PBoolean HandleControlData(
PPER_Stream & strm
);
virtual PBoolean HandleControlPDU(
const H323ControlPDU & pdu
);
virtual PBoolean OnUnknownControlPDU(
const H323ControlPDU & pdu
);
virtual PBoolean OnH245Request(
const H323ControlPDU & pdu
);
virtual PBoolean OnH245Response(
const H323ControlPDU & pdu
);
virtual PBoolean OnH245Command(
const H323ControlPDU & pdu
);
virtual PBoolean OnH245Indication(
const H323ControlPDU & pdu
);
virtual PBoolean OnH245_SendTerminalCapabilitySet(
const H245_SendTerminalCapabilitySet & pdu
);
virtual PBoolean OnH245_FlowControlCommand(
const H245_FlowControlCommand & pdu
);
virtual PBoolean OnH245_MiscellaneousCommand(
const H245_MiscellaneousCommand & pdu
);
virtual PBoolean OnH245_MiscellaneousIndication(
const H245_MiscellaneousIndication & pdu
);
virtual PBoolean OnH245_JitterIndication(
const H245_JitterIndication & pdu
);
#if OPAL_H239
virtual bool OnH239Message(
unsigned subMessage,
const H245_ArrayOf_GenericParameter & params
);
virtual bool OnH239FlowControlRequest(
unsigned logicalChannel,
unsigned bitRate
);
virtual bool OnH239FlowControlResponse(
unsigned logicalChannel,
bool rejected
);
virtual bool OnH239PresentationRequest(
unsigned logicalChannel,
unsigned symmetryBreaking,
unsigned terminalLabel
);
virtual bool SendH239PresentationRequest(
unsigned logicalChannel,
unsigned symmetryBreaking,
unsigned terminalLabel
);
virtual bool OnH239PresentationResponse(
unsigned logicalChannel,
unsigned terminalLabel,
bool rejected
);
virtual bool OnH239PresentationRelease(
unsigned logicalChannel,
unsigned terminalLabel
);
virtual bool SendH239PresentationRelease(
unsigned logicalChannel,
unsigned terminalLabel
);
virtual bool OnH239PresentationIndication(
unsigned logicalChannel,
unsigned terminalLabel
);
#endif
enum ControlProtocolErrors {
e_MasterSlaveDetermination,
e_CapabilityExchange,
e_LogicalChannel,
e_ModeRequest,
e_RoundTripDelay
};
virtual PBoolean OnControlProtocolError(
ControlProtocolErrors errorSource,
const void * errorData = NULL
);
virtual void OnSendCapabilitySet(
H245_TerminalCapabilitySet & pdu
);
virtual PBoolean OnReceivedCapabilitySet(
const H323Capabilities & remoteCaps,
const H245_MultiplexCapability * muxCap,
H245_TerminalCapabilitySetReject & reject
);
virtual bool SendCapabilitySet(
PBoolean empty
);
virtual bool IsSendingCapabilitySet();
virtual void OnSetLocalCapabilities();
PBoolean IsH245Master() const;
void StartRoundTripDelay();
PTimeInterval GetRoundTripDelay() const;
virtual void OnSelectLogicalChannels();
virtual void SelectDefaultLogicalChannel(
const OpalMediaType & mediaType,
unsigned sessionID
);
virtual void SelectFastStartChannels(
unsigned sessionID,
PBoolean transmitter,
PBoolean receiver
);
virtual void StartFastStartChannel(
unsigned sessionID,
H323Channel::Directions direction
);
virtual PBoolean OpenLogicalChannel(
const H323Capability & capability,
unsigned sessionID,
H323Channel::Directions dir
);
virtual void SendFlowControlCommand(
unsigned channelNumber,
unsigned newBitRate
);
virtual PBoolean OnOpenLogicalChannel(
const H245_OpenLogicalChannel & openPDU,
H245_OpenLogicalChannelAck & ackPDU,
unsigned & errorCode
);
virtual PBoolean OnConflictingLogicalChannel(
H323Channel & channel
);
virtual H323Channel * CreateLogicalChannel(
const H245_OpenLogicalChannel & open,
PBoolean startingFast,
unsigned & errorCode
);
virtual H323Channel * CreateRealTimeLogicalChannel(
const H323Capability & capability,
H323Channel::Directions dir,
unsigned sessionID,
const H245_H2250LogicalChannelParameters * param,
RTP_QOS * rtpqos = NULL
);
virtual H323_RTPChannel * CreateRTPChannel(
const H323Capability & capability,
H323Channel::Directions direction,
RTP_Session & rtp
);
virtual PBoolean OnCreateLogicalChannel(
const H323Capability & capability,
H323Channel::Directions dir,
unsigned & errorCode
);
virtual PBoolean OnStartLogicalChannel(
H323Channel & channel
);
virtual void CloseLogicalChannel(
unsigned number,
PBoolean fromRemote
);
virtual void CloseLogicalChannelNumber(
const H323ChannelNumber & number
);
virtual void CloseAllLogicalChannels(
PBoolean fromRemote
);
virtual void OnClosedLogicalChannel(
const H323Channel & channel
);
virtual PBoolean OnClosingLogicalChannel(
H323Channel & channel
);
virtual void OnLogicalChannelFlowControl(
H323Channel * channel,
long bitRateRestriction
);
virtual void OnLogicalChannelJitter(
H323Channel * channel,
DWORD jitter,
int skippedFrameCount,
int additionalBuffer
);
H323Channel * GetLogicalChannel(
unsigned number,
PBoolean fromRemote
) const;
H323Channel * FindChannel(
unsigned sessionId,
PBoolean fromRemote
) const;
virtual PBoolean SetBandwidthAvailable(
unsigned newBandwidth,
PBoolean force = false
);
virtual unsigned GetBandwidthUsed() const;
virtual SendUserInputModes GetRealSendUserInputMode() const;
virtual PBoolean SendUserInputString(
const PString & value
);
virtual PBoolean SendUserInputTone(
char tone,
unsigned duration = 0
);
virtual PBoolean SendUserInputIndicationQ931(
const PString & value
);
virtual PBoolean SendUserInputIndicationString(
const PString & value
);
virtual PBoolean SendUserInputIndicationTone(
char tone,
unsigned duration = 0,
unsigned logicalChannel = 0,
unsigned rtpTimestamp = 0
);
virtual PBoolean SendUserInputIndication(
const H245_UserInputIndication & pdu
);
virtual void OnUserInputIndication(
const H245_UserInputIndication & pdu
);
virtual H323_RTP_Session * GetSessionCallbacks(
unsigned sessionID
) const;
virtual RTP_Session * UseSession(
const OpalTransport & transport,
unsigned sessionID,
const OpalMediaType & mediatype,
RTP_QOS * rtpqos = NULL
);
virtual void OnRTPStatistics(
const RTP_Session & session
) const;
virtual PString GetSessionCodecNames(
unsigned sessionID
) const;
virtual PBoolean RequestModeChange(
const PString & newModes
);
virtual PBoolean RequestModeChange(
const H245_ArrayOf_ModeDescription & newModes
);
virtual PBoolean OnRequestModeChange(
const H245_RequestMode & pdu,
H245_RequestModeAck & ack,
H245_RequestModeReject & reject,
PINDEX & selectedMode
);
virtual void OnModeChanged(
const H245_ModeDescription & newMode
);
virtual void OnAcceptModeChange(
const H245_RequestModeAck & pdu
);
virtual void OnRefusedModeChange(
const H245_RequestModeReject * pdu
);
virtual PBoolean RequestModeChangeT38(
const char * capabilityNames = "T.38\nT38FaxUDP"
);
virtual PBoolean GetAdmissionRequestAuthentication(
const H225_AdmissionRequest & arq,
H235Authenticators & authenticators
);
H323EndPoint & GetEndPoint() const { return endpoint; }
PBoolean HadAnsweredCall() const { return !originating; }
PBoolean IsGatekeeperRouted() const { return gatekeeperRouted; }
unsigned GetDistinctiveRing() const { return distinctiveRing; }
void SetDistinctiveRing(unsigned pattern) { distinctiveRing = pattern&7; }
const PString & GetCallToken() const { return GetToken(); }
unsigned GetCallReference() const { return callReference; }
inline const OpalGloballyUniqueID & GetCallIdentifier() const
{ return callIdentifier; }
virtual PString GetIdentifier() const;
const OpalGloballyUniqueID & GetConferenceIdentifier() const { return conferenceIdentifier; }
void SetLocalPartyName(const PString & name);
const PStringList & GetLocalAliasNames() const { return localAliasNames; }
virtual void SetRemotePartyInfo(
const H323SignalPDU & pdu
);
void SetRemoteApplication(
const H225_EndpointType & pdu
);
const H323Capabilities & GetLocalCapabilities() const { return localCapabilities; }
const H323Capabilities & GetRemoteCapabilities() const { return remoteCapabilities; }
unsigned GetRemoteMaxAudioDelayJitter() const { return remoteMaxAudioDelayJitter; }
const H323Transport * GetSignallingChannel() const { return signallingChannel; }
unsigned GetSignallingVersion() const { return h225version; }
const H323Transport & GetControlChannel() const;
OpalTransport & GetTransport() const;
unsigned GetControlVersion() const { return h245version; }
unsigned GetUUIEsRequested() const { return uuiesRequested; }
void SetUUIEsRequested(unsigned mask) { uuiesRequested = mask; }
const PString GetGkAccessTokenOID() const { return gkAccessTokenOID; }
void SetGkAccessTokenOID(const PString & oid) { gkAccessTokenOID = oid; }
const PBYTEArray & GetGkAccessTokenData() const { return gkAccessTokenData; }
void SetDestExtraCallInfo(
const PString & info
) { destExtraCallInfo = info; }
void SetRemotCallWaiting(const unsigned value) { remoteCallWaiting = value; }
int GetRemoteCallWaiting() const { return remoteCallWaiting; }
void SetEnforcedDurationLimit(
unsigned seconds
);
#if OPAL_H239
bool GetLocalH239Control() const { return m_h239Control; }
void SetLocalH239Control(
bool on
) { m_h239Control = on; }
bool GetRemoteH239Control() const;
OpalMediaFormatList GetRemoteH239Formats() const;
#endif
virtual PBoolean OnSendFeatureSet(unsigned, H225_FeatureSet &) const;
virtual void OnReceiveFeatureSet(unsigned, const H225_FeatureSet &) const;
#if OPAL_H460
virtual H460_FeatureSet * GetFeatureSet();
#endif
#if OPAL_H450
H4507Handler& getH4507handler(){return *h4507handler;}
#endif
virtual bool OnMediaCommand(
OpalMediaStream & stream,
const OpalMediaCommand & command
);
protected:
virtual void InternalEstablishedConnectionCheck();
PBoolean InternalEndSessionCheck(PPER_Stream & strm);
void SetRemoteVersions(const H225_ProtocolIdentifier & id);
void SetBearerCapabilities(H323SignalPDU & pdu) const;
void MonitorCallStatus();
PDECLARE_NOTIFIER(PThread, H323Connection, StartOutgoing);
PDECLARE_NOTIFIER(PThread, H323Connection, NewOutgoingControlChannel);
PDECLARE_NOTIFIER(PThread, H323Connection, NewIncomingControlChannel);
H323EndPoint & endpoint;
H323TransportAddress m_remoteConnectAddress;
int remoteCallWaiting; // Number of call's waiting at the remote endpoint
bool gatekeeperRouted;
unsigned distinctiveRing;
unsigned callReference;
unsigned m_progressIndicator;
OpalGloballyUniqueID callIdentifier;
OpalGloballyUniqueID conferenceIdentifier;
PString localDestinationAddress;
PStringList localAliasNames;
H323Capabilities localCapabilities; // Capabilities local system supports
PString destExtraCallInfo;
H323Capabilities remoteCapabilities; // Capabilities remote system supports
unsigned remoteMaxAudioDelayJitter;
PTimer roundTripDelayTimer;
unsigned uuiesRequested;
PString gkAccessTokenOID;
PBYTEArray gkAccessTokenData;
bool addAccessTokenToSetup;
H323Transport * signallingChannel;
H323Transport * controlChannel;
OpalListener * controlListener;
bool h245Tunneling;
H323SignalPDU * h245TunnelRxPDU;
H323SignalPDU * h245TunnelTxPDU;
H323SignalPDU * setupPDU;
H323SignalPDU * alertingPDU;
H323SignalPDU * connectPDU;
H323SignalPDU * progressPDU;
enum ConnectionStates {
NoConnectionActive,
AwaitingGatekeeperAdmission,
AwaitingTransportConnect,
AwaitingSignalConnect,
AwaitingLocalAnswer,
HasExecutedSignalConnect,
EstablishedConnection,
ShuttingDownConnection,
NumConnectionStates
} connectionState;
unsigned h225version;
unsigned h245version;
bool h245versionSet;
bool doH245inSETUP;
bool lastPDUWasH245inSETUP;
bool mustSendDRQ;
bool mediaWaitForConnect;
bool transmitterSidePaused;
bool remoteTransmitPaused;
bool earlyStart;
PString t38ModeChangeCapabilities;
PSyncPoint digitsWaitFlag;
bool endSessionNeeded;
PSyncPoint endSessionReceived;
PTimer enforcedDurationLimit;
bool isConsultationTransfer;
bool isCallIntrusion;
unsigned callIntrusionProtectionLevel;
enum FastStartStates {
FastStartDisabled,
FastStartInitiate,
FastStartResponse,
FastStartAcknowledged,
NumFastStartStates
};
FastStartStates fastStartState;
H323LogicalChannelList fastStartChannels;
OpalMediaStreamPtr fastStartMediaStream;
#if PTRACING
static const char * GetConnectionStatesName(ConnectionStates s);
friend ostream & operator<<(ostream & o, ConnectionStates s) { return o << GetConnectionStatesName(s); }
static const char * GetFastStartStateName(FastStartStates s);
friend ostream & operator<<(ostream & o, FastStartStates s) { return o << GetFastStartStateName(s); }
#endif
// The following pointers are to protocol procedures, they are pointers to
// hide their complexity from the H323Connection classes users.
H245NegMasterSlaveDetermination * masterSlaveDeterminationProcedure;
H245NegTerminalCapabilitySet * capabilityExchangeProcedure;
H245NegLogicalChannels * logicalChannels;
H245NegRequestMode * requestModeProcedure;
H245NegRoundTripDelay * roundTripDelayProcedure;
#if OPAL_H239
bool m_h239Control;
#endif
#if OPAL_H450
H450xDispatcher * h450dispatcher;
H4502Handler * h4502handler;
H4504Handler * h4504handler;
H4506Handler * h4506handler;
H4507Handler * h4507handler;
H45011Handler * h45011handler;
#endif
#if OPAL_H460
H460_FeatureSet * features;
#endif
private:
P_REMOVE_VIRTUAL_VOID(CleanUpOnCallEnd());
P_REMOVE_VIRTUAL_VOID(OnCleared());
};
PDICTIONARY(H323CallIdentityDict, PString, H323Connection);
#endif // OPAL_H323
#endif // OPAL_H323_H323CON_H
H323Connection::OnSendARQ
virtual void OnSendARQ(H225_AdmissionRequest &arq)
H323Connection::h245TunnelRxPDU
H323SignalPDU * h245TunnelRxPDU
Definition: h323con.h:2047
H323Connection::OnReceivedSignalNotify
virtual PBoolean OnReceivedSignalNotify(const H323SignalPDU &pdu)
H323Connection::GetCallReference
unsigned GetCallReference() const
Definition: h323con.h:1843
H460_FeatureSet
Definition: h4601.h:1017
H323Connection::FindChannel
H323Channel * FindChannel(unsigned sessionId, PBoolean fromRemote) const
H323Connection::HandleConsultationTransfer
virtual void HandleConsultationTransfer(const PString &callIdentity, H323Connection &incoming)
H323Connection::OnH239PresentationIndication
virtual bool OnH239PresentationIndication(unsigned logicalChannel, unsigned terminalLabel)
H323Connection::m_remoteConnectAddress
H323TransportAddress m_remoteConnectAddress
Definition: h323con.h:2022
H323Connection::h4507handler
H4507Handler * h4507handler
Definition: h323con.h:2124
H323Connection::NumConnectionStates
Definition: h323con.h:2063
H323Connection::GetDestinationAddress
virtual PString GetDestinationAddress()
H323Connection::ShuttingDownConnection
Definition: h323con.h:2062
H323Connection::GetLogicalChannel
H323Channel * GetLogicalChannel(unsigned number, PBoolean fromRemote) const
H323Connection::localDestinationAddress
PString localDestinationAddress
Definition: h323con.h:2031
H323Connection::SendUserInputTone
virtual PBoolean SendUserInputTone(char tone, unsigned duration=0)
H323Connection::OnSendIRR
virtual void OnSendIRR(H225_InfoRequestResponse &irr) const
H323Connection::destExtraCallInfo
PString destExtraCallInfo
Definition: h323con.h:2034
H323Connection::OnH245_FlowControlCommand
virtual PBoolean OnH245_FlowControlCommand(const H245_FlowControlCommand &pdu)
H323Connection::GetDistinctiveRing
unsigned GetDistinctiveRing() const
Definition: h323con.h:1826
OpalRTPConnection
Definition: rtpconn.h:247
H323Connection::OnH245Indication
virtual PBoolean OnH245Indication(const H323ControlPDU &pdu)
H323Connection::features
H460_FeatureSet * features
Definition: h323con.h:2129
H323Connection::OnReceivedSignalSetup
virtual PBoolean OnReceivedSignalSetup(const H323SignalPDU &pdu)
H323Connection::e_ModeRequest
Definition: h323con.h:1178
H323Connection::SetIntrusionImpending
virtual void SetIntrusionImpending()
H323Connection::OnLogicalChannelJitter
virtual void OnLogicalChannelJitter(H323Channel *channel, DWORD jitter, int skippedFrameCount, int additionalBuffer)
H323Connection::ControlProtocolErrors
ControlProtocolErrors
Definition: h323con.h:1174
H323Connection::controlChannel
H323Transport * controlChannel
Definition: h323con.h:2044
H323Connection::RequestModeChange
virtual PBoolean RequestModeChange(const PString &newModes)
RTP_Session
Definition: rtp.h:502
H323Connection::endSessionReceived
PSyncPoint endSessionReceived
Definition: h323con.h:2080
H323Connection::SendH239PresentationRelease
virtual bool SendH239PresentationRelease(unsigned logicalChannel, unsigned terminalLabel)
OpalConnection::OnAlerting
virtual void OnAlerting()
H323Connection::OnMediaCommand
virtual bool OnMediaCommand(OpalMediaStream &stream, const OpalMediaCommand &command)
H323Connection::SetAlerting
virtual PBoolean SetAlerting(const PString &calleeName, PBoolean withMedia)
H323Connection::m_progressIndicator
unsigned m_progressIndicator
Definition: h323con.h:2027
H323Connection::h4504handler
H4504Handler * h4504handler
Definition: h323con.h:2122
H323Connection::OnAcceptModeChange
virtual void OnAcceptModeChange(const H245_RequestModeAck &pdu)
H323Connection::CreateRealTimeLogicalChannel
virtual H323Channel * CreateRealTimeLogicalChannel(const H323Capability &capability, H323Channel::Directions dir, unsigned sessionID, const H245_H2250LogicalChannelParameters *param, RTP_QOS *rtpqos=NULL)
H323Connection::conferenceIdentifier
OpalGloballyUniqueID conferenceIdentifier
Definition: h323con.h:2029
H450xDispatcher
Definition: h450pdu.h:183
H323Connection::HandleControlChannel
virtual void HandleControlChannel()
H323Connection::OnSelectLogicalChannels
virtual void OnSelectLogicalChannels()
OpalMediaCommand
Definition: mediacmd.h:43
H323Connection::OnReceivedReleaseComplete
virtual void OnReceivedReleaseComplete(const H323SignalPDU &pdu)
H323Connection::GetControlChannel
const H323Transport & GetControlChannel() const
H323Connection::GetEndPoint
H323EndPoint & GetEndPoint() const
Definition: h323con.h:1812
H323Connection::IsCallIntrusion
PBoolean IsCallIntrusion()
Definition: h323con.h:714
H323SignalPDU
Definition: h323pdu.h:70
buildopts.h
H323Connection::alertingPDU
H323SignalPDU * alertingPDU
Definition: h323con.h:2050
H323Connection::SetAssociatedCallToken
void SetAssociatedCallToken(const PString &token)
H323Connection::GetBandwidthUsed
virtual unsigned GetBandwidthUsed() const
H323Connection::remoteTransmitPaused
bool remoteTransmitPaused
Definition: h323con.h:2075
H245NegLogicalChannels
Definition: h323neg.h:228
H323Connection::HandleCallTransferFailure
virtual void HandleCallTransferFailure(const int returnError)
H323Connection::capabilityExchangeProcedure
H245NegTerminalCapabilitySet * capabilityExchangeProcedure
Definition: h323con.h:2110
H323Connection::remoteCapabilities
H323Capabilities remoteCapabilities
Definition: h323con.h:2035
H323Connection::h4502handler
H4502Handler * h4502handler
Definition: h323con.h:2121
H323Capability
Definition: h323caps.h:89
H323Connection::gatekeeperRouted
bool gatekeeperRouted
Definition: h323con.h:2024
H323Connection::requestModeProcedure
H245NegRequestMode * requestModeProcedure
Definition: h323con.h:2112
H323Connection::SetDistinctiveRing
void SetDistinctiveRing(unsigned pattern)
Definition: h323con.h:1834
h323caps.h
H323Connection::IsTransferredCall
PBoolean IsTransferredCall() const
H323Connection::OnSendFeatureSet
virtual PBoolean OnSendFeatureSet(unsigned, H225_FeatureSet &) const
H323Connection::e_LogicalChannel
Definition: h323con.h:1177
H323Connection::GetRoundTripDelay
PTimeInterval GetRoundTripDelay() const
H323Channel::Directions
Directions
Definition: channels.h:129
OpalTransport
Definition: transports.h:703
H323Connection::e_RoundTripDelay
Definition: h323con.h:1179
OpalMediaStreamPtr
PSafePtr< OpalMediaStream > OpalMediaStreamPtr
Definition: mediastrm.h:442
H323Connection::SendFastStartAcknowledge
virtual PBoolean SendFastStartAcknowledge(H225_ArrayOf_PASN_OctetString &array)
H323Connection::SendUserInputIndicationString
virtual PBoolean SendUserInputIndicationString(const PString &value)
H323Connection::TransferConnection
virtual bool TransferConnection(const PString &remoteParty)
H323Connection::getH4507handler
H4507Handler & getH4507handler()
Definition: h323con.h:1992
H323Connection::OnClosedLogicalChannel
virtual void OnClosedLogicalChannel(const H323Channel &channel)
H323Connection::GetLocalAliasNames
const PStringList & GetLocalAliasNames() const
Definition: h323con.h:1864
H323_RTPChannel
Definition: channels.h:570
H323Connection::SendUserInputIndicationQ931
virtual PBoolean SendUserInputIndicationQ931(const PString &value)
H323Connection::gkAccessTokenOID
PString gkAccessTokenOID
Definition: h323con.h:2039
H323Connection::ForwardCall
virtual PBoolean ForwardCall(const PString &forwardParty)
H323Connection::OnReceivedSignalInformation
virtual PBoolean OnReceivedSignalInformation(const H323SignalPDU &pdu)
H4502Handler
Definition: h450pdu.h:271
OpalMediaType
Definition: mediatype.h:57
guid.h
H323Connection::connectionState
enum H323Connection::ConnectionStates connectionState
H323Connection::AwaitingLocalAnswer
Definition: h323con.h:2059
H323Connection::OnOpenLogicalChannel
virtual PBoolean OnOpenLogicalChannel(const H245_OpenLogicalChannel &openPDU, H245_OpenLogicalChannelAck &ackPDU, unsigned &errorCode)
H323Connection::OnAnswerCall
virtual AnswerCallResponse OnAnswerCall(const PString &callerName, const H323SignalPDU &setupPDU, H323SignalPDU &connectPDU, H323SignalPDU &progressPDU)
H323Connection::OnLogicalChannelFlowControl
virtual void OnLogicalChannelFlowControl(H323Channel *channel, long bitRateRestriction)
H323Connection::GetProgressIndicator
unsigned GetProgressIndicator() const
Definition: h323con.h:273
H323Connection::masterSlaveDeterminationProcedure
H245NegMasterSlaveDetermination * masterSlaveDeterminationProcedure
Definition: h323con.h:2109
H323Connection::progressPDU
H323SignalPDU * progressPDU
Definition: h323con.h:2052
RTP_QOS
Definition: rtp.h:58
H245NegRoundTripDelay
Definition: h323neg.h:295
H323Connection::GetLocalCapabilities
const H323Capabilities & GetLocalCapabilities() const
Definition: h323con.h:1880
H323Connection::GetSignallingChannel
const H323Transport * GetSignallingChannel() const
Definition: h323con.h:1892
H323Connection::~H323Connection
~H323Connection()
H323Connection::OnUnknownSignalPDU
virtual PBoolean OnUnknownSignalPDU(const H323SignalPDU &pdu)
H323Connection::IsNetworkConnection
virtual bool IsNetworkConnection() const
Definition: h323con.h:164
H323Connection::CloseMediaStream
virtual bool CloseMediaStream(OpalMediaStream &stream)
H323Connection::GetFeatureSet
virtual H460_FeatureSet * GetFeatureSet()
H323Connection::h245Tunneling
bool h245Tunneling
Definition: h323con.h:2046
H323Connection::OnSendSignalSetup
virtual PBoolean OnSendSignalSetup(H323SignalPDU &setupPDU)
H323Connection::IsSendingCapabilitySet
virtual bool IsSendingCapabilitySet()
H323Connection::SendUserInputIndication
virtual PBoolean SendUserInputIndication(const H245_UserInputIndication &pdu)
H323Connection::SetLocalH239Control
void SetLocalH239Control(bool on)
Definition: h323con.h:1963
H323Connection::GetGkAccessTokenOID
const PString GetGkAccessTokenOID() const
Definition: h323con.h:1920
H323Connection::endSessionNeeded
bool endSessionNeeded
Definition: h323con.h:2079
H323Connection::fastStartState
FastStartStates fastStartState
Definition: h323con.h:2095
H323Connection::HandleSignalPDU
virtual PBoolean HandleSignalPDU(H323SignalPDU &pdu)
H323Connection::logicalChannels
H245NegLogicalChannels * logicalChannels
Definition: h323con.h:2111
H323Connection::SendUserInputIndicationTone
virtual PBoolean SendUserInputIndicationTone(char tone, unsigned duration=0, unsigned logicalChannel=0, unsigned rtpTimestamp=0)
H323Connection::OnClosingLogicalChannel
virtual PBoolean OnClosingLogicalChannel(H323Channel &channel)
H323Connection::OnH245Response
virtual PBoolean OnH245Response(const H323ControlPDU &pdu)
H323Connection::GetLocalH239Control
bool GetLocalH239Control() const
Definition: h323con.h:1959
H323Connection::PDECLARE_NOTIFIER
PDECLARE_NOTIFIER(PThread, H323Connection, StartOutgoing)
H323Connection::CreateRTPChannel
virtual H323_RTPChannel * CreateRTPChannel(const H323Capability &capability, H323Channel::Directions direction, RTP_Session &rtp)
H323Connection::IntrudeCall
virtual void IntrudeCall(unsigned capabilityLevel)
H323Connection::OnReceiveFeatureSet
virtual void OnReceiveFeatureSet(unsigned, const H225_FeatureSet &) const
H323Connection::SetProgressed
virtual PBoolean SetProgressed()
H323Connection::AnsweringCall
void AnsweringCall(AnswerCallResponse response)
H323Connection::OnReceivedARJ
virtual void OnReceivedARJ(const H225_AdmissionReject &arj)
H323Connection::GetConferenceIdentifier
const OpalGloballyUniqueID & GetConferenceIdentifier() const
Definition: h323con.h:1856
H323Connection::digitsWaitFlag
PSyncPoint digitsWaitFlag
Definition: h323con.h:2078
H323Connection::t38ModeChangeCapabilities
PString t38ModeChangeCapabilities
Definition: h323con.h:2077
H323Connection::IsGatekeeperRouted
PBoolean IsGatekeeperRouted() const
Definition: h323con.h:1820
H323Connection::CloseLogicalChannel
virtual void CloseLogicalChannel(unsigned number, PBoolean fromRemote)
H323Connection::AwaitingTransportConnect
Definition: h323con.h:2057
H323Connection::OnReceivedStatusEnquiry
virtual PBoolean OnReceivedStatusEnquiry(const H323SignalPDU &pdu)
H323Connection::IsH245Master
PBoolean IsH245Master() const
H323Connection::OnInsufficientDigits
virtual PBoolean OnInsufficientDigits()
H4507Handler
Definition: h450pdu.h:644
OpalListener
Definition: transports.h:351
H323Connection::EstablishedConnection
Definition: h323con.h:2061
H323Connection::GetRemoteH239Control
bool GetRemoteH239Control() const
H323Connection::OnReceivedSignalSetupAck
virtual PBoolean OnReceivedSignalSetupAck(const H323SignalPDU &pdu)
H323Connection::OnReceivedCallProceeding
virtual PBoolean OnReceivedCallProceeding(const H323SignalPDU &pdu)
H323Connection::OnReceivedProgress
virtual PBoolean OnReceivedProgress(const H323SignalPDU &pdu)
H323Connection::AwaitingGatekeeperAdmission
Definition: h323con.h:2056
H323Connection::SetEnforcedDurationLimit
void SetEnforcedDurationLimit(unsigned seconds)
H323Connection::HandleControlPDU
virtual PBoolean HandleControlPDU(const H323ControlPDU &pdu)
H323Connection::OnH245_MiscellaneousIndication
virtual PBoolean OnH245_MiscellaneousIndication(const H245_MiscellaneousIndication &pdu)
H323Connection::GetLocalCallIntrusionProtectionLevel
unsigned GetLocalCallIntrusionProtectionLevel()
Definition: h323con.h:718
H323Connection::UseSession
virtual RTP_Session * UseSession(const OpalTransport &transport, unsigned sessionID, const OpalMediaType &mediatype, RTP_QOS *rtpqos=NULL)
H323Connection::fastStartMediaStream
OpalMediaStreamPtr fastStartMediaStream
Definition: h323con.h:2097
H323Connection::SetRemoteVersions
void SetRemoteVersions(const H225_ProtocolIdentifier &id)
H323Connection::OnReleased
virtual void OnReleased()
H323Connection::IsTransferringCall
PBoolean IsTransferringCall() const
H323Connection::OnStartLogicalChannel
virtual PBoolean OnStartLogicalChannel(H323Channel &channel)
H323Connection::HandleFastStartAcknowledge
virtual PBoolean HandleFastStartAcknowledge(const H225_ArrayOf_PASN_OctetString &array)
H323Connection::InternalEstablishedConnectionCheck
virtual void InternalEstablishedConnectionCheck()
H323Connection::GetCallToken
const PString & GetCallToken() const
Definition: h323con.h:1839
H323Connection::m_h239Control
bool m_h239Control
Definition: h323con.h:2116
H323Connection::SetRemotePartyInfo
virtual void SetRemotePartyInfo(const H323SignalPDU &pdu)
OpalMediaFormatList
Definition: mediafmt.h:72
H323Connection::GetPrefixName
virtual PString GetPrefixName() const
OpalConnection::SendUserInputModes
SendUserInputModes
Definition: connection.h:1311
H323Channel
Definition: channels.h:99
OpalConnection::callToken
PString callToken
Definition: connection.h:1795
H323Connection::callIdentifier
OpalGloballyUniqueID callIdentifier
Definition: h323con.h:2028
OpalConnection::AnswerCallResponse
AnswerCallResponse
Definition: connection.h:417
OpalConnection::StringOptions
Definition: connection.h:462
H323Connection::OnControlProtocolError
virtual PBoolean OnControlProtocolError(ControlProtocolErrors errorSource, const void *errorData=NULL)
H323Connection::SendSignalSetup
virtual CallEndReason SendSignalSetup(const PString &alias, const H323TransportAddress &address)
H323Connection::AttachSignalChannel
void AttachSignalChannel(const PString &token, H323Transport *channel, PBoolean answeringCall)
H323Connection::GetIdentifier
virtual PString GetIdentifier() const
H323Connection::fastStartChannels
H323LogicalChannelList fastStartChannels
Definition: h323con.h:2096
H323Connection::SwitchFaxMediaStreams
virtual bool SwitchFaxMediaStreams(bool toT38)
H323Connection::HadAnsweredCall
PBoolean HadAnsweredCall() const
Definition: h323con.h:1816
H323Connection::OnReceivedCapabilitySet
virtual PBoolean OnReceivedCapabilitySet(const H323Capabilities &remoteCaps, const H245_MultiplexCapability *muxCap, H245_TerminalCapabilitySetReject &reject)
H323Connection::SetRemotCallWaiting
void SetRemotCallWaiting(const unsigned value)
Definition: h323con.h:1938
H323Connection::OnSetLocalCapabilities
virtual void OnSetLocalCapabilities()
H323Connection::CreateIncomingControlChannel
virtual PBoolean CreateIncomingControlChannel(H225_TransportAddress &h245Address)
H323Connection::h245version
unsigned h245version
Definition: h323con.h:2067
H323Connection::HandleIntrudeCall
virtual void HandleIntrudeCall(const PString &token, const PString &identity)
H323Connection::GetCallIdentifier
const OpalGloballyUniqueID & GetCallIdentifier() const
Definition: h323con.h:1847
H323Connection::OnReceivedSignalStatus
virtual PBoolean OnReceivedSignalStatus(const H323SignalPDU &pdu)
H323Connection::WriteControlPDU
virtual PBoolean WriteControlPDU(const H323ControlPDU &pdu)
H323Connection::ConsultationTransfer
void ConsultationTransfer(const PString &primaryCallToken)
OpalMediaFormat
Definition: mediafmt.h:724
H323Connection::OnIncomingCall
virtual PBoolean OnIncomingCall(const H323SignalPDU &setupPDU, H323SignalPDU &alertingPDU)
H323Connection::FastStartDisabled
Definition: h323con.h:2089
H323Connection::OnH239PresentationRequest
virtual bool OnH239PresentationRequest(unsigned logicalChannel, unsigned symmetryBreaking, unsigned terminalLabel)
H323Connection::SendUserInputString
virtual PBoolean SendUserInputString(const PString &value)
H323Connection::h4506handler
H4506Handler * h4506handler
Definition: h323con.h:2123
H323Connection::FastStartStates
FastStartStates
Definition: h323con.h:2088
H323Connection::Hold
virtual bool Hold(bool fromRemote, bool placeOnHold)
H323Connection::OnRefusedModeChange
virtual void OnRefusedModeChange(const H245_RequestModeReject *pdu)
H323Connection::GetRemoteCallIntrusionProtectionLevel
virtual PBoolean GetRemoteCallIntrusionProtectionLevel(const PString &callToken, unsigned callIntrusionProtectionLevel)
H323Connection::SelectFastStartChannels
virtual void SelectFastStartChannels(unsigned sessionID, PBoolean transmitter, PBoolean receiver)
H323Connection::NoConnectionActive
Definition: h323con.h:2055
H323Connection::GetSessionCallbacks
virtual H323_RTP_Session * GetSessionCallbacks(unsigned sessionID) const
H323Connection::doH245inSETUP
bool doH245inSETUP
Definition: h323con.h:2069
H323Connection::OpenLogicalChannel
virtual PBoolean OpenLogicalChannel(const H323Capability &capability, unsigned sessionID, H323Channel::Directions dir)
H323Connection::OnEstablished
virtual void OnEstablished()
H323Connection::SetForcedReleaseAccepted
virtual void SetForcedReleaseAccepted()
H323Connection::callReference
unsigned callReference
Definition: h323con.h:2026
OpalCall
Definition: call.h:65
H323Connection::isConsultationTransfer
bool isConsultationTransfer
Definition: h323con.h:2082
H323Connection::OnH245_MiscellaneousCommand
virtual PBoolean OnH245_MiscellaneousCommand(const H245_MiscellaneousCommand &pdu)
H323Connection::remoteCallWaiting
int remoteCallWaiting
Definition: h323con.h:2023
H323Connection::lastPDUWasH245inSETUP
bool lastPDUWasH245inSETUP
Definition: h323con.h:2070
H323Connection::mediaWaitForConnect
bool mediaWaitForConnect
Definition: h323con.h:2073
H323Connection::GetControlVersion
unsigned GetControlVersion() const
Definition: h323con.h:1908
H323Connection::SendCallWaitingIndication
void SendCallWaitingIndication(const unsigned nbOfAddWaitingCalls=0)
H323Connection::OnUnknownControlPDU
virtual PBoolean OnUnknownControlPDU(const H323ControlPDU &pdu)
H323Connection::SetUUIEsRequested
void SetUUIEsRequested(unsigned mask)
Definition: h323con.h:1916
H323Connection::SetCallIntrusion
void SetCallIntrusion()
Definition: h323con.h:712
H323Connection::OnSendReleaseComplete
virtual PBoolean OnSendReleaseComplete(H323SignalPDU &releaseCompletePDU)
H323Connection::remoteMaxAudioDelayJitter
unsigned remoteMaxAudioDelayJitter
Definition: h323con.h:2036
H323Connection::controlListener
OpalListener * controlListener
Definition: h323con.h:2045
H323Connection::SendMoreDigits
virtual void SendMoreDigits(const PString &digits)
H323Connection::GetRealSendUserInputMode
virtual SendUserInputModes GetRealSendUserInputMode() const
H323Connection::SetRemoteApplication
void SetRemoteApplication(const H225_EndpointType &pdu)
H323Connection
Definition: h323con.h:130
H323Connection::OnSendCallProceeding
virtual PBoolean OnSendCallProceeding(H323SignalPDU &callProceedingPDU)
H323Connection::GetSessionCodecNames
virtual PString GetSessionCodecNames(unsigned sessionID) const
H323Connection::AwaitingSignalConnect
Definition: h323con.h:2058
H323Connection::StartControlNegotiations
virtual PBoolean StartControlNegotiations()
H323Connection::HandleSignallingChannel
virtual void HandleSignallingChannel()
H323Connection::SetLocalPartyName
void SetLocalPartyName(const PString &name)
H323Connection::CreateLogicalChannel
virtual H323Channel * CreateLogicalChannel(const H245_OpenLogicalChannel &open, PBoolean startingFast, unsigned &errorCode)
H323Connection::h45011handler
H45011Handler * h45011handler
Definition: h323con.h:2125
H323Connection::distinctiveRing
unsigned distinctiveRing
Definition: h323con.h:2025
H323Connection::CloseLogicalChannelNumber
virtual void CloseLogicalChannelNumber(const H323ChannelNumber &number)
H323Connection::SetProgressIndicator
void SetProgressIndicator(unsigned indicator)
Definition: h323con.h:277
operator<<
ostream & operator<<(ostream &strm, OpalSilenceDetector::Mode mode)
H323Connection::OnSendDRQ
virtual void OnSendDRQ(H225_DisengageRequest &drq) const
H323Capabilities
Definition: h323caps.h:2097
H323Connection::e_CapabilityExchange
Definition: h323con.h:1176
H323Connection::roundTripDelayProcedure
H245NegRoundTripDelay * roundTripDelayProcedure
Definition: h323con.h:2113
H323Connection::InternalEndSessionCheck
PBoolean InternalEndSessionCheck(PPER_Stream &strm)
H323Connection::HandleTunnelPDU
virtual void HandleTunnelPDU(H323SignalPDU *txPDU)
H323Connection::SetAlertingType
virtual bool SetAlertingType(const PString &info)
H323Connection::h450dispatcher
H450xDispatcher * h450dispatcher
Definition: h323con.h:2120
H323Connection::SetGkAccessTokenOID
void SetGkAccessTokenOID(const PString &oid)
Definition: h323con.h:1924
OpalConnection::GetToken
const PString & GetToken() const
Definition: connection.h:1452
H323Connection::OnReceivedAlerting
virtual PBoolean OnReceivedAlerting(const H323SignalPDU &pdu)
H323ControlPDU
Definition: h323pdu.h:272
H323Connection::OnH239FlowControlRequest
virtual bool OnH239FlowControlRequest(unsigned logicalChannel, unsigned bitRate)
H323Connection::GetMediaInformation
virtual PBoolean GetMediaInformation(unsigned sessionID, MediaInformation &info) const
H323Connection::GetCallTransferInvokeId
int GetCallTransferInvokeId()
H245NegTerminalCapabilitySet
Definition: h323neg.h:122
H323Connection::earlyStart
bool earlyStart
Definition: h323con.h:2076
H323Connection::localCapabilities
H323Capabilities localCapabilities
Definition: h323con.h:2033
H323Connection::SetUpConnection
virtual PBoolean SetUpConnection()
H323_RTP_Session
Definition: h323rtp.h:62
H323Connection::OnH245Command
virtual PBoolean OnH245Command(const H323ControlPDU &pdu)
PDICTIONARY
PDICTIONARY(H323CallIdentityDict, PString, H323Connection)
H323Connection::SetIntrusionNotAuthorized
virtual void SetIntrusionNotAuthorized()
H323Connection::TransferCall
bool TransferCall(const PString &remoteParty, const PString &callIdentity=PString::Empty())
H323Connection::GetNextSessionID
virtual unsigned GetNextSessionID(const OpalMediaType &mediaType, bool isSource)
H323Connection::h225version
unsigned h225version
Definition: h323con.h:2066
OpalMediaStream
Definition: mediastrm.h:111
H323Connection::isCallIntrusion
bool isCallIntrusion
Definition: h323con.h:2085
H323Connection::h245versionSet
bool h245versionSet
Definition: h323con.h:2068
H323Connection::roundTripDelayTimer
PTimer roundTripDelayTimer
Definition: h323con.h:2037
H323Connection::OnConsultationTransferSuccess
virtual void OnConsultationTransferSuccess(H323Connection &secondaryCall)
H323Connection::OnH239FlowControlResponse
virtual bool OnH239FlowControlResponse(unsigned logicalChannel, bool rejected)
H323ChannelNumber
Definition: channels.h:70
H323Connection::CloseAllLogicalChannels
virtual void CloseAllLogicalChannels(PBoolean fromRemote)
H323Connection::GetGkAccessTokenData
const PBYTEArray & GetGkAccessTokenData() const
Definition: h323con.h:1928
H323Connection::OnReceivedSignalConnect
virtual PBoolean OnReceivedSignalConnect(const H323SignalPDU &pdu)
H323Connection::OnH245Request
virtual PBoolean OnH245Request(const H323ControlPDU &pdu)
H323Connection::ConnectionStates
ConnectionStates
Definition: h323con.h:2054
H323Connection::GetMediaFormats
virtual OpalMediaFormatList GetMediaFormats() const
H4506Handler
Definition: h450pdu.h:594
H323Connection::SetBearerCapabilities
void SetBearerCapabilities(H323SignalPDU &pdu) const
H323Connection::enforcedDurationLimit
PTimer enforcedDurationLimit
Definition: h323con.h:2081
H323Connection::GetSignallingVersion
unsigned GetSignallingVersion() const
Definition: h323con.h:1896
H323Connection::H323Connection
H323Connection(OpalCall &call, H323EndPoint &endpoint, const PString &token, const PString &alias, const H323TransportAddress &address, unsigned options=0, OpalConnection::StringOptions *stringOptions=NULL)
H323Connection::OnConflictingLogicalChannel
virtual PBoolean OnConflictingLogicalChannel(H323Channel &channel)
H323Connection::uuiesRequested
unsigned uuiesRequested
Definition: h323con.h:2038
H323Connection::gkAccessTokenData
PBYTEArray gkAccessTokenData
Definition: h323con.h:2040
H323Connection::NumFastStartStates
Definition: h323con.h:2093
H323Connection::GetRemoteCapabilities
const H323Capabilities & GetRemoteCapabilities() const
Definition: h323con.h:1884
H323Connection::SendH239PresentationRequest
virtual bool SendH239PresentationRequest(unsigned logicalChannel, unsigned symmetryBreaking, unsigned terminalLabel)
H323Connection::OnRequestModeChange
virtual PBoolean OnRequestModeChange(const H245_RequestMode &pdu, H245_RequestModeAck &ack, H245_RequestModeReject &reject, PINDEX &selectedMode)
H323Connection::SetConnected
virtual PBoolean SetConnected()
H323Connection::e_MasterSlaveDetermination
Definition: h323con.h:1175
H323Connection::setupPDU
H323SignalPDU * setupPDU
Definition: h323con.h:2049
H323Connection::SendCapabilitySet
virtual bool SendCapabilitySet(PBoolean empty)
H323Connection::FastStartAcknowledged
Definition: h323con.h:2092
H323Connection::SetBandwidthAvailable
virtual PBoolean SetBandwidthAvailable(unsigned newBandwidth, PBoolean force=false)
OpalGloballyUniqueID
#define OpalGloballyUniqueID
Definition: guid.h:42
H323Connection::OnReceivedFacility
virtual PBoolean OnReceivedFacility(const H323SignalPDU &pdu)
H323Connection::localAliasNames
PStringList localAliasNames
Definition: h323con.h:2032
H323Connection::OnModeChanged
virtual void OnModeChanged(const H245_ModeDescription &newMode)
H323Connection::OnReceivedACF
virtual void OnReceivedACF(const H225_AdmissionConfirm &acf)
H323Connection::OpenMediaStream
virtual OpalMediaStreamPtr OpenMediaStream(const OpalMediaFormat &mediaFormat, unsigned sessionID, bool isSource)
rtpconn.h
H323Connection::signallingChannel
H323Transport * signallingChannel
Definition: h323con.h:2043
H323EndPoint
Definition: h323ep.h:85
H323Connection::transmitterSidePaused
bool transmitterSidePaused
Definition: h323con.h:2074
H323Connection::mustSendDRQ
bool mustSendDRQ
Definition: h323con.h:2072
H323Connection::OnH245_JitterIndication
virtual PBoolean OnH245_JitterIndication(const H245_JitterIndication &pdu)
H323Connection::GetRemoteMaxAudioDelayJitter
unsigned GetRemoteMaxAudioDelayJitter() const
Definition: h323con.h:1888
H4504Handler
Definition: h450pdu.h:522
H323Connection::MonitorCallStatus
void MonitorCallStatus()
H323Connection::SendFlowControlCommand
virtual void SendFlowControlCommand(unsigned channelNumber, unsigned newBitRate)
H323Connection::HandleControlData
virtual PBoolean HandleControlData(PPER_Stream &strm)
H323Connection::connectPDU
H323SignalPDU * connectPDU
Definition: h323con.h:2051
H323Connection::IsOnHold
virtual bool IsOnHold(bool fromRemote)
H323Connection::h245TunnelTxPDU
H323SignalPDU * h245TunnelTxPDU
Definition: h323con.h:2048
H323Connection::CreateOutgoingControlChannel
virtual PBoolean CreateOutgoingControlChannel(const H225_TransportAddress &h245Address)
H323Connection::HasExecutedSignalConnect
Definition: h323con.h:2060
H323Connection::addAccessTokenToSetup
bool addAccessTokenToSetup
Definition: h323con.h:2041
H323TransportAddress
Definition: transaddr.h:66
H323Connection::FastStartInitiate
Definition: h323con.h:2090
H323Connection::OnSendCapabilitySet
virtual void OnSendCapabilitySet(H245_TerminalCapabilitySet &pdu)
H323Connection::OnH239PresentationResponse
virtual bool OnH239PresentationResponse(unsigned logicalChannel, unsigned terminalLabel, bool rejected)
H245NegMasterSlaveDetermination
Definition: h323neg.h:76
H323Connection::GetTransport
OpalTransport & GetTransport() const
OpalConnection::originating
PBoolean originating
Definition: connection.h:1796
H323Connection::GetAdmissionRequestAuthentication
virtual PBoolean GetAdmissionRequestAuthentication(const H225_AdmissionRequest &arq, H235Authenticators &authenticators)
H323Connection::OnH239PresentationRelease
virtual bool OnH239PresentationRelease(unsigned logicalChannel, unsigned terminalLabel)
H323Connection::OnH239Message
virtual bool OnH239Message(unsigned subMessage, const H245_ArrayOf_GenericParameter &params)
H323Connection::SetDestExtraCallInfo
void SetDestExtraCallInfo(const PString &info)
Definition: h323con.h:1932
H323Connection::StartRoundTripDelay
void StartRoundTripDelay()
H45011Handler
Definition: h450pdu.h:689
H323Connection::OnCreateLogicalChannel
virtual PBoolean OnCreateLogicalChannel(const H323Capability &capability, H323Channel::Directions dir, unsigned &errorCode)
H323Connection::GetRemoteH239Formats
OpalMediaFormatList GetRemoteH239Formats() const
H323Connection::WriteSignalPDU
PBoolean WriteSignalPDU(H323SignalPDU &pdu)
H323Connection::GetAlertingType
virtual PString GetAlertingType() const
H323Connection::endpoint
H323EndPoint & endpoint
Definition: h323con.h:2020
H323Connection::OnUserInputIndication
virtual void OnUserInputIndication(const H245_UserInputIndication &pdu)
H323Connection::OnOutgoingCall
virtual PBoolean OnOutgoingCall(const H323SignalPDU &connectPDU)
H323Connection::GetRemoteCallWaiting
int GetRemoteCallWaiting() const
Definition: h323con.h:1945
H323Connection::OnH245_SendTerminalCapabilitySet
virtual PBoolean OnH245_SendTerminalCapabilitySet(const H245_SendTerminalCapabilitySet &pdu)
H323Connection::FastStartResponse
Definition: h323con.h:2091
H323Connection::RequestModeChangeT38
virtual PBoolean RequestModeChangeT38(const char *capabilityNames="T.38\nT38FaxUDP")
H323Connection::callIntrusionProtectionLevel
unsigned callIntrusionProtectionLevel
Definition: h323con.h:2086
H323Connection::OnApplyStringOptions
virtual void OnApplyStringOptions()
Call back for connection to act on changed string options.
H323Connection::SelectDefaultLogicalChannel
virtual void SelectDefaultLogicalChannel(const OpalMediaType &mediaType, unsigned sessionID)
H323Connection::HandleTransferCall
virtual void HandleTransferCall(const PString &token, const PString &identity)
H323Connection::GetUUIEsRequested
unsigned GetUUIEsRequested() const
Definition: h323con.h:1912
H323Connection::StartFastStartChannel
virtual void StartFastStartChannel(unsigned sessionID, H323Channel::Directions direction)
H323Connection::OnRTPStatistics
virtual void OnRTPStatistics(const RTP_Session &session) const
H245NegRequestMode
Definition: h323neg.h:271