34 #ifndef OPAL_H323_H323EP_H
35 #define OPAL_H323_H323EP_H
59 class H225_EndpointType;
60 class H225_VendorIdentifier;
61 class H225_H221NonStandard;
62 class H225_ServiceControlDescriptor;
63 class H225_FeatureSet;
65 class H235SecurityInfo;
146 const PString & party,
147 void * userData = NULL,
148 unsigned int options = NULL,
158 H225_EndpointType & info
164 H225_VendorIdentifier & info
170 H225_H221NonStandard & info
176 H225_ArrayOf_SupportedProtocols & protocols
183 PStringList & prefixes
223 PINDEX descriptorNum,
233 PINDEX descriptorNum,
241 PINDEX descriptorNum,
248 const PStringArray & codecNames
254 const PStringArray & preferenceOrder
260 const H245_Capability & cap
266 const H245_DataType & dataType
300 const PString & address = PString::Empty(),
301 const PString & identifier = PString::Empty(),
302 const PString & localAddress = PString::Empty()
316 const PString & address,
335 const PString & address,
336 const PString & identifier,
350 const PString & identifier,
397 const PString & password,
398 const PString & username = PString::Empty()
442 const PString & token,
445 const PString & alias,
448 unsigned options = 0,
468 const PString & token,
469 const PString & callIdentity,
470 const PString & remoteParty,
471 void * userData = NULL
480 const PString & token,
481 const PString & remoteParty,
482 const PString & callIdentity = PString::Empty()
493 const PString & primaryCallToken,
494 const PString & secondaryCallToken
501 const PString & remoteParty,
502 unsigned capabilityLevel,
503 void * userData = NULL
513 const PString & party,
530 const PString & token,
531 PSafetyMode mode = PSafeReadWrite
610 const PString & remoteParty
627 H225_AdmissionRequest & arq
638 const PString & callerName,
645 const PString & caller
671 const PString & calleeName,
692 const PString & forwardParty,
706 const PString & forwardParty,
718 const PString & token
724 const PString & token
767 PIPSocket::Address publicAddr,
768 PString & gkIdentifier,
798 const PString & amount,
815 const H225_ServiceControlDescriptor & contents
906 const PString & pattern
916 const PString & server
1051 PBoolean
IsMCU()
const;
1109 const PString & identifer
1130 const PIPSocket::Address & remoteAddress
1136 PIPSocket::Address & localAddr,
1137 const PIPSocket::Address & remoteAddr
1247 const PTimeInterval & newInterval
1335 const PString & existingToken,
1336 const PString & callIdentity,
1337 unsigned capabilityLevel,
1338 const PString & remoteParty,
1340 unsigned int options = 0,
1425 P_REMOVE_VIRTUAL_VOID(OnConnectionCleared(
H323Connection &,
const PString &));
1430 #endif // OPAL_H323_H323EP_H
const PTimeInterval & GetCallTransferT1() const
Definition: h323ep.h:1296
PBoolean ShouldClearCallOnRoundTripFail() const
Definition: h323ep.h:1238
bool InternalCreateGatekeeper(H323Transport *transport)
void SetRtpIpPorts(unsigned udpBase, unsigned udpMax)
Definition: h323ep.h:1182
PTimeInterval capabilityExchangeTimeout
Definition: h323ep.h:1372
virtual void OnConnectionEstablished(H323Connection &connection, const PString &token)
virtual void LoadBaseFeatureSet()
virtual void OnHTTPServiceControl(unsigned operation, unsigned sessionId, const PString &url)
PTimeInterval callIntrusionT6
Definition: h323ep.h:1405
PBoolean CanEnforceDurationLimit() const
Definition: h323ep.h:976
const PTimeInterval & GetControlChannelStartTimeout() const
Definition: h323ep.h:1202
PBoolean DiscoverGatekeeper(H323Transport *transport=NULL)
PTimeInterval registrationTimeToLive
Definition: h323ep.h:1381
PBoolean UseGatekeeper(const PString &address=PString::Empty(), const PString &identifier=PString::Empty(), const PString &localAddress=PString::Empty())
WORD GetNextTCPPort()
Definition: h323ep.h:1154
Definition: h323ep.h:1025
PTimeInterval controlChannelStartTimeout
Definition: h323ep.h:1368
const PString & GetDefaultILSServer() const
Definition: h323ep.h:911
const PTimeInterval & GetSignallingChannelCallTimeout() const
Definition: h323ep.h:1198
virtual void SetGatekeeperPassword(const PString &password, const PString &username=PString::Empty())
PTimeInterval callIntrusionT4
Definition: h323ep.h:1403
void SetUDPPorts(unsigned udpBase, unsigned udpMax)
unsigned GetRasRequestRetries() const
Definition: h323ep.h:1264
PBoolean RemoveGatekeeper(int reason=-1)
virtual PBoolean IsLocalAddress(const PIPSocket::Address &remoteAddress) const
Definition: h323ep.h:1129
H323CallIdentityDict & GetCallIdentityDictionary()
Definition: h323ep.h:1320
virtual void OnRegistrationConfirm()
const PString & GetDefaultILSServer() const
Definition: manager.h:1501
void SetTCPPorts(unsigned tcpBase, unsigned tcpMax)
Definition: h323ep.h:1150
const PTimeInterval & GetLogicalChannelTimeout() const
Definition: h323ep.h:1222
PSafePtr< H323Connection > FindConnectionWithLock(const PString &token, PSafetyMode mode=PSafeReadWrite)
virtual PBoolean IsConnectionEstablished(const PString &token)
void SetTCPPorts(unsigned tcpBase, unsigned tcpMax)
PBoolean sendGRQ
Definition: h323ep.h:1384
virtual H235Authenticators CreateAuthenticators()
Definition: h323caps.h:89
unsigned initialBandwidth
Definition: endpoint.h:816
const PStringList & GetAliasNames() const
Definition: h323ep.h:896
Definition: transports.h:703
void DisableFastStart(PBoolean mode)
Definition: h323ep.h:926
virtual PBoolean OnOutgoingCall(H323Connection &conn, const H323SignalPDU &connectPDU)
PTimeInterval callTransferT4
Definition: h323ep.h:1397
Definition: h323ep.h:1022
void SetCanDisplayAmountString(PBoolean mode)
Definition: h323ep.h:970
H460_FeatureSet * DeriveNewFeatureSet()
void SetCallIntrusionProtectionLevel(unsigned level)
Definition: h323ep.h:992
const PTimeInterval & GetCallIntrusionT3() const
Definition: h323ep.h:1313
virtual void TranslateTCPAddress(PIPSocket::Address &localAddr, const PIPSocket::Address &remoteAddr)
Definition: h323ep.h:1024
void SetRtpIpPorts(unsigned udpBase, unsigned udpMax)
bool disableH460
Next available callIdentity for H450 Transfer operations via consultation.
Definition: h323ep.h:1420
const PTimeInterval & GetRoundTripDelayRate() const
Definition: h323ep.h:1234
PBoolean m_bH245Disabled
Definition: h323ep.h:1351
PBoolean CanDisplayAmountString() const
Definition: h323ep.h:965
unsigned callIntrusionProtectionLevel
Definition: h323ep.h:1355
const PTimeInterval & GetRequestModeTimeout() const
Definition: h323ep.h:1226
PBoolean ParsePartyName(const PString &party, PString &alias, H323TransportAddress &address, OpalConnection::StringOptions *stringOptions=NULL)
WORD GetTCPPortMax() const
Definition: h323ep.h:1146
void P_DEPRECATED SetRtpIpTypeofService(unsigned tos)
Definition: h323ep.h:1194
unsigned GetInitialBandwidth() const
Definition: h323ep.h:1072
PString GetDefaultTransport() const
virtual H323Connection * CreateConnection(OpalCall &call, const PString &token, void *userData, OpalTransport &transport, const PString &alias, const H323TransportAddress &address, H323SignalPDU *setupPDU, unsigned options=0, OpalConnection::StringOptions *stringOptions=NULL)
H323Connection * InternalMakeCall(OpalCall &call, const PString &existingToken, const PString &callIdentity, unsigned capabilityLevel, const PString &remoteParty, void *userData, unsigned int options=0, OpalConnection::StringOptions *stringOptions=NULL)
WORD GetRtpIpPortPair()
Definition: h323ep.h:1186
virtual PBoolean NewIncomingConnection(OpalTransport *transport)
PBoolean SetNoMediaTimeout(const PTimeInterval &newInterval)
virtual PBoolean ForwardConnection(H323Connection &connection, const PString &forwardParty, const H323SignalPDU &pdu)
Definition: h323ep.h:1014
const PTimeInterval & GetCallIntrusionT5() const
Definition: h323ep.h:1315
virtual PBoolean IsLocalAddress(const PIPSocket::Address &remoteAddress) const
const PTimeInterval & GetCallTransferT4() const
Definition: h323ep.h:1308
virtual PBoolean OnSentAlerting(H323Connection &connection)
PTimeInterval callIntrusionT3
Definition: h323ep.h:1402
PBoolean SetNoMediaTimeout(const PTimeInterval &newInterval)
Definition: h323ep.h:1246
virtual PBoolean OnAlerting(H323Connection &connection, const H323SignalPDU &alertingPDU, const PString &user)
PBoolean IntrudeCall(const PString &remoteParty, unsigned capabilityLevel, void *userData=NULL)
const PTimeInterval & GetMasterSlaveDeterminationTimeout() const
Definition: h323ep.h:1210
virtual void SetLocalUserName(const PString &name)
Definition: h323ep.h:1013
virtual bool OnFeatureInstance(int instType, const PString &identifer)
const PTimeInterval & GetCallIntrusionT2() const
Definition: h323ep.h:1312
unsigned rasRequestRetries
Definition: h323ep.h:1380
virtual PBoolean OnConferenceInvite(const H323SignalPDU &setupPDU)
Definition: h323ep.h:1012
unsigned GetCallIntrusionProtectionLevel() const
Definition: h323ep.h:988
virtual PBoolean OnSendAlerting(H323Connection &connection, H323SignalPDU &alerting, const PString &calleeName, PBoolean withMedia)
const PTimeInterval & GetGatekeeperTimeToLive() const
Definition: h323ep.h:1269
virtual void OnReceivedInitiateReturnError()
PString gatekeeperPassword
Definition: h323ep.h:1411
virtual void OnSendARQ(H323Connection &conn, H225_AdmissionRequest &arq)
Definition: channels.h:99
Definition: h323ep.h:1023
PTimeInterval logicalChannelTimeout
Definition: h323ep.h:1373
AnswerCallResponse
Definition: connection.h:417
void AddAllUserInputCapabilities(PINDEX descriptorNum, PINDEX simultaneous)
H323Capability * FindCapability(const H245_Capability &cap) const
Definition: connection.h:462
void DisableH245Tunneling(PBoolean mode)
Definition: h323ep.h:937
WORD GetUDPPortBase() const
Definition: manager.h:1279
virtual PBoolean OnNegotiateConferenceCapabilities(const H323SignalPDU &setupPDU)
virtual PSafePtr< OpalConnection > MakeConnection(OpalCall &call, const PString &party, void *userData=NULL, unsigned int options=NULL, OpalConnection::StringOptions *stringOptions=NULL)
PTimeInterval roundTripDelayTimeout
Definition: h323ep.h:1375
WORD GetNextUDPPort()
Definition: h323ep.h:1170
const PTimeInterval & GetCallIntrusionT1() const
Definition: h323ep.h:1311
H323EndPoint(OpalManager &manager)
void SetGatekeeperTimeToLive(const PTimeInterval &ttl)
Definition: h323ep.h:1274
WORD GetTCPPortBase() const
Definition: manager.h:1263
PTimeInterval callTransferT2
Definition: h323ep.h:1391
TerminalTypes GetTerminalType() const
Definition: h323ep.h:1035
PBoolean IsRegisteredWithGatekeeper() const
PBoolean RemoveAliasName(const PString &name)
H460_FeatureSet features
Definition: h323ep.h:1421
PBoolean AddAliasNamePattern(const PString &pattern)
unsigned GetMasterSlaveDeterminationRetries() const
Definition: h323ep.h:1214
const PTimeInterval & GetRasRequestTimeout() const
Definition: h323ep.h:1260
const PTimeInterval & GetCapabilityExchangeTimeout() const
Definition: h323ep.h:1218
bool FeatureSetDisabled() const
Definition: h323ep.h:1115
PTimeInterval signallingChannelCallTimeout
Definition: h323ep.h:1367
PBoolean AddAliasName(const PString &name)
PTimeInterval callIntrusionT1
Definition: h323ep.h:1400
Definition: h323ep.h:1016
PTimeInterval rasRequestTimeout
Definition: h323ep.h:1379
Definition: h323ep.h:1017
virtual const PString & GetGatekeeperPassword() const
Definition: h323ep.h:407
void SetAudioJitterDelay(unsigned minDelay, unsigned maxDelay)
Definition: h323ep.h:1065
PBoolean canEnforceDurationLimit
Definition: h323ep.h:1353
PTimeInterval gatekeeperRequestTimeout
Definition: h323ep.h:1377
virtual void OnClosedLogicalChannel(H323Connection &connection, const H323Channel &channel)
const PTimeInterval & GetNoMediaTimeout() const
Definition: manager.h:1491
bool GetDefaultH239Control() const
Definition: h323ep.h:1081
PAtomicInteger nextH450CallIdentity
Definition: h323ep.h:1415
void SetCanEnforceDurationLimit(PBoolean mode)
Definition: h323ep.h:981
WORD GetTCPPortMax() const
Definition: manager.h:1267
bool m_defaultH239Control
Definition: h323ep.h:1361
Definition: h323ep.h:1026
PBoolean SetGatekeeperZone(const PString &address, const PString &identifier, H323Transport *transport=NULL)
WORD GetRtpIpPortMax() const
Definition: h323ep.h:1178
PStringList localAliasNames
Definition: h323ep.h:1345
virtual PBoolean OnConnectionForwarded(H323Connection &connection, const PString &forwardParty, const H323SignalPDU &pdu)
const PTimeInterval & GetEndSessionTimeout() const
Definition: h323ep.h:1206
virtual bool OnSetGatewayPrefixes(PStringList &prefixes) const
PString gkAccessTokenOID
Definition: h323ep.h:1383
void DisableH245inSetup(PBoolean mode)
Definition: h323ep.h:948
virtual PBoolean OnCallTransferInitiate(H323Connection &connection, const PString &remoteParty)
PBoolean SetGatekeeper(const PString &address, H323Transport *transport=NULL)
PTimeInterval callIntrusionT2
Definition: h323ep.h:1401
PBoolean canDisplayAmountString
Definition: h323ep.h:1352
WORD GetRtpIpPortMax() const
Definition: manager.h:1299
Definition: h323con.h:130
H460_FeatureSet * GetFeatureSet()
Definition: h323ep.h:1124
virtual void SetVendorIdentifierInfo(H225_VendorIdentifier &info) const
virtual void SetDefaultLocalPartyName(const PString &name)
void SetAudioJitterDelay(unsigned minDelay, unsigned maxDelay)
BYTE P_DEPRECATED GetRtpIpTypeofService() const
Definition: h323ep.h:1190
PBoolean LocateGatekeeper(const PString &identifier, H323Transport *transport=NULL)
PBoolean IsFastStartDisabled() const
Definition: h323ep.h:921
virtual void OnReceiveFeatureSet(unsigned, const H225_FeatureSet &)
PBoolean CanAutoCallForward() const
Definition: h323ep.h:1003
WORD GetUDPPortMax() const
Definition: manager.h:1283
virtual void OnRegistrationReject()
PBoolean IsTerminal() const
const PString & GetGkAccessTokenOID() const
Definition: h323ep.h:1278
OpalManager & manager
Definition: endpoint.h:807
PINDEX AddAllCapabilities(PINDEX descriptorNum, PINDEX simultaneous, const PString &name)
void ConsultationTransfer(const PString &primaryCallToken, const PString &secondaryCallToken)
const H323Capabilities & GetCapabilities() const
PTimeInterval masterSlaveDeterminationTimeout
Definition: h323ep.h:1370
Definition: h323caps.h:2097
unsigned GetGatekeeperRequestRetries() const
Definition: h323ep.h:1256
PBoolean disableFastStart
Definition: h323ep.h:1348
PTimeInterval callTransferT3
Definition: h323ep.h:1394
Definition: h323ep.h:1020
unsigned GetMaxAudioJitterDelay() const
Definition: h323ep.h:1061
void SetUDPPorts(unsigned udpBase, unsigned udpMax)
Definition: h323ep.h:1166
PTimeInterval requestModeTimeout
Definition: h323ep.h:1374
void SetDefaultILSServer(const PString &server)
Definition: manager.h:1505
void SetTerminalType(TerminalTypes type)
Definition: h323ep.h:1031
virtual const PString & GetLocalUserName() const
Definition: h323ep.h:873
PBoolean IsGatekeeper() const
virtual void SetH221NonStandardInfo(H225_H221NonStandard &info) const
void SetGkAccessTokenOID(const PString &token)
Definition: h323ep.h:1282
virtual PBoolean OnStartLogicalChannel(H323Connection &connection, H323Channel &channel)
virtual void SetEndpointTypeInfo(H225_EndpointType &info) const
virtual H323Gatekeeper * CreateGatekeeper(H323Transport *transport)
virtual H323ServiceControlSession * CreateServiceControlSession(const H225_ServiceControlDescriptor &contents)
virtual const PString & GetGatekeeperUsername() const
Definition: h323ep.h:403
PBoolean GetSendGRQ() const
Definition: h323ep.h:1286
H323CallIdentityDict secondaryConnectionsActive
Definition: h323ep.h:1412
unsigned GetNextH450CallIdentityValue() const
Definition: h323ep.h:1325
PTimeInterval callTransferT1
Definition: h323ep.h:1388
const PTimeInterval & GetCallTransferT2() const
Definition: h323ep.h:1300
WORD GetRtpIpPortBase() const
Definition: h323ep.h:1174
PBoolean IsGateway() const
WORD GetRtpIpPortBase() const
Definition: manager.h:1295
Definition: h323ep.h:1015
PINDEX SetCapability(PINDEX descriptorNum, PINDEX simultaneous, H323Capability *cap)
Definition: h323ep.h:1019
Definition: h323ep.h:1018
virtual bool SetGatewaySupportedProtocol(H225_ArrayOf_SupportedProtocols &protocols) const
virtual PBoolean OnSendConnect(H323Connection &connection, H323SignalPDU &connectPDU)
virtual void OnGatekeeperNATDetect(PIPSocket::Address publicAddr, PString &gkIdentifier, H323TransportAddress &gkRouteAddress)
Definition: gkclient.h:65
BYTE GetMediaTypeOfService() const
Definition: manager.h:1311
Definition: connection.h:353
void SetInitialBandwidth(unsigned bandwidth)
Definition: h323ep.h:1076
const PTimeInterval & GetCallTransferT3() const
Definition: h323ep.h:1304
unsigned gatekeeperRequestRetries
Definition: h323ep.h:1378
const PTimeInterval & GetCallIntrusionT6() const
Definition: h323ep.h:1316
PBoolean IsH245TunnelingDisabled() const
Definition: h323ep.h:932
void DisableH245(PBoolean bH245Disabled)
Definition: h323ep.h:961
void SetDefaultH239Control(bool on)
Definition: h323ep.h:1085
void TransferCall(const PString &token, const PString &remoteParty, const PString &callIdentity=PString::Empty())
void SetDefaultILSServer(const PString &server)
Definition: h323ep.h:915
void ReorderCapabilities(const PStringArray &preferenceOrder)
PBoolean IsH245Disabled() const
Definition: h323ep.h:955
virtual PBoolean OnSendSignalSetup(H323Connection &connection, H323SignalPDU &setupPDU)
virtual PBoolean OnSendCallProceeding(H323Connection &connection, H323SignalPDU &callProceedingPDU)
virtual void OnGatekeeperConfirm()
WORD GetTCPPortBase() const
Definition: h323ep.h:1142
virtual void OnCallCreditServiceControl(const PString &amount, PBoolean mode)
virtual PBoolean OnCallTransferIdentify(H323Connection &connection)
WORD GetUDPPortBase() const
Definition: h323ep.h:1158
PBoolean disableH245inSetup
Definition: h323ep.h:1350
void AddCapability(H323Capability *capability)
TerminalTypes
Definition: h323ep.h:1011
void FeatureSetDisable()
Definition: h323ep.h:1119
virtual void OnServiceControlSession(unsigned type, unsigned sessionid, const H323ServiceControlSession &session, H323Connection *connection)
const PTimeInterval & GetNoMediaTimeout() const
Definition: h323ep.h:1242
WORD GetUDPPortMax() const
Definition: h323ep.h:1162
void SetMediaTypeOfService(unsigned tos)
Definition: manager.h:1315
PTimeInterval roundTripDelayRate
Definition: h323ep.h:1376
unsigned GetMaxAudioJitterDelay() const
Definition: manager.h:1364
virtual PBoolean SetupTransfer(const PString &token, const PString &callIdentity, const PString &remoteParty, void *userData=NULL)
void SetSendGRQ(PBoolean v)
Definition: h323ep.h:1291
void RemoveCapabilities(const PStringArray &codecNames)
PBoolean disableH245Tunneling
Definition: h323ep.h:1349
virtual OpalConnection::AnswerCallResponse OnAnswerCall(H323Connection &connection, const PString &callerName, const H323SignalPDU &setupPDU, H323SignalPDU &connectPDU, H323SignalPDU &progressPDU)
virtual void OnGatekeeperReject()
PTimeInterval endSessionTimeout
Definition: h323ep.h:1369
PBoolean autoCallForward
Definition: h323ep.h:1347
PString gatekeeperUsername
Definition: h323ep.h:1410
const PTimeInterval & GetRoundTripDelayTimeout() const
Definition: h323ep.h:1230
PStringList localAliasPatterns
Definition: h323ep.h:1346
Definition: transaddr.h:66
const PTimeInterval & GetGatekeeperRequestTimeout() const
Definition: h323ep.h:1252
MainTypes
Definition: h323caps.h:115
H323Gatekeeper * gatekeeper
Definition: h323ep.h:1409
unsigned GetMinAudioJitterDelay() const
Definition: manager.h:1359
virtual void OnRTPStatistics(const H323Connection &connection, const RTP_Session &session) const
unsigned GetMinAudioJitterDelay() const
Definition: h323ep.h:1056
virtual PBoolean OnIncomingCall(H323Connection &connection, const H323SignalPDU &setupPDU, H323SignalPDU &alertingPDU)
virtual PBoolean OnSendFeatureSet(unsigned, H225_FeatureSet &)
H323Capabilities capabilities
Definition: h323ep.h:1408
Definition: h323ep.h:1021
PTimeInterval callIntrusionT5
Definition: h323ep.h:1404
TerminalTypes terminalType
Definition: h323ep.h:1358
H323Gatekeeper * GetGatekeeper() const
Definition: h323ep.h:379
virtual PBoolean OnCallIndependentSupplementaryService(const H323SignalPDU &setupPDU)
PBoolean clearCallOnRoundTripFail
Definition: h323ep.h:1364
const PStringList & GetAliasNamePatterns() const
Definition: h323ep.h:900
const PTimeInterval & GetCallIntrusionT4() const
Definition: h323ep.h:1314
PBoolean IsH245inSetupDisabled() const
Definition: h323ep.h:943
unsigned masterSlaveDeterminationRetries
Definition: h323ep.h:1371