30 #ifndef OPAL_H323_H323CON_H
31 #define OPAL_H323_H323CON_H
47 #include <ptclib/dtmf.h>
56 class PASN_OctetString;
59 class H225_EndpointType;
60 class H225_TransportAddress;
61 class H225_ArrayOf_PASN_OctetString;
62 class H225_ProtocolIdentifier;
63 class H225_AdmissionRequest;
64 class H225_AdmissionConfirm;
65 class H225_AdmissionReject;
66 class H225_InfoRequestResponse;
67 class H225_DisengageRequest;
68 class H225_FeatureSet;
69 class H225_H245Security;
71 class H245_TerminalCapabilitySet;
72 class H245_TerminalCapabilitySetReject;
73 class H245_OpenLogicalChannel;
74 class H245_OpenLogicalChannelAck;
75 class H245_TransportAddress;
76 class H245_UserInputIndication;
77 class H245_RequestMode;
78 class H245_RequestModeAck;
79 class H245_RequestModeReject;
80 class H245_ModeDescription;
81 class H245_ArrayOf_ModeDescription;
82 class H245_SendTerminalCapabilitySet;
83 class H245_MultiplexCapability;
84 class H245_FlowControlCommand;
85 class H245_MiscellaneousCommand;
86 class H245_MiscellaneousIndication;
87 class H245_JitterIndication;
88 class H245_ArrayOf_GenericParameter;
89 class H245_ArrayOf_GenericInformation;
98 class H235Authenticators;
121 #define OPAL_OPT_Q931_BEARER_CAPS "Q931-Bearer-Caps"
126 #define OPAL_OPT_Q931_BEARER_BANDWIDTH "Q931-Bearer-Bandwidth"
149 const PString & token,
150 const PString & alias,
152 unsigned options = 0,
198 const PString & calleeName,
322 #if OPAL_T38_CAPABILITY
325 virtual bool SwitchFaxMediaStreams(
391 const PString & token,
393 PBoolean answeringCall
565 H225_AdmissionRequest & arq
574 const H225_AdmissionConfirm & acf
583 const H225_AdmissionReject & arj
593 H225_InfoRequestResponse & irr
603 H225_DisengageRequest & drq
632 const PString & forwardParty
642 const PString & remoteParty
678 const PString & remoteParty,
679 const PString & callIdentity = PString::Empty()
688 const PString & primaryCallToken
698 const PString & callIdentity,
716 const PString & token,
717 const PString & identity
734 const int returnError
742 const PString & token
758 unsigned capabilityLevel
766 const PString & token,
767 const PString & identity
787 const PString & callToken,
788 unsigned callIntrusionProtectionLevel
804 const unsigned nbOfAddWaitingCalls = 0
836 const PString & callerName,
843 const PString & callerName
857 AnswerCallResponse response
871 const PString & alias,
961 const PString & digits
989 H225_ArrayOf_PASN_OctetString & array
1004 const H225_ArrayOf_PASN_OctetString & array
1022 const PASN_Sequence & enclosingPDU,
1023 const H225_TransportAddress & h245Address,
1024 unsigned h245AddressField,
1025 const H225_H245Security & h245Security,
1026 unsigned h245SecurityField
1042 PASN_Sequence & enclosingPDU,
1043 H225_TransportAddress & h245Address,
1044 unsigned h245AddressField,
1045 H225_H245Security & h245Security,
1046 unsigned h245SecurityField
1089 PBoolean readStatus,
1137 const H245_SendTerminalCapabilitySet & pdu
1145 const H245_FlowControlCommand & pdu
1153 const H245_MiscellaneousCommand & pdu
1161 const H245_MiscellaneousIndication & pdu
1169 const H245_JitterIndication & pdu
1176 unsigned subMessage,
1177 const H245_ArrayOf_GenericParameter & params
1184 unsigned logicalChannel,
1192 unsigned logicalChannel,
1200 unsigned logicalChannel,
1201 unsigned symmetryBreaking,
1202 unsigned terminalLabel
1211 unsigned logicalChannel,
1212 unsigned symmetryBreaking,
1213 unsigned terminalLabel
1220 unsigned logicalChannel,
1221 unsigned terminalLabel,
1229 unsigned logicalChannel,
1230 unsigned terminalLabel
1238 unsigned logicalChannel,
1239 unsigned terminalLabel
1246 unsigned logicalChannel,
1247 unsigned terminalLabel
1274 const void * errorData = NULL
1285 H245_TerminalCapabilitySet & pdu
1301 const H245_MultiplexCapability * muxCap,
1302 H245_TerminalCapabilitySetReject & reject
1329 H245_OpenLogicalChannel & ,
1399 PBoolean transmitter,
1432 unsigned channelNumber,
1446 const H245_OpenLogicalChannel & openPDU,
1447 H245_OpenLogicalChannelAck & ackPDU,
1448 unsigned & errorCode,
1468 const H245_OpenLogicalChannel & open,
1469 PBoolean startingFast,
1470 unsigned & errorCode
1511 const H245_H2250LogicalChannelParameters * param
1537 unsigned & errorCode
1598 long bitRateRestriction
1612 int skippedFrameCount,
1613 int additionalBuffer
1632 bool anyState =
false
1670 const PString & value
1699 unsigned duration = 0
1709 const PString & value
1719 const PString & value
1728 unsigned duration = 0,
1729 unsigned logicalChannel = 0,
1730 unsigned rtpTimestamp = 0
1742 const H245_UserInputIndication & pdu
1750 const H245_UserInputIndication & pdu
1790 const PString & newModes
1801 const H245_ArrayOf_ModeDescription & newModes
1807 const H245_RequestMode & pdu,
1808 H245_RequestModeAck & ack,
1809 H245_RequestModeReject & reject,
1810 PINDEX & selectedMode
1820 const H245_ModeDescription & newMode
1828 const H245_RequestModeAck & pdu
1836 const H245_RequestModeReject * pdu
1848 const char * capabilityNames =
"T.38\nT38FaxUDP"
1861 const H225_AdmissionRequest & arq,
1862 H235Authenticators & authenticators
1868 const PString & identifier,
1869 const PBYTEArray & data
1940 const H225_EndpointType & pdu
2014 const PString & info
2059 const H235DiffieHellman & GetDiffieHellman()
const {
return m_dh; }
2061 H235DiffieHellman & GetDiffieHellman() {
return m_dh; }
2087 const H245_ArrayOf_GenericInformation & info,
2096 H245_ArrayOf_GenericInformation & info,
2113 e_NoMultipleTunnelledH245,
2114 e_BadMasterSlaveConflict,
2115 e_NoUserInputCapability,
2116 e_H224MustBeSession3,
2117 e_NeedTCSAfterNonEmptyTCS,
2118 e_NeedMSDAfterNonEmptyTCS,
2119 e_ForceMaintainConnection
2122 "No-Multiple-Tunnelled-H245",
2123 "Bad-Master-Slave-Conflict",
2124 "No-User-Input-Capability",
2125 "H.224-Must-Be-Session-3",
2126 "Need-TCS-after-Non-Empty-TCS",
2127 "Need-MSD-after-Non-Empty-TCS",
2128 "Force-Maintain-TCP-Connection"
2133 CompatibilityIssues issue
2192 AwaitingGatekeeperAdmission,
2193 AwaitingTransportConnect,
2194 AwaitingSignalConnect,
2195 AwaitingLocalAnswer,
2196 HasExecutedSignalConnect,
2197 EstablishedConnection,
2198 ShuttingDownConnection
2224 if (pdu.HasOptionalField(PDU::e_maintainConnection) && pdu.m_maintainConnection)
2249 FastStartAcknowledged
2289 H235DiffieHellman m_dh;
2291 template <
class PDU>
void SetDiffieHellman(
const PDU & pdu)
2293 if (pdu.HasOptionalField(PDU::e_tokens))
2294 m_dh.FromTokens(pdu.m_tokens);
2304 P_REMOVE_VIRTUAL_VOID(CleanUpOnCallEnd());
2305 P_REMOVE_VIRTUAL_VOID(OnCleared());
2306 P_REMOVE_VIRTUAL_VOID(OnRTPStatistics(
const OpalRTPSession &)
const);
2307 P_REMOVE_VIRTUAL(PBoolean,
OnOpenLogicalChannel(
const H245_OpenLogicalChannel&,H245_OpenLogicalChannelAck&,
unsigned&),
false);
2308 P_REMOVE_VIRTUAL(PBoolean,
OnOpenLogicalChannel(
const H245_OpenLogicalChannel &, H245_OpenLogicalChannelAck &,
unsigned &,
const unsigned &),
false);
2309 P_REMOVE_VIRTUAL_VOID(NatDetection(
const PIPSocket::Address &,
const PIPSocket::Address &));
2310 P_REMOVE_VIRTUAL(PBoolean, OnNatDetected(),
false);
2319 #endif // OPAL_H323_H323CON_H
virtual void OnSendARQ(H225_AdmissionRequest &arq)
virtual PBoolean OnReceivedSignalNotify(const H323SignalPDU &pdu)
unsigned m_h239TerminalLabel
Definition: h323con.h:2267
unsigned GetCallReference() const
Definition: h323con.h:1908
bool HasCompatibilityIssue(CompatibilityIssues issue) const
Determine if we must compensate for remote endpoint.
virtual void HandleConsultationTransfer(const PString &callIdentity, H323Connection &incoming)
virtual bool OnH239PresentationIndication(unsigned logicalChannel, unsigned terminalLabel)
H323TransportAddress m_remoteConnectAddress
Definition: h323con.h:2158
unsigned m_distinctiveRing
Definition: h323con.h:2161
virtual PString GetDestinationAddress()
H323Channel * GetLogicalChannel(unsigned number, PBoolean fromRemote) const
H4507Handler * m_h4507handler
Definition: h323con.h:2276
virtual PBoolean SendUserInputTone(char tone, unsigned duration=0)
virtual void OnSendIRR(H225_InfoRequestResponse &irr) const
virtual PBoolean OnH245_FlowControlCommand(const H245_FlowControlCommand &pdu)
unsigned GetDistinctiveRing() const
Definition: h323con.h:1891
PSimpleTimer m_lastUserInputIndicationStart
Definition: h323con.h:2299
virtual bool HasPresentationRole() const
OpalTransportPtr m_controlChannel
Definition: h323con.h:2180
virtual PBoolean OnH245Indication(const H323ControlPDU &pdu)
ConnectionStates m_connectionState
Definition: h323con.h:2200
virtual PBoolean OnReceivedSignalSetup(const H323SignalPDU &pdu)
Definition: h323con.h:1257
virtual void SetIntrusionImpending()
Definition: h323con.h:1946
virtual void OnClosedMediaStream(const OpalMediaStream &stream)
PSimpleTimer m_h245FastUpdatePictureTimer
Definition: h323con.h:2285
virtual void OnLogicalChannelJitter(H323Channel *channel, DWORD jitter, int skippedFrameCount, int additionalBuffer)
ControlProtocolErrors
Definition: h323con.h:1253
PStringList m_localAliasNames
Definition: h323con.h:2168
virtual PBoolean RequestModeChange(const PString &newModes)
H323SignalPDU * m_h245TunnelTxPDU
Definition: h323con.h:2184
virtual bool SendH239PresentationRelease(unsigned logicalChannel, unsigned terminalLabel)
virtual void OnSendH245_OpenLogicalChannel(H245_OpenLogicalChannel &, PBoolean)
Definition: h323con.h:1328
PSyncPoint m_digitsWaitFlag
Definition: h323con.h:2214
virtual void OnAlerting()
virtual bool OnMediaCommand(OpalMediaStream &stream, const OpalMediaCommand &command)
virtual PBoolean SetAlerting(const PString &calleeName, PBoolean withMedia)
unsigned m_progressIndicator
Definition: h323con.h:2163
virtual void OnAcceptModeChange(const H245_RequestModeAck &pdu)
Definition: h450pdu.h:179
virtual void HandleControlChannel()
virtual void OnSelectLogicalChannels()
virtual void OnReceivedReleaseComplete(const H323SignalPDU &pdu)
H323SignalPDU * m_progressPDU
Definition: h323con.h:2188
const H323Transport & GetControlChannel() const
ConferenceGoal GetConferenceGoal()
Definition: h323con.h:1953
H323EndPoint & GetEndPoint() const
Definition: h323con.h:1877
PBoolean IsCallIntrusion()
Definition: h323con.h:777
void SetAssociatedCallToken(const PString &token)
virtual OpalTransportAddress GetRemoteAddress() const =0
Definition: h323neg.h:204
virtual void HandleCallTransferFailure(const int returnError)
virtual PBoolean HandleReceivedControlPDU(PBoolean readStatus, PPER_Stream &strm)
virtual PStringArray GetMediaCryptoSuites() const
Definition: h323caps.h:95
void SetDistinctiveRing(unsigned pattern)
Definition: h323con.h:1899
PBoolean IsTransferredCall() const
Definition: h323con.h:1256
void SetMaintainConnectionFlag(const PDU &pdu)
Definition: h323con.h:2222
PTimeInterval GetRoundTripDelay() const
Directions
Definition: channels.h:125
Definition: transports.h:788
Definition: h323con.h:1258
void EndHandleControlChannel()
virtual PBoolean SendFastStartAcknowledge(H225_ArrayOf_PASN_OctetString &array)
FastStartStates m_fastStartState
Definition: h323con.h:2251
H245NegMasterSlaveDetermination * m_masterSlaveDeterminationProcedure
Definition: h323con.h:2257
virtual PBoolean SendUserInputIndicationString(const PString &value)
virtual bool TransferConnection(const PString &remoteParty)
H4507Handler & getH4507handler()
Definition: h323con.h:2069
virtual void OnClosedLogicalChannel(const H323Channel &channel)
const PStringList & GetLocalAliasNames() const
Definition: h323con.h:1929
PBYTEArray m_gkAccessTokenData
Definition: h323con.h:2176
virtual PBoolean SendUserInputIndicationQ931(const PString &value)
bool m_isConsultationTransfer
Definition: h323con.h:2219
virtual PBoolean ForwardCall(const PString &forwardParty)
bool m_releaseCompleteNeeded
Definition: h323con.h:2215
virtual PBoolean OnReceivedSignalInformation(const H323SignalPDU &pdu)
Definition: h450pdu.h:267
PSyncPoint m_endSessionReceived
Definition: h323con.h:2217
virtual bool RequestPresentationRole(bool release)
virtual AnswerCallResponse OnAnswerCall(const PString &callerName, const H323SignalPDU &setupPDU, H323SignalPDU &connectPDU, H323SignalPDU &progressPDU)
virtual void OnLogicalChannelFlowControl(H323Channel *channel, long bitRateRestriction)
unsigned GetProgressIndicator() const
Definition: h323con.h:294
int m_remoteCallWaiting
Definition: h323con.h:2159
virtual PBoolean CreateIncomingControlChannel(PASN_Sequence &enclosingPDU, H225_TransportAddress &h245Address, unsigned h245AddressField, H225_H245Security &h245Security, unsigned h245SecurityField)
bool m_lastPDUWasH245inSETUP
Definition: h323con.h:2206
Definition: h323neg.h:272
PTimer m_UserInputIndicationTimer
Definition: h323con.h:2300
const H323Capabilities & GetLocalCapabilities() const
Definition: h323con.h:1961
virtual PBoolean OnUnknownSignalPDU(const H323SignalPDU &pdu)
virtual bool IsNetworkConnection() const
Definition: h323con.h:171
unsigned m_uuiesRequested
Definition: h323con.h:2174
virtual PBoolean OnSendSignalSetup(H323SignalPDU &setupPDU)
virtual bool IsSendingCapabilitySet()
virtual PBoolean SendUserInputIndication(const H245_UserInputIndication &pdu)
unsigned m_callIntrusionProtectionLevel
Definition: h323con.h:2242
bool m_holdToRemote
Definition: h323con.h:2211
void SetLocalH239Control(bool on)
Definition: h323con.h:2045
const PString GetGkAccessTokenOID() const
Definition: h323con.h:2001
virtual PBoolean HandleSignalPDU(H323SignalPDU &pdu)
virtual PBoolean OnOpenLogicalChannel(const H245_OpenLogicalChannel &openPDU, H245_OpenLogicalChannelAck &ackPDU, unsigned &errorCode, H323Channel &channel)
virtual PBoolean SendUserInputIndicationTone(char tone, unsigned duration=0, unsigned logicalChannel=0, unsigned rtpTimestamp=0)
virtual PBoolean OnClosingLogicalChannel(H323Channel &channel)
PBoolean StartHandleControlChannel()
virtual PBoolean OnH245Response(const H323ControlPDU &pdu)
bool GetLocalH239Control() const
Definition: h323con.h:2041
PDECLARE_NOTIFIER(PThread, H323Connection, NewOutgoingControlChannel)
void SetOutgoingBearerCapabilities(H323SignalPDU &pdu) const
virtual void IntrudeCall(unsigned capabilityLevel)
virtual PBoolean SetProgressed()
void AnsweringCall(AnswerCallResponse response)
virtual void OnReceivedARJ(const H225_AdmissionReject &arj)
const OpalGloballyUniqueID & GetConferenceIdentifier() const
Definition: h323con.h:1921
PBoolean IsGatekeeperRouted() const
Definition: h323con.h:1885
virtual void CloseLogicalChannel(unsigned number, PBoolean fromRemote)
bool m_h239TokenOwned
Definition: h323con.h:2268
virtual PBoolean OnReceivedStatusEnquiry(const H323SignalPDU &pdu)
PBoolean IsH245Master() const
virtual PBoolean OnInsufficientDigits()
Definition: h450pdu.h:640
H245NegTerminalCapabilitySet * m_capabilityExchangeProcedure
Definition: h323con.h:2258
Definition: transports.h:411
bool GetRemoteH239Control() const
virtual PBoolean OnReceivedSignalSetupAck(const H323SignalPDU &pdu)
virtual PBoolean OnReceivedCallProceeding(const H323SignalPDU &pdu)
virtual PBoolean OnReceivedProgress(const H323SignalPDU &pdu)
void SetEnforcedDurationLimit(unsigned seconds)
H323SignalPDU * m_alertingPDU
Definition: h323con.h:2186
P_DECLARE_ENUM_NAMES(CompatibilityIssues,"No-Multiple-Tunnelled-H245","Bad-Master-Slave-Conflict","No-User-Input-Capability","H.224-Must-Be-Session-3","Need-TCS-after-Non-Empty-TCS","Need-MSD-after-Non-Empty-TCS","Force-Maintain-TCP-Connection")
virtual PBoolean HandleControlPDU(const H323ControlPDU &pdu)
virtual PBoolean OnH245_MiscellaneousIndication(const H245_MiscellaneousIndication &pdu)
unsigned GetLocalCallIntrusionProtectionLevel()
Definition: h323con.h:781
void SetRemoteVersions(const H225_ProtocolIdentifier &id)
virtual void OnReleased()
PBoolean IsTransferringCall() const
virtual PBoolean OnStartLogicalChannel(H323Channel &channel)
OpalMediaSession H323RTPSession
Definition: h323con.h:95
virtual PBoolean HandleFastStartAcknowledge(const H225_ArrayOf_PASN_OctetString &array)
virtual void InternalEstablishedConnectionCheck()
const PString & GetCallToken() const
Definition: h323con.h:1904
PString m_localDestinationAddress
Definition: h323con.h:2167
bool m_h239Control
Definition: h323con.h:2264
virtual OpalBandwidth GetBandwidthUsed(OpalBandwidth::Direction dir) const
bool m_isCallIntrusion
Definition: h323con.h:2241
virtual void SetRemotePartyInfo(const H323SignalPDU &pdu)
virtual PString GetPrefixName() const
Definition: channels.h:95
PSafeDictionary< POrdinalKey, OpalMediaStream > m_conflictingChannels
Definition: h323con.h:2228
Definition: mediafmt.h:60
H323Capabilities m_remoteCapabilities
Definition: h323con.h:2171
virtual PString GetSupportedFeatures() const
Definition: connection.h:530
virtual PBoolean OnControlProtocolError(ControlProtocolErrors errorSource, const void *errorData=NULL)
void SetIncomingBearerCapabilities(const H323SignalPDU &pdu)
H323Capabilities m_localCapabilities
Definition: h323con.h:2169
P_DECLARE_TRACED_ENUM(ConnectionStates, NoConnectionActive, AwaitingGatekeeperAdmission, AwaitingTransportConnect, AwaitingSignalConnect, AwaitingLocalAnswer, HasExecutedSignalConnect, EstablishedConnection, ShuttingDownConnection)
virtual CallEndReason SendSignalSetup(const PString &alias, const H323TransportAddress &address)
void AttachSignalChannel(const PString &token, H323Transport *channel, PBoolean answeringCall)
virtual PString GetIdentifier() const
PBoolean HadAnsweredCall() const
Definition: h323con.h:1881
virtual PBoolean OnReceivedCapabilitySet(const H323Capabilities &remoteCaps, const H245_MultiplexCapability *muxCap, H245_TerminalCapabilitySetReject &reject)
void SetRemotCallWaiting(const unsigned value)
Definition: h323con.h:2019
virtual void OnSetLocalCapabilities()
virtual void HandleIntrudeCall(const PString &token, const PString &identity)
unsigned m_h239TokenChannel
Definition: h323con.h:2266
const OpalGloballyUniqueID & GetCallIdentifier() const
Definition: h323con.h:1912
virtual PBoolean OnReceivedSignalStatus(const H323SignalPDU &pdu)
virtual PBoolean WriteControlPDU(const H323ControlPDU &pdu)
void ConsultationTransfer(const PString &primaryCallToken)
virtual PBoolean OnIncomingCall(const H323SignalPDU &setupPDU, H323SignalPDU &alertingPDU)
PString m_gkAccessTokenOID
Definition: h323con.h:2175
virtual bool OnH239PresentationRequest(unsigned logicalChannel, unsigned symmetryBreaking, unsigned terminalLabel)
H4504Handler * m_h4504handler
Definition: h323con.h:2274
virtual PBoolean SendUserInputString(const PString &value)
Direction
Definition: mediafmt.h:64
virtual void OnRefusedModeChange(const H245_RequestModeReject *pdu)
virtual PBoolean GetRemoteCallIntrusionProtectionLevel(const PString &callToken, unsigned callIntrusionProtectionLevel)
virtual void SelectFastStartChannels(unsigned sessionID, PBoolean transmitter, PBoolean receiver)
virtual PBoolean OpenLogicalChannel(const H323Capability &capability, unsigned sessionID, H323Channel::Directions dir)
virtual void OnEstablished()
H323LogicalChannelList m_fastStartChannels
Definition: h323con.h:2252
virtual void SetForcedReleaseAccepted()
virtual PBoolean OnH245_MiscellaneousCommand(const H245_MiscellaneousCommand &pdu)
OpalTransportPtr GetSignallingChannel() const
Definition: h323con.h:1973
unsigned GetControlVersion() const
Definition: h323con.h:1989
PTimer m_roundTripDelayTimer
Definition: h323con.h:2173
H245NegRequestMode * m_requestModeProcedure
Definition: h323con.h:2260
void SendCallWaitingIndication(const unsigned nbOfAddWaitingCalls=0)
virtual PBoolean OnUnknownControlPDU(const H323ControlPDU &pdu)
void SetUUIEsRequested(unsigned mask)
Definition: h323con.h:1997
ConferenceGoal
Definition: h323con.h:1945
void SetCallIntrusion()
Definition: h323con.h:775
virtual PBoolean OnSendReleaseComplete(H323SignalPDU &releaseCompletePDU)
H323EndPoint & m_endpoint
Definition: h323con.h:2156
virtual void SendMoreDigits(const PString &digits)
unsigned m_remoteMaxAudioDelayJitter
Definition: h323con.h:2172
virtual bool HoldRemote(bool placeOnHold)
virtual SendUserInputModes GetRealSendUserInputMode() const
Definition: rtp_session.h:90
void SetRemoteApplication(const H225_EndpointType &pdu)
virtual bool IsOnHold(bool fromRemote) const
Definition: h323con.h:137
bool SendReleaseComplete()
unsigned m_h245version
Definition: h323con.h:2203
virtual PBoolean OnSendCallProceeding(H323SignalPDU &callProceedingPDU)
virtual PString GetSessionCodecNames(unsigned sessionID) const
virtual PBoolean StartControlNegotiations()
RemoteHoldStates m_holdFromRemote
Definition: h323con.h:2235
virtual void HandleSignallingChannel()
void SetLocalPartyName(const PString &name)
virtual H323Channel * CreateLogicalChannel(const H245_OpenLogicalChannel &open, PBoolean startingFast, unsigned &errorCode)
H323SignalPDU * m_h245TunnelRxPDU
Definition: h323con.h:2183
virtual void CloseLogicalChannelNumber(const H323ChannelNumber &number)
void SetProgressIndicator(unsigned indicator)
Definition: h323con.h:298
virtual void OnSendDRQ(H225_DisengageRequest &drq) const
Definition: h323caps.h:2508
Definition: h323con.h:1947
bool InternalEndSessionCheck(PPER_Stream &strm)
H323SignalPDU * m_connectPDU
Definition: h323con.h:2187
Definition: h323con.h:1255
virtual void HandleTunnelPDU(H323SignalPDU *txPDU)
virtual bool SetAlertingType(const PString &info)
void SetGkAccessTokenOID(const PString &oid)
Definition: h323con.h:2005
unsigned m_callReference
Definition: h323con.h:2162
const PString & GetToken() const
Definition: connection.h:1641
H323Channel * FindChannel(unsigned sessionId, bool fromRemote, bool anyState=false) const
virtual PBoolean OnReceivedAlerting(const H323SignalPDU &pdu)
PTimer m_enforcedDurationLimit
Definition: h323con.h:2218
Definition: h323pdu.h:255
virtual bool OnH239FlowControlRequest(unsigned logicalChannel, unsigned bitRate)
PSafePtr< OpalTransport > OpalTransportPtr
Definition: transports.h:50
int GetCallTransferInvokeId()
Definition: h323neg.h:106
PBoolean IsOriginating() const
Definition: connection.h:1653
virtual bool OnSendFeatureSet(H460_MessageType pduType, H225_FeatureSet &) const
virtual PBoolean SetUpConnection()
OpalGloballyUniqueID m_conferenceIdentifier
Definition: h323con.h:2165
H4502Handler * m_h4502handler
Definition: h323con.h:2273
virtual PBoolean OnH245Command(const H323ControlPDU &pdu)
PDICTIONARY(H323CallIdentityDict, PString, H323Connection)
virtual void OpenFastStartChannel(unsigned sessionID, H323Channel::Directions direction)
virtual void SetIntrusionNotAuthorized()
bool TransferCall(const PString &remoteParty, const PString &callIdentity=PString::Empty())
virtual unsigned GetNextSessionID(const OpalMediaType &mediaType, bool isSource)
virtual bool GetMediaTransportAddresses(OpalConnection &otherConnection, unsigned sessionId, const OpalMediaType &mediaType, OpalTransportAddressArray &transports) const
virtual void OnConsultationTransferSuccess(H323Connection &secondaryCall)
virtual bool OnH239FlowControlResponse(unsigned logicalChannel, bool rejected)
bool m_forceSymmetricTCS
Definition: h323con.h:2207
H245NegRoundTripDelay * m_roundTripDelayProcedure
Definition: h323con.h:2261
Definition: channels.h:66
virtual void CloseAllLogicalChannels(PBoolean fromRemote)
PString m_t38ModeChangeCapabilities
Definition: h323con.h:2213
const PBYTEArray & GetGkAccessTokenData() const
Definition: h323con.h:2009
bool m_gatekeeperRouted
Definition: h323con.h:2160
virtual PBoolean OnReceivedSignalConnect(const H323SignalPDU &pdu)
P_DECLARE_ENUM(CompatibilityIssues, e_NoMultipleTunnelledH245, e_BadMasterSlaveConflict, e_NoUserInputCapability, e_H224MustBeSession3, e_NeedTCSAfterNonEmptyTCS, e_NeedMSDAfterNonEmptyTCS, e_ForceMaintainConnection)
bool m_endSessionNeeded
Definition: h323con.h:2216
H460_FeatureSet * m_features
Definition: h323con.h:2281
virtual PBoolean OnH245Request(const H323ControlPDU &pdu)
PString m_destExtraCallInfo
Definition: h323con.h:2170
virtual OpalMediaFormatList GetMediaFormats() const
Definition: connection.h:415
Definition: h450pdu.h:590
bool m_mustSendDRQ
Definition: h323con.h:2209
unsigned m_h225version
Definition: h323con.h:2202
unsigned GetSignallingVersion() const
Definition: h323con.h:1977
H323Connection(OpalCall &call, H323EndPoint &endpoint, const PString &token, const PString &alias, const H323TransportAddress &address, unsigned options=0, OpalConnection::StringOptions *stringOptions=NULL)
virtual PBoolean OnConflictingLogicalChannel(H323Channel &channel)
H245NegLogicalChannels * m_logicalChannels
Definition: h323con.h:2259
const H323Capabilities & GetRemoteCapabilities() const
Definition: h323con.h:1965
virtual bool SendH239PresentationRequest(unsigned logicalChannel, unsigned symmetryBreaking, unsigned terminalLabel)
virtual PBoolean OnRequestModeChange(const H245_RequestMode &pdu, H245_RequestModeAck &ack, H245_RequestModeReject &reject, PINDEX &selectedMode)
bool m_earlyStart
Definition: h323con.h:2212
virtual PBoolean SetConnected()
Definition: h323con.h:1254
H450xDispatcher * m_h450dispatcher
Definition: h323con.h:2272
H323SignalPDU * m_setupPDU
Definition: h323con.h:2185
H4506Handler * m_h4506handler
Definition: h323con.h:2275
unsigned m_h239SymmetryBreaking
Definition: h323con.h:2265
virtual bool SendCapabilitySet(PBoolean empty)
bool m_doH245inSETUP
Definition: h323con.h:2205
H460_FeatureSet * GetFeatureSet() const
Definition: h323con.h:2075
OpalTransportPtr m_signallingChannel
Definition: h323con.h:2179
bool m_h245versionSet
Definition: h323con.h:2204
bool m_maintainConnection
Definition: h323con.h:2220
#define OpalGloballyUniqueID
Definition: guid.h:38
virtual PBoolean OnReceivedFacility(const H323SignalPDU &pdu)
virtual void OnModeChanged(const H245_ModeDescription &newMode)
virtual void OnReceivedACF(const H225_AdmissionConfirm &acf)
Definition: transports.h:151
virtual H323_RTPChannel * CreateRTPChannel(const H323Capability &capability, H323Channel::Directions direction, H323RTPSession &rtp)
Definition: transports.h:326
H45011Handler * m_h45011handler
Definition: h323con.h:2277
virtual OpalMediaStreamPtr OpenMediaStream(const OpalMediaFormat &mediaFormat, unsigned sessionID, bool isSource)
virtual bool OnSendingOLCGenericInformation(unsigned sessionID, H245_ArrayOf_GenericInformation &info, bool isAck) const
char m_lastUserInputIndication
Definition: h323con.h:2298
virtual PBoolean OnH245_JitterIndication(const H245_JitterIndication &pdu)
virtual PBoolean CreateOutgoingControlChannel(const PASN_Sequence &enclosingPDU, const H225_TransportAddress &h245Address, unsigned h245AddressField, const H225_H245Security &h245Security, unsigned h245SecurityField)
unsigned GetRemoteMaxAudioDelayJitter() const
Definition: h323con.h:1969
Definition: h450pdu.h:518
virtual void SendFlowControlCommand(unsigned channelNumber, unsigned newBitRate)
virtual PBoolean HandleControlData(PPER_Stream &strm)
virtual PBoolean OnStartHandleControlChannel()
Definition: transaddr.h:62
virtual void OnSendCapabilitySet(H245_TerminalCapabilitySet &pdu)
virtual bool SendNonStandardControl(const PString &identifier, const PBYTEArray &data)
virtual bool OnH239PresentationResponse(unsigned logicalChannel, unsigned terminalLabel, bool rejected)
ConferenceGoal m_conferenceGoal
Definition: h323con.h:2237
OpalTransport & GetTransport() const
Definition: h323con.h:1948
bool m_addAccessTokenToSetup
Definition: h323con.h:2177
virtual PBoolean GetAdmissionRequestAuthentication(const H225_AdmissionRequest &arq, H235Authenticators &authenticators)
virtual bool OnH239PresentationRelease(unsigned logicalChannel, unsigned terminalLabel)
virtual bool OnH239Message(unsigned subMessage, const H245_ArrayOf_GenericParameter ¶ms)
void SetDestExtraCallInfo(const PString &info)
Definition: h323con.h:2013
void StartRoundTripDelay()
Definition: h450pdu.h:685
OpalGloballyUniqueID m_callIdentifier
Definition: h323con.h:2164
virtual void OnReceiveFeatureSet(H460_MessageType pduType, const H225_FeatureSet &) const
virtual PBoolean OnCreateLogicalChannel(const H323Capability &capability, H323Channel::Directions dir, unsigned &errorCode)
virtual OpalTransportAddress GetRemoteAddress() const
Definition: h323con.h:244
OpalMediaFormatList GetRemoteH239Formats() const
virtual H323Channel * CreateRealTimeLogicalChannel(const H323Capability &capability, H323Channel::Directions dir, unsigned sessionID, const H245_H2250LogicalChannelParameters *param)
PBoolean WriteSignalPDU(H323SignalPDU &pdu)
virtual PString GetAlertingType() const
OpalListener * m_controlListener
Definition: h323con.h:2181
virtual void OnReceiveOLCGenericInformation(unsigned sessionID, const H245_ArrayOf_GenericInformation &info, bool isAck) const
virtual void DetermineRTPNAT(const OpalTransport &transport, const OpalTransportAddress &signalAddr)
virtual void OnUserInputIndication(const H245_UserInputIndication &pdu)
virtual PBoolean OnOutgoingCall(const H323SignalPDU &connectPDU)
int GetRemoteCallWaiting() const
Definition: h323con.h:2026
virtual PBoolean OnH245_SendTerminalCapabilitySet(const H245_SendTerminalCapabilitySet &pdu)
bool m_mediaWaitForConnect
Definition: h323con.h:2210
virtual PBoolean RequestModeChangeT38(const char *capabilityNames="T.38\nT38FaxUDP")
void SetConferenceGoal(ConferenceGoal goal)
Definition: h323con.h:1957
virtual void OnApplyStringOptions()
Call back for connection to act on changed string options.
bool m_h245Tunneling
Definition: h323con.h:2182
virtual void SelectDefaultLogicalChannel(const OpalMediaType &mediaType, unsigned sessionID)
virtual void HandleTransferCall(const PString &token, const PString &identity)
unsigned GetUUIEsRequested() const
Definition: h323con.h:1993
PDECLARE_AcceptHandlerNotifier(H323Connection, NewIncomingControlChannel)
Definition: h323neg.h:248