OPAL  Version 3.18.8
H323EndPoint Class Reference

#include <h323ep.h>

Inheritance diagram for H323EndPoint:
Collaboration diagram for H323EndPoint:

Public Types

enum  { DefaultTcpSignalPort = 1720 }
 

Public Member Functions

void SetLocalUserName (const PString &name)
 
const PString & GetLocalUserName () const
 
PTimeInterval InternalGetGatekeeperStartDelay ()
 
Construction
 H323EndPoint (OpalManager &manager)
 
 ~H323EndPoint ()
 
Overrides from OpalEndPoint
virtual void ShutDown ()
 
virtual PBoolean GarbageCollection ()
 
virtual PSafePtr< OpalConnectionMakeConnection (OpalCall &call, const PString &party, void *userData=NULL, unsigned int options=0, OpalConnection::StringOptions *stringOptions=NULL)
 
virtual void OnReleased (OpalConnection &connection)
 
virtual PStringList GetAvailableStringOptions () const
 
Set up functions
virtual void SetEndpointTypeInfo (H225_EndpointType &info) const
 
virtual void SetVendorIdentifierInfo (H225_VendorIdentifier &info) const
 
virtual void SetH221NonStandardInfo (H225_H221NonStandard &info) const
 
virtual bool SetGatewaySupportedProtocol (H225_ArrayOf_SupportedProtocols &protocols) const
 
virtual bool OnSetGatewayPrefixes (PStringList &prefixes) const
 
Connection management
virtual void NewIncomingConnection (OpalListener &listener, const OpalTransportPtr &transport)
 
void InternalNewIncomingConnection (OpalTransportPtr transport, bool reused=false)
 
virtual H323ConnectionCreateConnection (OpalCall &call, const PString &token, void *userData, OpalTransport &transport, const PString &alias, const H323TransportAddress &address, H323SignalPDU *setupPDU, unsigned options=0, OpalConnection::StringOptions *stringOptions=NULL)
 
virtual PBoolean SetupTransfer (const PString &token, const PString &callIdentity, const PString &remoteParty, void *userData=NULL)
 
void TransferCall (const PString &token, const PString &remoteParty, const PString &callIdentity=PString::Empty())
 
void ConsultationTransfer (const PString &primaryCallToken, const PString &secondaryCallToken)
 
PBoolean IntrudeCall (const PString &remoteParty, unsigned capabilityLevel, void *userData=NULL)
 
PBoolean ParsePartyName (const PString &party, PString &alias, H323TransportAddress &address, OpalConnection::StringOptions *stringOptions=NULL)
 
PSafePtr< H323ConnectionFindConnectionWithLock (const PString &token, PSafetyMode mode=PSafeReadWrite)
 
virtual PBoolean OnSendSignalSetup (H323Connection &connection, H323SignalPDU &setupPDU)
 
virtual PBoolean OnSendCallProceeding (H323Connection &connection, H323SignalPDU &callProceedingPDU)
 
virtual PBoolean OnSendConnect (H323Connection &connection, H323SignalPDU &connectPDU)
 
virtual PBoolean OnIncomingCall (H323Connection &connection, const H323SignalPDU &setupPDU, H323SignalPDU &alertingPDU)
 
virtual PBoolean OnOutgoingCall (H323Connection &conn, const H323SignalPDU &connectPDU)
 
virtual PBoolean OnCallTransferInitiate (H323Connection &connection, const PString &remoteParty)
 
virtual PBoolean OnCallTransferIdentify (H323Connection &connection)
 
virtual void OnSendARQ (H323Connection &conn, H225_AdmissionRequest &arq)
 
virtual
OpalConnection::AnswerCallResponse 
OnAnswerCall (H323Connection &connection, const PString &callerName, const H323SignalPDU &setupPDU, H323SignalPDU &connectPDU, H323SignalPDU &progressPDU)
 
virtual
OpalConnection::AnswerCallResponse 
OnAnswerCall (OpalConnection &connection, const PString &caller)
 
virtual PBoolean OnAlerting (H323Connection &connection, const H323SignalPDU &alertingPDU, const PString &user)
 
virtual PBoolean OnSendAlerting (H323Connection &connection, H323SignalPDU &alerting, const PString &calleeName, PBoolean withMedia)
 
virtual PBoolean OnSentAlerting (H323Connection &connection)
 
virtual PBoolean OnConnectionForwarded (H323Connection &connection, const PString &forwardParty, const H323SignalPDU &pdu)
 
virtual PBoolean ForwardConnection (H323Connection &connection, const PString &forwardParty, const H323SignalPDU &pdu)
 
virtual void OnConnectionEstablished (H323Connection &connection, const PString &token)
 
virtual PBoolean IsConnectionEstablished (const PString &token)
 
Logical Channels management
virtual PBoolean OnStartLogicalChannel (H323Connection &connection, H323Channel &channel)
 
virtual void OnClosedLogicalChannel (H323Connection &connection, const H323Channel &channel)
 
virtual void OnGatekeeperNATDetect (const PIPSocket::Address &publicAddr, H323TransportAddress &gkRouteAddress)
 
Service Control
virtual void OnHTTPServiceControl (unsigned operation, unsigned sessionId, const PString &url)
 
virtual void OnCallCreditServiceControl (const PString &amount, PBoolean mode)
 
virtual void OnServiceControlSession (unsigned type, unsigned sessionid, const H323ServiceControlSession &session, H323Connection *connection)
 
virtual H323ServiceControlSessionCreateServiceControlSession (const H225_ServiceControlDescriptor &contents)
 
Additional call services
virtual PBoolean OnCallIndependentSupplementaryService (const H323SignalPDU &setupPDU)
 
virtual PBoolean OnNegotiateConferenceCapabilities (const H323SignalPDU &setupPDU)
 
- Public Member Functions inherited from OpalEndPoint
 P_DECLARE_BITWISE_ENUM (Attributes, 2,(NoAttributes, IsNetworkEndPoint, SupportsE164))
 
 OpalEndPoint (OpalManager &manager, const PCaselessString &prefix, Attributes attributes)
 
 ~OpalEndPoint ()
 
void PrintOn (ostream &strm) const
 
bool StartListeners (const PStringArray &interfaces, bool add=true)
 
virtual bool StartListener (const PString &address)
 
virtual bool StartListener (OpalListener *listener)
 
virtual PStringArray GetDefaultListeners () const
 
OpalListenerFindListener (const OpalTransportAddress &iface)
 
bool FindListenerForProtocol (const char *proto, OpalTransportAddress &addr)
 
PBoolean StopListener (const OpalTransportAddress &iface)
 
PBoolean RemoveListener (OpalListener *listener)
 
OpalTransportAddressArray GetInterfaceAddresses (const OpalTransport *associatedTransport=NULL) const
 
 PDECLARE_AcceptHandlerNotifier (OpalEndPoint, NewIncomingConnection)
 
virtual void OnNewConnection (OpalCall &call, OpalConnection &connection)
 
virtual PBoolean OnSetUpConnection (OpalConnection &connection)
 
virtual PBoolean OnIncomingConnection (OpalConnection &connection, unsigned options, OpalConnection::StringOptions *stringOptions)
 
virtual void OnProceeding (OpalConnection &connection)
 
virtual void OnAlerting (OpalConnection &connection, bool withMedia)
 
virtual void OnAlerting (OpalConnection &connection)
 
virtual void OnConnected (OpalConnection &connection)
 
virtual void OnEstablished (OpalConnection &connection)
 
virtual void OnHold (OpalConnection &connection, bool fromRemote, bool onHold)
 
virtual void OnHold (OpalConnection &connection)
 
virtual PBoolean OnForwarded (OpalConnection &connection, const PString &remoteParty)
 
virtual bool OnTransferNotify (OpalConnection &connection, const PStringToString &info, const OpalConnection *transferringConnection)
 
virtual PBoolean ClearCall (const PString &token, OpalConnection::CallEndReason reason=OpalConnection::EndedByLocalUser, PSyncPoint *sync=NULL)
 
virtual PBoolean ClearCallSynchronous (const PString &token, OpalConnection::CallEndReason reason=OpalConnection::EndedByLocalUser, PSyncPoint *sync=NULL)
 
virtual void ClearAllCalls (OpalConnection::CallEndReason reason=OpalConnection::EndedByLocalUser, PBoolean wait=true)
 
PSafePtr< OpalConnectionGetConnectionWithLock (const PString &token, PSafetyMode mode=PSafeReadWrite) const
 
template<class ConnClass >
PSafePtr< ConnClass > GetConnectionWithLockAs (const PString &token, PSafetyMode mode=PSafeReadWrite) const
 
PStringList GetAllConnections ()
 
PINDEX GetConnectionCount () const
 
virtual PBoolean HasConnection (const PString &token)
 
virtual void DestroyConnection (OpalConnection *connection)
 
virtual void AdjustMediaFormats (bool local, const OpalConnection &connection, OpalMediaFormatList &mediaFormats) const
 
virtual bool GetMediaTransportAddresses (const OpalConnection &provider, const OpalConnection &consumer, unsigned sessionId, const OpalMediaType &mediaType, OpalTransportAddressArray &transports) const
 
virtual PBoolean OnOpenMediaStream (OpalConnection &connection, OpalMediaStream &stream)
 
virtual void OnFailedMediaStream (OpalConnection &connection, bool fromRemote, const PString &reason)
 
void SetMediaCryptoSuites (const PStringArray &security)
 
PStringArray GetMediaCryptoSuites () const
 
virtual PStringArray GetAllMediaCryptoSuites () const
 
virtual void OnUserInputString (OpalConnection &connection, const PString &value)
 
virtual void OnUserInputTone (OpalConnection &connection, char tone, int duration)
 
virtual PString ReadUserInput (OpalConnection &connection, const char *terminators="#\r\n", unsigned lastDigitTimeout=4, unsigned firstDigitTimeout=30)
 
virtual PBoolean Message (const PString &to, const PString &body)
 
virtual PBoolean Message (const PURL &to, const PString &type, const PString &body, PURL &from, PString &conversationId)
 
virtual PBoolean Message (OpalIM &Message)
 
virtual void OnMessageReceived (const OpalIM &message)
 
virtual void OnMWIReceived (const PString &party, OpalManager::MessageWaitingType type, const PString &extraInfo)
 
virtual bool GetConferenceStates (OpalConferenceStates &states, const PString &name=PString::Empty()) const
 
virtual void OnConferenceStatusChanged (OpalEndPoint &endpoint, const PString &uri, OpalConferenceState::ChangeType change)
 
virtual PStringList GetNetworkURIs (const PString &name) const
 
OpalManagerGetManager () const
 
const PString & GetPrefixName () const
 
bool HasAttribute (Attributes opt) const
 
const OpalProductInfoGetProductInfo () const
 
void SetProductInfo (const OpalProductInfo &info)
 
const PString & GetDefaultLocalPartyName () const
 
const PString & GetDefaultDisplayName () const
 
void SetDefaultDisplayName (const PString &name)
 
OpalBandwidth GetInitialBandwidth (OpalBandwidth::Direction dir) const
 
bool SetInitialBandwidth (OpalBandwidth::Direction dir, OpalBandwidth bandwidth)
 
const OpalListenerList & GetListeners () const
 
const
OpalConnection::StringOptions
GetDefaultStringOptions () const
 
void SetDefaultStringOptions (const OpalConnection::StringOptions &opts, bool overwrite=false)
 
void SetDefaultStringOption (const PCaselessString &key, const PString &data)
 
void RemoveDefaultStringOption (const PCaselessString &key)
 
OpalConnection::SendUserInputModes GetSendUserInputMode () const
 
void SetSendUserInputMode (OpalConnection::SendUserInputModes mode)
 
const PIPSocket::QoS & GetSignalQoS () const
 
void SetSignalQoS (const PIPSocket::QoS &qos)
 
const PIPSocket::QoS & GetMediaQoS (const OpalMediaType &type) const
 
void SetMediaQoS (const OpalMediaType &type, const PIPSocket::QoS &qos)
 
PINDEX GetMaxSizeUDP () const
 
void SetMaxSizeUDP (PINDEX size)
 

Static Public Member Functions

static const OpalProductInfoAvayaPhone ()
 

Protected Types

typedef map< PString,
OpalTransportAddress
AliasToGkMap
 
typedef PDictionary< PString,
H323Gatekeeper
GatekeeperByAlias
 
typedef map
< H323Connection::CompatibilityIssues,
PRegularExpression > 
CompatibilityEndpoints
 
- Protected Types inherited from OpalRTPEndPoint
typedef std::map
< OpalTransportAddress,
LocalRtpInfo
LocalRtpInfoMap
 

Protected Member Functions

bool InternalStartGatekeeper (const H323TransportAddress &remoteAddress, const PString &localAddress)
 
bool InternalRestartGatekeeper (bool adjustingRegistrations=true)
 
bool InternalCreateGatekeeper (const H323TransportAddress &remoteAddress, const PStringList &aliases)
 
void InternalSetGatekeeperPassword (H323Gatekeeper &gatekeeper, const OpalTransportAddress &gatekeeperAddress) const
 
H323ConnectionInternalMakeCall (OpalCall &call, const PString &existingToken, const PString &callIdentity, unsigned capabilityLevel, const PString &remoteParty, void *userData, unsigned int options=0, OpalConnection::StringOptions *stringOptions=NULL)
 
 PDECLARE_MUTEX (m_aliasMutex)
 
 PDECLARE_MUTEX (m_delayGatekeeperMutex)
 
 PDECLARE_MUTEX (m_reusableTransportMutex)
 
 PDECLARE_MUTEX (m_gatekeeperMutex)
 
- Protected Member Functions inherited from OpalRTPEndPoint
 PDECLARE_MUTEX (m_connectionsByRtpMutex)
 
- Protected Member Functions inherited from OpalEndPoint
OpalConnectionAddConnection (OpalConnection *connection)
 

Protected Attributes

AliasToGkMap m_localAliasNames
 
AliasToGkMap m_localAliasPatterns
 
PBoolean autoCallForward
 
PBoolean disableFastStart
 
PBoolean disableH245Tunneling
 
PBoolean disableH245inSetup
 
bool m_forceSymmetricTCS
 
PBoolean m_bH245Disabled
 
PBoolean canDisplayAmountString
 
PBoolean canEnforceDurationLimit
 
unsigned callIntrusionProtectionLevel
 
TerminalTypes terminalType
 
bool m_defaultH239Control
 
PBoolean clearCallOnRoundTripFail
 
PTimeInterval signallingChannelCallTimeout
 
PTimeInterval firstSignalPduTimeout
 
PTimeInterval endSessionTimeout
 
PTimeInterval masterSlaveDeterminationTimeout
 
unsigned masterSlaveDeterminationRetries
 
PTimeInterval capabilityExchangeTimeout
 
PTimeInterval logicalChannelTimeout
 
PTimeInterval requestModeTimeout
 
PTimeInterval roundTripDelayTimeout
 
PTimeInterval roundTripDelayRate
 
PTimeInterval gatekeeperRequestTimeout
 
unsigned gatekeeperRequestRetries
 
PTimeInterval rasRequestTimeout
 
unsigned rasRequestRetries
 
PTimeInterval registrationTimeToLive
 
PTimeInterval m_gatekeeperStartDelay
 
PString gkAccessTokenOID
 
bool m_sendGRQ
 
bool m_oneSignalAddressInRRQ
 
PTime m_nextGatekeeperDiscovery
 
PTimeInterval callTransferT1
 
PTimeInterval callTransferT2
 
PTimeInterval callTransferT3
 
PTimeInterval callTransferT4
 
PTimeInterval callIntrusionT1
 
PTimeInterval callIntrusionT2
 
PTimeInterval callIntrusionT3
 
PTimeInterval callIntrusionT4
 
PTimeInterval callIntrusionT5
 
PTimeInterval callIntrusionT6
 
PSafeDictionary< PString,
H323Connection
m_connectionsByCallId
 
std::set< OpalTransportPtrm_reusableTransports
 
H323Capabilities m_capabilities
 
GatekeeperList m_gatekeepers
 
GatekeeperByAlias m_gatekeeperByAlias
 
OpalTransportAddressArray m_gatekeeperInterfaces
 
PString m_gatekeeperUsername
 
PString m_gatekeeperPassword
 
PINDEX m_gatekeeperAliasLimit
 
bool m_gatekeeperSimulatePattern
 
bool m_gatekeeperRasRedirect
 
PStringToString m_aliasPasswords
 
PString m_aliasPwdDefaultAddress
 
H323CallIdentityDict m_secondaryConnectionsActive
 
atomic< unsigned > m_nextH450CallIdentity
 
bool m_disableH460
 Next available callIdentity for H450 Transfer operations via consultation. More...
 
H460_FeatureSetm_features
 
CompatibilityEndpoints m_compatibility
 
- Protected Attributes inherited from OpalRTPEndPoint
LocalRtpInfoMap m_connectionsByRtpLocalAddr
 
- Protected Attributes inherited from OpalEndPoint
OpalManagerm_manager
 
PCaselessString m_prefixName
 
Attributes m_attributes
 
PINDEX m_maxSizeUDP
 
OpalProductInfo m_productInfo
 
PString m_defaultLocalPartyName
 
PString m_defaultDisplayName
 
PStringArray m_mediaCryptoSuites
 
PIPSocket::QoS m_signalQoS
 
OpalManager::MediaQoSMap m_mediaQoS
 
OpalBandwidth m_initialRxBandwidth
 
OpalBandwidth m_initialTxBandwidth
 
OpalConnection::StringOptions m_defaultStringOptions
 
OpalConnection::SendUserInputModes m_defaultSendUserInputMode
 
OpalListenerList m_listeners
 
OpalEndPoint::ConnectionDict m_connectionsActive
 

Gatekeeper management

enum  { MaxGatekeeperAliasLimit = 1000000 }
 
typedef PList< H323GatekeeperGatekeeperList
 
bool UseGatekeeper (const PString &address=PString::Empty(), const PString &identifier=PString::Empty(), const PString &localAddress=PString::Empty())
 
bool SetGatekeeper (const PString &address, const PString &localAddress=PString::Empty())
 
bool SetGatekeeperZone (const PString &address, const PString &identifier, const PString &localAddress=PString::Empty())
 
bool LocateGatekeeper (const PString &identifier, const PString &localAddress=PString::Empty())
 
bool DiscoverGatekeeper (const PString &localAddress=PString::Empty())
 
virtual H323GatekeeperCreateGatekeeper (H323Transport *transport)
 
H323GatekeeperGetGatekeeper (const PString &alias=PString::Empty()) const
 
const GatekeeperListGetGatekeepers () const
 
PBoolean IsRegisteredWithGatekeeper (bool all=false) const
 
PBoolean RemoveGatekeeper (int reason=-1)
 
virtual void SetGatekeeperPassword (const PString &password, const PString &username=PString::Empty())
 
void SetAliasPasswords (const PStringToString &aliasPasswords, const PString &defaultAddress)
 
virtual const PString & GetGatekeeperUsername () const
 
virtual const PString & GetGatekeeperPassword () const
 
void SetGatekeeperAliasLimit (PINDEX limit)
 
PINDEX GetGatekeeperAliasLimit () const
 
void SetGatekeeperSimulatePattern (bool sim)
 
bool GetGatekeeperSimulatePattern () const
 
void SetGatekeeperRasRedirect (bool redir)
 
bool GetGatekeeperRasRedirect () const
 
virtual H235Authenticators CreateAuthenticators ()
 
virtual void OnGatekeeperStatus (H323Gatekeeper &gk, H323Gatekeeper::RegistrationFailReasons status)
 
virtual void OnGatekeeperStatus (H323Gatekeeper::RegistrationFailReasons status)
 

Member variable access

enum  TerminalTypes {
  e_SimpleEndpointType = 40, e_TerminalOnly = 50, e_TerminalAndMC = 70, e_GatewayOnly = 60,
  e_GatewayAndMC = 80, e_GatewayAndMCWithDataMP = 90, e_GatewayAndMCWithAudioMP = 100, e_GatewayAndMCWithAVMP = 110,
  e_GatekeeperOnly = 120, e_GatekeeperWithDataMP = 130, e_GatekeeperWithAudioMP = 140, e_GatekeeperWithAVMP = 150,
  e_MCUOnly = 160, e_MCUWithDataMP = 170, e_MCUWithAudioMP = 180, e_MCUWithAVMP = 190
}
 
static int ParseAliasPatternRange (const PString &pattern, PString &start, PString &end)
 
virtual void SetDefaultLocalPartyName (const PString &name)
 
bool SetAliasNames (const PStringList &names)
 
bool AddAliasNames (const PStringList &names, const PString &altGk=PString::Empty(), bool updateGk=true)
 
bool RemoveAliasNames (const PStringList &names, bool updateGk=true)
 
bool AddAliasName (const PString &name, const PString &altGk=PString::Empty(), bool updateGk=true)
 
bool RemoveAliasName (const PString &name, bool updateGk=true)
 
PStringList GetAliasNames () const
 
bool AddAliasNamePatterns (const PStringList &patterns, const PString &altGk=PString::Empty(), bool updateGk=true)
 
bool RemoveAliasNamePatterns (const PStringList &patterns, bool updateGk=true)
 
bool AddAliasNamePattern (const PString &pattern, const PString &altGk=PString::Empty(), bool updateGk=true)
 
bool RemoveAliasNamePattern (const PString &pattern, bool updateGk=true)
 
bool SetAliasNamePatterns (const PStringList &patterns)
 
PStringList GetAliasNamePatterns () const
 
bool HasAlias (const PString &alias) const
 
const PString & GetDefaultILSServer () const
 
void SetDefaultILSServer (const PString &server)
 
PBoolean IsFastStartDisabled () const
 
void DisableFastStart (PBoolean mode)
 
PBoolean IsH245TunnelingDisabled () const
 
void DisableH245Tunneling (PBoolean mode)
 
PBoolean IsH245inSetupDisabled () const
 
void DisableH245inSetup (PBoolean mode)
 
bool IsForcedSymmetricTCS () const
 
void ForceSymmetricTCS (bool mode)
 
PBoolean IsH245Disabled () const
 
void DisableH245 (PBoolean bH245Disabled)
 
PBoolean CanDisplayAmountString () const
 
void SetCanDisplayAmountString (PBoolean mode)
 
PBoolean CanEnforceDurationLimit () const
 
void SetCanEnforceDurationLimit (PBoolean mode)
 
unsigned GetCallIntrusionProtectionLevel () const
 
void SetCallIntrusionProtectionLevel (unsigned level)
 
virtual void OnReceivedInitiateReturnError ()
 
PBoolean CanAutoCallForward () const
 
const H323CapabilitiesGetCapabilities () const
 
void SetTerminalType (TerminalTypes type)
 
TerminalTypes GetTerminalType () const
 
PBoolean IsTerminal () const
 
PBoolean IsGateway () const
 
PBoolean IsGatekeeper () const
 
PBoolean IsMCU () const
 
unsigned GetMinAudioJitterDelay () const
 
unsigned GetMaxAudioJitterDelay () const
 
void SetAudioJitterDelay (unsigned minDelay, unsigned maxDelay)
 
bool GetDefaultH239Control () const
 
void SetDefaultH239Control (bool on)
 
bool H460Disabled () const
 
void DisableH460 (bool disable=true)
 
H460_FeatureSetGetFeatures () const
 
virtual H460_FeatureSetCreateFeatureSet (H323Connection *connection)
 
virtual H460_FeatureSetInternalCreateFeatureSet (H323Connection *connection)
 
virtual PBoolean OnSendFeatureSet (H460_MessageType pduType, H225_FeatureSet &)
 
virtual void OnReceiveFeatureSet (H460_MessageType pduType, const H225_FeatureSet &)
 
virtual bool OnLoadFeature (H460_Feature &feature)
 
virtual PBoolean IsLocalAddress (const PIPSocket::Address &remoteAddress) const
 
virtual void TranslateTCPAddress (PIPSocket::Address &localAddr, const PIPSocket::Address &remoteAddr)
 
const PTimeInterval & GetSignallingChannelCallTimeout () const
 
const PTimeInterval & GetFirstSignalPduTimeout () const
 
const PTimeInterval & GetEndSessionTimeout () const
 
const PTimeInterval & GetMasterSlaveDeterminationTimeout () const
 
unsigned GetMasterSlaveDeterminationRetries () const
 
const PTimeInterval & GetCapabilityExchangeTimeout () const
 
const PTimeInterval & GetLogicalChannelTimeout () const
 
const PTimeInterval & GetRequestModeTimeout () const
 
const PTimeInterval & GetRoundTripDelayTimeout () const
 
const PTimeInterval & GetRoundTripDelayRate () const
 
PBoolean ShouldClearCallOnRoundTripFail () const
 
const PTimeInterval & GetNoMediaTimeout () const
 
void SetNoMediaTimeout (const PTimeInterval &newInterval)
 
const PTimeInterval & GetGatekeeperRequestTimeout () const
 
unsigned GetGatekeeperRequestRetries () const
 
const PTimeInterval & GetRasRequestTimeout () const
 
unsigned GetRasRequestRetries () const
 
const PTimeInterval & GetGatekeeperTimeToLive () const
 
void SetGatekeeperTimeToLive (const PTimeInterval &ttl)
 
const PTimeInterval & GetGatekeeperStartDelay () const
 
void SetGatekeeperStartDelay (const PTimeInterval &gatekeeperStartDelay)
 
const PString & GetGkAccessTokenOID () const
 
void SetGkAccessTokenOID (const PString &token)
 
bool GetSendGRQ () const
 
void SetSendGRQ (bool v)
 
bool GetOneSignalAddressInRRQ () const
 
void SetOneSignalAddressInRRQ (bool v)
 
const PTimeInterval & GetCallTransferT1 () const
 
const PTimeInterval & GetCallTransferT2 () const
 
const PTimeInterval & GetCallTransferT3 () const
 
const PTimeInterval & GetCallTransferT4 () const
 
const PTimeInterval & GetCallIntrusionT1 () const
 
const PTimeInterval & GetCallIntrusionT2 () const
 
const PTimeInterval & GetCallIntrusionT3 () const
 
const PTimeInterval & GetCallIntrusionT4 () const
 
const PTimeInterval & GetCallIntrusionT5 () const
 
const PTimeInterval & GetCallIntrusionT6 () const
 
H323CallIdentityDict & GetCallIdentityDictionary ()
 
unsigned GetNextH450CallIdentityValue () const
 
virtual PString GetDefaultTransport () const
 
virtual WORD GetDefaultSignalPort () const
 
PString GetCompatibility (H323Connection::CompatibilityIssues issue) const
 Gets the current regular expression for the compatibility issue. More...
 
bool SetCompatibility (H323Connection::CompatibilityIssues issue, const PString &regex)
 
bool AddCompatibility (H323Connection::CompatibilityIssues issue, const PString &regex)
 
bool HasCompatibilityIssue (H323Connection::CompatibilityIssues issue, const OpalProductInfo &productInfo) const
 Determine if we must compensate for remote endpoint. More...
 

Detailed Description

This class manages the H323 endpoint. An endpoint may have zero or more listeners to create incoming connections or zero or more outgoing connections initiated via the MakeCall() function. Once a conection exists it is managed by this class instance.

The main thing this class embodies is the capabilities of the application, that is the codecs and protocols it is capable of.

An application may create a descendent off this class and overide the CreateConnection() function, if they require a descendent of H323Connection to be created. This would be quite likely in most applications.

Member Typedef Documentation

typedef map<PString, OpalTransportAddress> H323EndPoint::AliasToGkMap
protected
typedef map<H323Connection::CompatibilityIssues, PRegularExpression> H323EndPoint::CompatibilityEndpoints
protected
typedef PDictionary<PString, H323Gatekeeper> H323EndPoint::GatekeeperByAlias
protected

Member Enumeration Documentation

anonymous enum
Enumerator
DefaultTcpSignalPort 
anonymous enum
Enumerator
MaxGatekeeperAliasLimit 

Endpoint types.

Enumerator
e_SimpleEndpointType 
e_TerminalOnly 
e_TerminalAndMC 
e_GatewayOnly 
e_GatewayAndMC 
e_GatewayAndMCWithDataMP 
e_GatewayAndMCWithAudioMP 
e_GatewayAndMCWithAVMP 
e_GatekeeperOnly 
e_GatekeeperWithDataMP 
e_GatekeeperWithAudioMP 
e_GatekeeperWithAVMP 
e_MCUOnly 
e_MCUWithDataMP 
e_MCUWithAudioMP 
e_MCUWithAVMP 

Constructor & Destructor Documentation

H323EndPoint::H323EndPoint ( OpalManager manager)

Create a new endpoint.

H323EndPoint::~H323EndPoint ( )

Destroy endpoint.

Member Function Documentation

bool H323EndPoint::AddAliasName ( const PString &  name,
const PString &  altGk = PString::Empty(),
bool  updateGk = true 
)

Add an alias name to be used for the local end of any connections. If the alias name already exists in the list then is is not added again.

The list defaults to the value set in the SetDefaultLocalPartyName() function. Note that calling SetDefaultLocalPartyName() will clear the alias list.

Parameters
nameNew alias name to add
altGkAlternate gk for this alias
updateGkIndicate gatekeeper(s) to be updated
bool H323EndPoint::AddAliasNamePattern ( const PString &  pattern,
const PString &  altGk = PString::Empty(),
bool  updateGk = true 
)

Add an alias pattern. If the pattern already exists in the list then is is not added again.

Parameters
patternPattern to add
altGkAlternate gk for this pattern
updateGkIndicate gatekeeper(s) to be updated
bool H323EndPoint::AddAliasNamePatterns ( const PStringList &  patterns,
const PString &  altGk = PString::Empty(),
bool  updateGk = true 
)

Add alias patterns. If the pattern already exists in the list then is is not added again.

Parameters
patternsPatterns to add
altGkAlternate gk for these patterns
updateGkIndicate gatekeeper(s) to be updated
bool H323EndPoint::AddAliasNames ( const PStringList &  names,
const PString &  altGk = PString::Empty(),
bool  updateGk = true 
)

Add alias names to be used for the local end of any connections. If the alias name already exists in the list then is is not added again.

The list defaults to the value set in the SetDefaultLocalPartyName() function. Note that calling SetDefaultLocalPartyName() will clear the alias list.

Parameters
namesNew alias names to add
altGkAlternate gk for these aliases
updateGkIndicate gatekeeper(s) to be updated
bool H323EndPoint::AddCompatibility ( H323Connection::CompatibilityIssues  issue,
const PString &  regex 
)

Indicate a compatibility issue with remote endpoint product type. This will add to the regular expression for the issue a new value to try and match. It effectively adds "|" + regex to the existing regular expression.

Note the regular expression is always "extended".

Parameters
issueIssue being worked around
regexRegular expression for endpoint matching, see OpalProductInfo::AsString()
static const OpalProductInfo& H323EndPoint::AvayaPhone ( )
static
PBoolean H323EndPoint::CanAutoCallForward ( ) const
inline

See if should automatically do call forward of connection.

References autoCallForward.

PBoolean H323EndPoint::CanDisplayAmountString ( ) const
inline

Get the flag indicating the endpoint can display an amount string.

References canDisplayAmountString.

PBoolean H323EndPoint::CanEnforceDurationLimit ( ) const
inline

Get the flag indicating the call will automatically clear after a time.

References canEnforceDurationLimit.

void H323EndPoint::ConsultationTransfer ( const PString &  primaryCallToken,
const PString &  secondaryCallToken 
)

Transfer the call through consultation so the remote party in the primary call is connected to the called party in the second call using H.450.2. This sends a Call Transfer Identify Invoke message from the A-Party (transferring endpoint) to the C-Party (transferred-to endpoint).

Parameters
primaryCallTokenToken of primary call
secondaryCallTokenToken of secondary call
virtual H235Authenticators H323EndPoint::CreateAuthenticators ( )
virtual

Create a list of authenticators for gatekeeper.

virtual H323Connection* H323EndPoint::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 
)
virtual

Create a connection that uses the specified call.

Parameters
callCall object to attach the connection to
tokenCall token for new connection
userDataArbitrary user data from MakeConnection
transportTransport for connection
aliasAlias for outgoing call
addressAddress for outgoing call
setupPDUSetup PDU for incoming call
stringOptionscomplex string options
virtual H460_FeatureSet* H323EndPoint::CreateFeatureSet ( H323Connection connection)
virtual

Get the Endpoint FeatureSet This creates a new instance of the featureSet

virtual H323Gatekeeper* H323EndPoint::CreateGatekeeper ( H323Transport transport)
virtual

Create a gatekeeper. This allows the application writer to have the gatekeeper as a descendent of the H323Gatekeeper in order to add functionality to the base capabilities in the library.

The default creates an instance of the H323Gatekeeper class.

Parameters
transportTransport over which gatekeepers communicates.
virtual H323ServiceControlSession* H323EndPoint::CreateServiceControlSession ( const H225_ServiceControlDescriptor &  contents)
virtual

Create the service control session object.

void H323EndPoint::DisableFastStart ( PBoolean  mode)
inline

Set the default fast start mode.

Parameters
modeNew default mode

References disableFastStart.

void H323EndPoint::DisableH245 ( PBoolean  bH245Disabled)
inline

Disable/Enable H.245, used at least for h450.7 calls

Parameters
bH245Disabledtrue if h245 has to be disabled

References m_bH245Disabled.

void H323EndPoint::DisableH245inSetup ( PBoolean  mode)
inline

Set the default H.245 tunneling mode.

Parameters
modeNew default mode

References disableH245inSetup.

void H323EndPoint::DisableH245Tunneling ( PBoolean  mode)
inline

Set the default H.245 tunneling mode.

Parameters
modeNew default mode

References disableH245Tunneling.

void H323EndPoint::DisableH460 ( bool  disable = true)
inline

Disable all FeatureSets. Use this for pre H323v4 interoperability

References m_disableH460.

bool H323EndPoint::DiscoverGatekeeper ( const PString &  localAddress = PString::Empty())

Discover and select gatekeeper. This function will use the automatic gatekeeper discovery methods to locate the first gatekeeper on a particular transport.

Note the transport being passed in will be deleted becomes owned by the H323Gatekeeper created by this function and will be deleted by it. Also if transport is NULL then a H323TransportUDP is created.

Parameters
localAddressLocal interface to use.
PSafePtr<H323Connection> H323EndPoint::FindConnectionWithLock ( const PString &  token,
PSafetyMode  mode = PSafeReadWrite 
)

Find a connection that uses the specified token. This searches the endpoint for the connection that contains the token as provided by functions such as MakeCall(). if not found it will then search for the string representation of the CallIdentifier for the connection, and finally try for the string representation of the ConferenceIdentifier.

Note the caller of this function MUSt call the H323Connection::Unlock() function if this function returns a non-NULL pointer. If it does not then a deadlock can occur.

Parameters
tokenToken to identify connection
void H323EndPoint::ForceSymmetricTCS ( bool  mode)
inline

Set the default H.245 tunneling mode.

Parameters
modeNew default mode

References m_forceSymmetricTCS.

virtual PBoolean H323EndPoint::ForwardConnection ( H323Connection connection,
const PString &  forwardParty,
const H323SignalPDU pdu 
)
virtual

Forward the call using the same token as the specified connection. Return true if the call is being redirected.

The default behaviour will replace the current call in the endpoints call list using the same token as the call being redirected. Not that even though the same token is being used the actual object is completely mad anew.

Parameters
connectionConnection to be forwarded
forwardPartyRemote party to forward to
pduFull PDU initiating forwarding
virtual PBoolean H323EndPoint::GarbageCollection ( )
virtual
Execute garbage collection for endpoint.

Returns true if all garbage has been collected. Default behaviour deletes the objects in the connectionsActive list.

Reimplemented from OpalEndPoint.

PStringList H323EndPoint::GetAliasNamePatterns ( ) const

Get the alias patterns.

PStringList H323EndPoint::GetAliasNames ( ) const

Get the user name to be used for the local end of any connections. This defaults to the logged in user as obtained from the PProcess::GetUserName() function.

virtual PStringList H323EndPoint::GetAvailableStringOptions ( ) const
virtual

Get available string option names.

Reimplemented from OpalRTPEndPoint.

H323CallIdentityDict& H323EndPoint::GetCallIdentityDictionary ( )
inline

Get the dictionary of <callIdentities, connections>

References m_secondaryConnectionsActive.

unsigned H323EndPoint::GetCallIntrusionProtectionLevel ( ) const
inline

Get Call Intrusion Protection Level of the end point.

References callIntrusionProtectionLevel.

const PTimeInterval& H323EndPoint::GetCallIntrusionT1 ( ) const
inline

Get Call Intrusion timers timeout

References callIntrusionT1.

const PTimeInterval& H323EndPoint::GetCallIntrusionT2 ( ) const
inline

References callIntrusionT2.

const PTimeInterval& H323EndPoint::GetCallIntrusionT3 ( ) const
inline

References callIntrusionT3.

const PTimeInterval& H323EndPoint::GetCallIntrusionT4 ( ) const
inline

References callIntrusionT4.

const PTimeInterval& H323EndPoint::GetCallIntrusionT5 ( ) const
inline

References callIntrusionT5.

const PTimeInterval& H323EndPoint::GetCallIntrusionT6 ( ) const
inline

References callIntrusionT6.

const PTimeInterval& H323EndPoint::GetCallTransferT1 ( ) const
inline

Get the default timeout for Call Transfer Timer CT-T1.

References callTransferT1.

const PTimeInterval& H323EndPoint::GetCallTransferT2 ( ) const
inline

Get the default timeout for Call Transfer Timer CT-T2.

References callTransferT2.

const PTimeInterval& H323EndPoint::GetCallTransferT3 ( ) const
inline

Get the default timeout for Call Transfer Timer CT-T3.

References callTransferT3.

const PTimeInterval& H323EndPoint::GetCallTransferT4 ( ) const
inline

Get the default timeout for Call Transfer Timer CT-T4.

References callTransferT4.

const H323Capabilities& H323EndPoint::GetCapabilities ( ) const
inline

Get the "template" capability table for this endpoint. This table contains all known capabilities from which specific capabilities for a H323Connection, local and remote, are derived.

References m_capabilities.

const PTimeInterval& H323EndPoint::GetCapabilityExchangeTimeout ( ) const
inline

Get the default timeout for H245 capability exchange negotiations.

References capabilityExchangeTimeout.

PString H323EndPoint::GetCompatibility ( H323Connection::CompatibilityIssues  issue) const

Gets the current regular expression for the compatibility issue.

Parameters
issueIssue being worked around
bool H323EndPoint::GetDefaultH239Control ( ) const
inline

Get the default H.239 control capability.

References m_defaultH239Control.

const PString& H323EndPoint::GetDefaultILSServer ( ) const
inline

Get the default ILS server to use for user lookup.

References OpalManager::GetDefaultILSServer(), and OpalEndPoint::m_manager.

virtual WORD H323EndPoint::GetDefaultSignalPort ( ) const
virtual

Get the default signal port for this endpoint.

Reimplemented from OpalEndPoint.

virtual PString H323EndPoint::GetDefaultTransport ( ) const
virtual

Get the default transports for the endpoint type. Overrides the default behaviour to return udp and tcp.

Reimplemented from OpalEndPoint.

const PTimeInterval& H323EndPoint::GetEndSessionTimeout ( ) const
inline

Get the default timeout for waiting on an end session.

References endSessionTimeout.

H460_FeatureSet* H323EndPoint::GetFeatures ( ) const
inline

References m_features.

const PTimeInterval& H323EndPoint::GetFirstSignalPduTimeout ( ) const
inline

Get the default timeout for first signalling PDU on a connection

References firstSignalPduTimeout.

H323Gatekeeper* H323EndPoint::GetGatekeeper ( const PString &  alias = PString::Empty()) const

Get the gatekeeper we are registered with.

PINDEX H323EndPoint::GetGatekeeperAliasLimit ( ) const
inline

Get gatekeeper alias limit in single RRQ.

References m_gatekeeperAliasLimit.

virtual const PString& H323EndPoint::GetGatekeeperPassword ( ) const
inlinevirtual

Get the H.235 password for the gatekeeper.

References m_gatekeeperPassword.

bool H323EndPoint::GetGatekeeperRasRedirect ( ) const
inline

Get gatekeeper flag to redirect to new gatekeeper based on rasAddres field.

References m_gatekeeperRasRedirect.

unsigned H323EndPoint::GetGatekeeperRequestRetries ( ) const
inline

Get the default retries for GatekeeperRequest and Gatekeeper discovery.

References gatekeeperRequestRetries.

const PTimeInterval& H323EndPoint::GetGatekeeperRequestTimeout ( ) const
inline

Get the default timeout for GatekeeperRequest and Gatekeeper discovery.

References gatekeeperRequestTimeout.

const GatekeeperList& H323EndPoint::GetGatekeepers ( ) const
inline

Get all the gatekeepers we are registered with.

References m_gatekeepers.

bool H323EndPoint::GetGatekeeperSimulatePattern ( ) const
inline

Get gatekeeper flag to simulate alias pattern with aliases.

References m_gatekeeperSimulatePattern.

const PTimeInterval& H323EndPoint::GetGatekeeperStartDelay ( ) const
inline

Get the default time for gatekeeper registration delay. This is used to slow down registrations when many aliases are used, and the gatekeeper does not support multiple aliases in on GRQ/RRQ.

References m_gatekeeperStartDelay.

const PTimeInterval& H323EndPoint::GetGatekeeperTimeToLive ( ) const
inline

Get the default time for gatekeeper to reregister. A value of zero disables the keep alive facility.

References registrationTimeToLive.

virtual const PString& H323EndPoint::GetGatekeeperUsername ( ) const
inlinevirtual

Get the H.235 username for the gatekeeper.

References m_gatekeeperUsername.

const PString& H323EndPoint::GetGkAccessTokenOID ( ) const
inline

Get the iNow Gatekeeper Access Token OID.

References gkAccessTokenOID.

const PString& H323EndPoint::GetLocalUserName ( ) const
inline
const PTimeInterval& H323EndPoint::GetLogicalChannelTimeout ( ) const
inline

Get the default timeout for H245 logical channel negotiations.

References logicalChannelTimeout.

unsigned H323EndPoint::GetMasterSlaveDeterminationRetries ( ) const
inline

Get the default retries for H245 master slave negotiations.

References masterSlaveDeterminationRetries.

const PTimeInterval& H323EndPoint::GetMasterSlaveDeterminationTimeout ( ) const
inline

Get the default timeout for master slave negotiations.

References masterSlaveDeterminationTimeout.

unsigned H323EndPoint::GetMaxAudioJitterDelay ( ) const
inline

Get the default maximum audio delay jitter parameter. Defaults to 250ms.

References OpalManager::GetMaxAudioJitterDelay(), and OpalEndPoint::m_manager.

unsigned H323EndPoint::GetMinAudioJitterDelay ( ) const
inline

Get the default maximum audio jitter delay parameter. Defaults to 50ms

References OpalManager::GetMinAudioJitterDelay(), and OpalEndPoint::m_manager.

unsigned H323EndPoint::GetNextH450CallIdentityValue ( ) const
inline

Get the next available invoke Id for H450 operations

References m_nextH450CallIdentity.

const PTimeInterval& H323EndPoint::GetNoMediaTimeout ( ) const
inline

Get the amount of time with no media that should cause call to clear

References OpalManager::GetNoMediaTimeout(), and OpalEndPoint::m_manager.

bool H323EndPoint::GetOneSignalAddressInRRQ ( ) const
inline

Get flag to indicate whether to only use one signal address in gatekeeper registration

References m_oneSignalAddressInRRQ.

unsigned H323EndPoint::GetRasRequestRetries ( ) const
inline

Get the default retries for RAS protocol transations.

References rasRequestRetries.

const PTimeInterval& H323EndPoint::GetRasRequestTimeout ( ) const
inline

Get the default timeout for RAS protocol transactions.

References rasRequestTimeout.

const PTimeInterval& H323EndPoint::GetRequestModeTimeout ( ) const
inline

Get the default timeout for H245 request mode negotiations.

References logicalChannelTimeout.

const PTimeInterval& H323EndPoint::GetRoundTripDelayRate ( ) const
inline

Get the default rate H245 round trip delay is calculated by connection.

References roundTripDelayRate.

const PTimeInterval& H323EndPoint::GetRoundTripDelayTimeout ( ) const
inline

Get the default timeout for H245 round trip delay negotiations.

References roundTripDelayTimeout.

bool H323EndPoint::GetSendGRQ ( ) const
inline

Get flag to indicate whether to send GRQ on gatekeeper registration

References m_sendGRQ.

const PTimeInterval& H323EndPoint::GetSignallingChannelCallTimeout ( ) const
inline

Get the default timeout for calling another endpoint.

References signallingChannelCallTimeout.

TerminalTypes H323EndPoint::GetTerminalType ( ) const
inline

Get the endpoint terminal type.

References terminalType.

bool H323EndPoint::H460Disabled ( ) const
inline

Is the FeatureSet disabled

References m_disableH460.

bool H323EndPoint::HasAlias ( const PString &  alias) const

Determine if enpoint has alias.

bool H323EndPoint::HasCompatibilityIssue ( H323Connection::CompatibilityIssues  issue,
const OpalProductInfo productInfo 
) const

Determine if we must compensate for remote endpoint.

Parameters
issueIssue being worked around
productInfoProduct into for check for issue
virtual H460_FeatureSet* H323EndPoint::InternalCreateFeatureSet ( H323Connection connection)
virtual
bool H323EndPoint::InternalCreateGatekeeper ( const H323TransportAddress remoteAddress,
const PStringList &  aliases 
)
protected
PTimeInterval H323EndPoint::InternalGetGatekeeperStartDelay ( )
H323Connection* H323EndPoint::InternalMakeCall ( OpalCall call,
const PString &  existingToken,
const PString &  callIdentity,
unsigned  capabilityLevel,
const PString &  remoteParty,
void *  userData,
unsigned int  options = 0,
OpalConnection::StringOptions stringOptions = NULL 
)
protected
Parameters
existingTokenExisting connection to be transferred
callIdentityCall identity of the secondary call (if it exists)
capabilityLevelIntrusion capability level
remotePartyRemote party to call
userDatauser data to pass to CreateConnection
optionsoptions to pass to connection
stringOptionscomplex string options
void H323EndPoint::InternalNewIncomingConnection ( OpalTransportPtr  transport,
bool  reused = false 
)
Parameters
transportTransport connection came in on
bool H323EndPoint::InternalRestartGatekeeper ( bool  adjustingRegistrations = true)
protected
void H323EndPoint::InternalSetGatekeeperPassword ( H323Gatekeeper gatekeeper,
const OpalTransportAddress gatekeeperAddress 
) const
protected
bool H323EndPoint::InternalStartGatekeeper ( const H323TransportAddress remoteAddress,
const PString &  localAddress 
)
protected
PBoolean H323EndPoint::IntrudeCall ( const PString &  remoteParty,
unsigned  capabilityLevel,
void *  userData = NULL 
)

Initiate Call intrusion Designed similar to MakeCall function

Parameters
remotePartyRemote party to intrude call
capabilityLevelCapability level
userDatauser data to pass to CreateConnection
virtual PBoolean H323EndPoint::IsConnectionEstablished ( const PString &  token)
virtual

Determine if a connection is established.

Parameters
tokenToken for identifying connection
PBoolean H323EndPoint::IsFastStartDisabled ( ) const
inline

Get the default fast start mode.

References disableFastStart.

bool H323EndPoint::IsForcedSymmetricTCS ( ) const
inline

Get the default H.245 tunneling mode.

References m_forceSymmetricTCS.

PBoolean H323EndPoint::IsGatekeeper ( ) const

Determine if endpoint is gatekeeper type.

PBoolean H323EndPoint::IsGateway ( ) const

Determine if endpoint is gateway type.

PBoolean H323EndPoint::IsH245Disabled ( ) const
inline

find out if h245 is disabled or enabled

Returns
true if h245 is disabled

References AvayaPhone(), OpalEndPoint::GetProductInfo(), and m_bH245Disabled.

PBoolean H323EndPoint::IsH245inSetupDisabled ( ) const
inline

Get the default H.245 tunneling mode.

References disableH245inSetup.

PBoolean H323EndPoint::IsH245TunnelingDisabled ( ) const
inline

Get the default H.245 tunneling mode.

References AvayaPhone(), disableH245Tunneling, and OpalEndPoint::GetProductInfo().

virtual PBoolean H323EndPoint::IsLocalAddress ( const PIPSocket::Address &  remoteAddress) const
inlinevirtual

Determine if the address is "local", ie does not need STUN

References OpalManager::IsLocalAddress(), and OpalEndPoint::m_manager.

PBoolean H323EndPoint::IsMCU ( ) const

Determine if endpoint is gatekeeper type.

PBoolean H323EndPoint::IsRegisteredWithGatekeeper ( bool  all = false) const

Return if endpoint is registered with any/all gatekeepers.

PBoolean H323EndPoint::IsTerminal ( ) const

Determine if endpoint is terminal type.

bool H323EndPoint::LocateGatekeeper ( const PString &  identifier,
const PString &  localAddress = PString::Empty() 
)

Locate and select gatekeeper. This function will use the automatic gatekeeper discovery methods to locate the gatekeeper on the particular transport that has the specified gatekeeper identifier name. This is often the "Zone" for the gatekeeper.

Note the transport being passed in will be deleted becomes owned by the H323Gatekeeper created by this function and will be deleted by it. Also if transport is NULL then a H323TransportUDP is created.

Parameters
identifierIdentifier of gatekeeper to locate.
localAddressLocal interface to use.
virtual PSafePtr<OpalConnection> H323EndPoint::MakeConnection ( OpalCall call,
const PString &  party,
void *  userData = NULL,
unsigned int  options = 0,
OpalConnection::StringOptions stringOptions = NULL 
)
virtual

Set up a connection to a remote party. This is called from the OpalManager::SetUpConnection() function once it has determined that this is the endpoint for the protocol.

The general form for this party parameter is:

 [proto:][alias@][transport$]address[:port]

where the various fields will have meanings specific to the endpoint type. For example, with H.323 it could be "h323:Fred@site.com" which indicates a user Fred at gatekeeper size.com. Whereas for the PSTN endpoint it could be "pstn:5551234" which is to call 5551234 on the first available PSTN line.

The proto field is optional when passed to a specific endpoint. If it is present, however, it must agree with the endpoints protocol name or false is returned.

This function usually returns almost immediately with the connection continuing to occur in a new background thread.

If false is returned then the connection could not be established. For example if a PSTN endpoint is used and the assiciated line is engaged then it may return immediately. Returning a non-NULL value does not mean that the connection will succeed, only that an attempt is being made.

The default behaviour is pure.

Parameters
callOwner of connection
partyRemote party to call
userDataArbitrary data to pass to connection
optionsoptions to pass to connection

Implements OpalEndPoint.

virtual void H323EndPoint::NewIncomingConnection ( OpalListener listener,
const OpalTransportPtr transport 
)
virtual

Handle new incoming connetion from listener.

Parameters
listenerListner that created transport
transportTransport connection came in on
virtual PBoolean H323EndPoint::OnAlerting ( H323Connection connection,
const H323SignalPDU alertingPDU,
const PString &  user 
)
virtual

Call back for remote party being alerted. This function is called from the SendSignalSetup() function after it receives the optional Alerting PDU from the remote endpoint. That is when the remote "phone" is "ringing".

If false is returned the connection is aborted and a Release Complete PDU is sent.

The default behaviour simply returns true.

Parameters
connectionConnection that was established
alertingPDUReceived Alerting PDU
userUsername of remote endpoint
virtual OpalConnection::AnswerCallResponse H323EndPoint::OnAnswerCall ( H323Connection connection,
const PString &  callerName,
const H323SignalPDU setupPDU,
H323SignalPDU connectPDU,
H323SignalPDU progressPDU 
)
virtual

Call back for answering an incoming call. This function is a H.323 specific version of OpalEndPoint::OnAnswerCall that contains additional information that applies only to H.323.

By default this calls OpalEndPoint::OnAnswerCall, which returns

Parameters
connectionConnection that was established
callerNameName of caller
setupPDUReceived setup PDU
connectPDUConnect PDU to send.
progressPDUProgress PDU to send.
virtual OpalConnection::AnswerCallResponse H323EndPoint::OnAnswerCall ( OpalConnection connection,
const PString &  caller 
)
virtual

Call back for answering an incoming call. This function is called after the connection has been acknowledged but before the connection is established

This gives the application time to wait for some event before signalling to the endpoint that the connection is to proceed. For example the user pressing an "Answer call" button.

If AnswerCallDenied is returned the connection is aborted and the connetion specific end call PDU is sent. If AnswerCallNow is returned then the connection proceeding, Finally if AnswerCallPending is returned then the protocol negotiations are paused until the AnsweringCall() function is called.

The default behaviour simply returns AnswerNow.

Reimplemented from OpalEndPoint.

virtual void H323EndPoint::OnCallCreditServiceControl ( const PString &  amount,
PBoolean  mode 
)
virtual

Call back for call credit information. An application may override this to display call credit information on registration, or when a call is started.

The canDisplayAmountString member variable must also be set to true for this to operate.

The default behaviour does nothing.

Parameters
amountUTF-8 string for amount, including currency.
modeFlag indicating that calls will debit the account.
virtual PBoolean H323EndPoint::OnCallIndependentSupplementaryService ( const H323SignalPDU setupPDU)
virtual

Called when an endpoint receives a SETUP PDU with a conference goal of "callIndependentSupplementaryService"

The default behaviour is to return false, which will close the connection

virtual PBoolean H323EndPoint::OnCallTransferIdentify ( H323Connection connection)
virtual

Handle a transfer via consultation. This gives the transferred-to user an opportunity to abort the transfer. The default behaviour just returns true.

Parameters
connectionConnection to transfer
virtual PBoolean H323EndPoint::OnCallTransferInitiate ( H323Connection connection,
const PString &  remoteParty 
)
virtual

Handle a connection transfer. This gives the application an opportunity to abort the transfer. The default behaviour just returns true.

Parameters
connectionConnection to transfer
remotePartyParty transferring to.
virtual void H323EndPoint::OnClosedLogicalChannel ( H323Connection connection,
const H323Channel channel 
)
virtual

Call back for closed a logical channel.

The default behaviour does nothing.

Parameters
connectionConnection for the channel
channelChannel being started
virtual void H323EndPoint::OnConnectionEstablished ( H323Connection connection,
const PString &  token 
)
virtual

A call back function whenever a connection is established. This indicates that a connection to a remote endpoint was established with a control channel and zero or more logical channels.

The default behaviour does nothing.

Parameters
connectionConnection that was established
tokenToken for identifying connection
virtual PBoolean H323EndPoint::OnConnectionForwarded ( H323Connection connection,
const PString &  forwardParty,
const H323SignalPDU pdu 
)
virtual

A call back function when a connection indicates it is to be forwarded. An H323 application may handle this call back so it can make complicated decisions on if the call forward ius to take place. If it decides to do so it must call MakeCall() and return true.

The default behaviour simply returns false and that the automatic call forwarding should take place. See ForwardConnection()

Parameters
connectionConnection to be forwarded
forwardPartyRemote party to forward to
pduFull PDU initiating forwarding
virtual void H323EndPoint::OnGatekeeperNATDetect ( const PIPSocket::Address &  publicAddr,
H323TransportAddress gkRouteAddress 
)
virtual

Call back from GK admission confirm to notify the Endpoint it is behind a NAT (GNUGK Gatekeeper). The default does nothing. Override this to notify the user they are behind a NAT.

Parameters
gkRouteAddress

Public address as returned by the Gatekeeper> Gatekeeper Route Address

virtual void H323EndPoint::OnGatekeeperStatus ( H323Gatekeeper gk,
H323Gatekeeper::RegistrationFailReasons  status 
)
virtual

Called when the gatekeeper status changes.

Reimplemented in H323ConsoleEndPoint.

virtual void H323EndPoint::OnGatekeeperStatus ( H323Gatekeeper::RegistrationFailReasons  status)
virtual
virtual void H323EndPoint::OnHTTPServiceControl ( unsigned  operation,
unsigned  sessionId,
const PString &  url 
)
virtual

Call back for HTTP based Service Control. An application may override this to use an HTTP based channel using a resource designated by the session ID. For example the session ID can correspond to a browser window and the

The default behaviour does nothing.

Parameters
operationControl operation
sessionIdSession ID for HTTP page
urlURL to use.
virtual PBoolean H323EndPoint::OnIncomingCall ( H323Connection connection,
const H323SignalPDU setupPDU,
H323SignalPDU alertingPDU 
)
virtual

Call back for incoming call. This function is called from the OnReceivedSignalSetup() function before it sends the Alerting PDU. It gives an opportunity for an application to alter the reply before transmission to the other endpoint.

If false is returned the connection is aborted and a Release Complete PDU is sent.

The default behaviour simply returns true.

Parameters
connectionConnection that was established
setupPDUReceived setup PDU
alertingPDUAlerting PDU to send
virtual bool H323EndPoint::OnLoadFeature ( H460_Feature feature)
virtual

Callback when creating Feature Instance. This can be used to disable features on a case by case basis by returning FALSE Default returns TRUE

virtual PBoolean H323EndPoint::OnNegotiateConferenceCapabilities ( const H323SignalPDU setupPDU)
virtual

Called when an endpoint receives a SETUP PDU with a conference goal of "capability_negotiation"

The default behaviour is to return false, which will close the connection

virtual PBoolean H323EndPoint::OnOutgoingCall ( H323Connection conn,
const H323SignalPDU connectPDU 
)
virtual

Called when an outgoing call connects If false is returned the connection is aborted and a Release Complete PDU is sent.

The default behaviour simply returns true.

virtual void H323EndPoint::OnReceivedInitiateReturnError ( )
virtual

Called from H.450 OnReceivedInitiateReturnError

virtual void H323EndPoint::OnReceiveFeatureSet ( H460_MessageType  pduType,
const H225_FeatureSet &   
)
virtual

Called when an incoming PDU contains a feature set

virtual void H323EndPoint::OnReleased ( OpalConnection connection)
virtual

A call back function whenever a connection is broken. This function can do any internal cleaning up and waiting on background threads that may be using the connection object.

Note that there is not a one to one relationship with the OnEstablishedConnection() function. This function may be called without that function being called. For example if MakeConnection() was used but the call never completed.

Classes that override this function should make sure they call the ancestor version for correct operation.

An application will not typically call this function as it is used by the OpalManager during a release of the connection.

The default behaviour removes the connection from the internal database and calls the OpalManager function of the same name.

Parameters
connectionConnection that was established

Reimplemented from OpalRTPEndPoint.

virtual PBoolean H323EndPoint::OnSendAlerting ( H323Connection connection,
H323SignalPDU alerting,
const PString &  calleeName,
PBoolean  withMedia 
)
virtual

A call back function when the alerting is about to be sent, can be used by the application to alter the alerting Pdu

Returns
if false, then the alerting is not sent
Parameters
connectiononnection that was established
alertingAlerting PDU to modify
calleeNameName of endpoint being alerted.
withMediaOpen media with alerting
virtual void H323EndPoint::OnSendARQ ( H323Connection conn,
H225_AdmissionRequest &  arq 
)
virtual

Callback for ARQ send to a gatekeeper. This allows the endpoint to change or check fields in the ARQ before it is sent.

virtual PBoolean H323EndPoint::OnSendCallProceeding ( H323Connection connection,
H323SignalPDU callProceedingPDU 
)
virtual

Adjust call proceeding PDU being sent. This function is called from the OnReceivedSignalSetup() function before it sends the Call Proceeding PDU. It gives an opportunity for an application to alter the request before transmission to the other endpoint. If this function returns false then the Call Proceeding PDU is not sent at all.

The default behaviour simply returns true.

Parameters
connectionthe connection associated to the call proceeding
callProceedingPDUthe call processding to modify
Returns
if false, do no send the connect pdu
virtual PBoolean H323EndPoint::OnSendConnect ( H323Connection connection,
H323SignalPDU connectPDU 
)
virtual

Adjust call connect PDU being sent. This function is called from the H323Connection::SetConnected function before it sends the connect PDU. It gives an opportunity for an application to alter the request before transmission to the other endpoint. If this function returns false then the connect PDU is not sent at all.

The default behaviour simply returns true.

Parameters
connectionthe connection associated to the connect
connectPDUthe connect to modify
Returns
if false, do no send the connect pdu
virtual PBoolean H323EndPoint::OnSendFeatureSet ( H460_MessageType  pduType,
H225_FeatureSet &   
)
virtual

Called when an outgoing PDU requires a feature set

virtual PBoolean H323EndPoint::OnSendSignalSetup ( H323Connection connection,
H323SignalPDU setupPDU 
)
virtual

OnSendSignalSetup is a hook for the appliation to attach H450 info in setup, for instance, H450.7 Activate or Deactivate

Parameters
connectionthe connection associated to the setup
pduSetupthe setup message to modify
Returns
if false, do no send the setup pdu
virtual PBoolean H323EndPoint::OnSentAlerting ( H323Connection connection)
virtual

A call back function when the alerting has been sent, can be used by the application to send the connect as soon as the alerting has been sent.

virtual void H323EndPoint::OnServiceControlSession ( unsigned  type,
unsigned  sessionid,
const H323ServiceControlSession session,
H323Connection connection 
)
virtual

Handle incoming service control session information. Default behaviour calls session.OnChange()

virtual bool H323EndPoint::OnSetGatewayPrefixes ( PStringList &  prefixes) const
virtual

Set the gateway prefixes Override this to set the acceptable prefixes to the gatekeeper

virtual PBoolean H323EndPoint::OnStartLogicalChannel ( H323Connection connection,
H323Channel channel 
)
virtual

Call back for opening a logical channel.

The default behaviour simply returns true.

Parameters
connectionConnection for the channel
channelChannel being started
static int H323EndPoint::ParseAliasPatternRange ( const PString &  pattern,
PString &  start,
PString &  end 
)
static
PBoolean H323EndPoint::ParsePartyName ( const PString &  party,
PString &  alias,
H323TransportAddress address,
OpalConnection::StringOptions stringOptions = NULL 
)

Parse a party address into alias and transport components. An appropriate transport is determined from the remoteParty parameter. The general form for this parameter is [alias@][transport$]host[:port] where the default alias is the same as the host, the default transport is "ip" and the default port is 1720.

Parameters
partyParty name string.
aliasParsed alias name
addressParsed transport address
stringOptionsString options parsed from party name
H323EndPoint::PDECLARE_MUTEX ( m_aliasMutex  )
protected
H323EndPoint::PDECLARE_MUTEX ( m_delayGatekeeperMutex  )
protected
H323EndPoint::PDECLARE_MUTEX ( m_reusableTransportMutex  )
protected
H323EndPoint::PDECLARE_MUTEX ( m_gatekeeperMutex  )
protected
bool H323EndPoint::RemoveAliasName ( const PString &  name,
bool  updateGk = true 
)

Remove an alias name. Note, you cannot remove the last alias name.

Parameters
nameAlias name to remove
updateGkIndicate gatekeeper(s) to be updated
bool H323EndPoint::RemoveAliasNamePattern ( const PString &  pattern,
bool  updateGk = true 
)

Remove an alias pattern.

Parameters
patternPattern to remove
updateGkIndicate gatekeeper(s) to be updated
bool H323EndPoint::RemoveAliasNamePatterns ( const PStringList &  patterns,
bool  updateGk = true 
)

Remove alias pattern.

Parameters
patternsPatterns to remove
updateGkIndicate gatekeeper(s) to be updated
bool H323EndPoint::RemoveAliasNames ( const PStringList &  names,
bool  updateGk = true 
)

Remove an alias name. Note, you cannot remove the last alias name.

Parameters
namesAlias names to remove
updateGkIndicate gatekeeper(s) to be updated
PBoolean H323EndPoint::RemoveGatekeeper ( int  reason = -1)

Unregister and delete the gatekeeper we are registered with. The return value indicates false if there was an error during the unregistration. However the gatekeeper is still removed and its instance deleted regardless of this error.

Parameters
reasonReason for gatekeeper removal
bool H323EndPoint::SetAliasNamePatterns ( const PStringList &  patterns)

Set all alias patterns. Overwrites all existing patterns.

Parameters
patternsPatterns to set
bool H323EndPoint::SetAliasNames ( const PStringList &  names)

Set alias names to be used for the local end of any connections. If an alias name already exists in the list then is is not added again.

The list defaults to the value set in the SetDefaultLocalPartyName() function. Note that this will clear the alias list and the first entry will become the value returned by GetLocalUserName().

Parameters
namesNew alias names to add
void H323EndPoint::SetAliasPasswords ( const PStringToString &  aliasPasswords,
const PString &  defaultAddress 
)

Set the password for specific alias.

void H323EndPoint::SetAudioJitterDelay ( unsigned  minDelay,
unsigned  maxDelay 
)
inline

Set the maximum audio delay jitter parameter.

Parameters
minDelayNew minimum jitter buffer delay in milliseconds
maxDelayNew maximum jitter buffer delay in milliseconds

References OpalEndPoint::m_manager, and OpalManager::SetAudioJitterDelay().

void H323EndPoint::SetCallIntrusionProtectionLevel ( unsigned  level)
inline

Set Call Intrusion Protection Level of the end point.

Parameters
levelNew level from 0 to 3

References callIntrusionProtectionLevel.

void H323EndPoint::SetCanDisplayAmountString ( PBoolean  mode)
inline

Set the flag indicating the endpoint can display an amount string.

Parameters
modeNew default mode

References canDisplayAmountString.

void H323EndPoint::SetCanEnforceDurationLimit ( PBoolean  mode)
inline

Set the flag indicating the call will automatically clear after a time.

Parameters
modeNew default mode

References canEnforceDurationLimit.

bool H323EndPoint::SetCompatibility ( H323Connection::CompatibilityIssues  issue,
const PString &  regex 
)

Indicate a compatibility issue with remote endpoint product type. Note the regular expression is always "extended".

Returns
true of regular expression is legal.
Parameters
issueIssue being worked around
regexRegular expression for endpoint matching, see OpalProductInfo::AsString()
void H323EndPoint::SetDefaultH239Control ( bool  on)
inline

Set the default H.239 control capability.

Parameters
onH.239 control capability is to be sent to remote

References m_defaultH239Control.

void H323EndPoint::SetDefaultILSServer ( const PString &  server)
inline

Set the default ILS server to use for user lookup.

References OpalEndPoint::m_manager, and OpalManager::SetDefaultILSServer().

virtual void H323EndPoint::SetDefaultLocalPartyName ( const PString &  name)
virtual

Set the default local party name for all connections on this endpoint.

Parameters
nameName for local party

Reimplemented from OpalEndPoint.

Referenced by SetLocalUserName().

virtual void H323EndPoint::SetEndpointTypeInfo ( H225_EndpointType &  info) const
virtual

Set the endpoint information in H225 PDU's.

bool H323EndPoint::SetGatekeeper ( const PString &  address,
const PString &  localAddress = PString::Empty() 
)

Select and register with an explicit gatekeeper. This will use the specified transport and a string giving a transport dependent address to locate a specific gatekeeper. The endpoint will register with that gatekeeper and, if successful, set it as the current gatekeeper used by this endpoint.

Note the transport being passed in will be deleted by this function or the H323Gatekeeper object it becomes associated with. Also if transport is NULL then a H323TransportUDP is created.

Parameters
addressAddress of gatekeeper to use.
localAddressLocal interface to use.
void H323EndPoint::SetGatekeeperAliasLimit ( PINDEX  limit)

Set gatekeeper alias limit in single RRQ.

Parameters
limitNew limit for aliases
virtual void H323EndPoint::SetGatekeeperPassword ( const PString &  password,
const PString &  username = PString::Empty() 
)
virtual

Set the H.235 password for the gatekeeper.

void H323EndPoint::SetGatekeeperRasRedirect ( bool  redir)
inline

Set gatekeeper flag to redirect to new gatekeeper based on rasAddres field.

References m_gatekeeperRasRedirect.

void H323EndPoint::SetGatekeeperSimulatePattern ( bool  sim)
inline

Set gatekeeper flag to simulate alias pattern with aliases. This will generate separate individual aliases for ranges in the pattern list.

References m_gatekeeperSimulatePattern.

void H323EndPoint::SetGatekeeperStartDelay ( const PTimeInterval &  gatekeeperStartDelay)
inline

Set the default time for gatekeeper registration delay. This is used to slow down registrations when many aliases are used, and the gatekeeper does not support multiple aliases in on GRQ/RRQ.

References m_gatekeeperStartDelay.

void H323EndPoint::SetGatekeeperTimeToLive ( const PTimeInterval &  ttl)
inline

Set the default time for gatekeeper to reregister. A value of zero disables the keep alive facility.

References registrationTimeToLive.

bool H323EndPoint::SetGatekeeperZone ( const PString &  address,
const PString &  identifier,
const PString &  localAddress = PString::Empty() 
)

Select and register with an explicit gatekeeper and zone. This will use the specified transport and a string giving a transport dependent address to locate a specific gatekeeper. The endpoint will register with that gatekeeper and, if successful, set it as the current gatekeeper used by this endpoint.

The gatekeeper identifier is set to the spplied parameter to allow the gatekeeper to either allocate a zone or sub-zone, or refuse to register if the zones do not match.

Note the transport being passed in will be deleted by this function or the H323Gatekeeper object it becomes associated with. Also if transport is NULL then a H323TransportUDP is created.

Parameters
addressAddress of gatekeeper to use.
identifierIdentifier of gatekeeper to use.
localAddressLocal interface to use.
virtual bool H323EndPoint::SetGatewaySupportedProtocol ( H225_ArrayOf_SupportedProtocols &  protocols) const
virtual

Set the Gateway supported protocol default always H.323

void H323EndPoint::SetGkAccessTokenOID ( const PString &  token)
inline

Set the iNow Gatekeeper Access Token OID.

References gkAccessTokenOID.

virtual void H323EndPoint::SetH221NonStandardInfo ( H225_H221NonStandard &  info) const
virtual

Set the H221NonStandard information in H225 PDU's.

void H323EndPoint::SetLocalUserName ( const PString &  name)
inline
void H323EndPoint::SetNoMediaTimeout ( const PTimeInterval &  newInterval)
inline

Set the amount of time with no media that should cause call to clear

Parameters
newIntervalNew timeout for media

References OpalEndPoint::m_manager, and OpalManager::SetNoMediaTimeout().

void H323EndPoint::SetOneSignalAddressInRRQ ( bool  v)
inline

Sent flag to indicate whether to only use one signal address in gatekeeper registration

References m_oneSignalAddressInRRQ.

void H323EndPoint::SetSendGRQ ( bool  v)
inline

Sent flag to indicate whether to send GRQ on gatekeeper registration

References m_sendGRQ.

void H323EndPoint::SetTerminalType ( TerminalTypes  type)
inline

Get the endpoint terminal type.

References terminalType.

virtual PBoolean H323EndPoint::SetupTransfer ( const PString &  token,
const PString &  callIdentity,
const PString &  remoteParty,
void *  userData = NULL 
)
virtual

Setup the transfer of an existing call (connection) to a new remote party using H.450.2. This sends a Call Transfer Setup Invoke message from the B-Party (transferred endpoint) to the C-Party (transferred-to endpoint).

If the transport parameter is NULL the transport is determined from the remoteParty description. The general form for this parameter is [alias@][transport$]host[:port] where the default alias is the same as the host, the default transport is "ip" and the default port is 1720.

This function returns almost immediately with the transfer occurring in a new background thread.

This function is declared virtual to allow an application to override the function and get the new call token of the forwarded call.

Parameters
tokenExisting connection to be transferred
callIdentityCall identity of the secondary call (if it exists)
remotePartyRemote party to transfer the existing call to
userDatauser data to pass to CreateConnection
virtual void H323EndPoint::SetVendorIdentifierInfo ( H225_VendorIdentifier &  info) const
virtual

Set the vendor information in H225 PDU's.

PBoolean H323EndPoint::ShouldClearCallOnRoundTripFail ( ) const
inline

Get the flag for clearing a call if the round trip delay calculation fails.

References clearCallOnRoundTripFail.

virtual void H323EndPoint::ShutDown ( )
virtual

Shut down the endpoint, this is called by the OpalManager just before destroying the object and can be handy to make sure some things are stopped before the vtable gets clobbered.

Reimplemented from OpalEndPoint.

void H323EndPoint::TransferCall ( const PString &  token,
const PString &  remoteParty,
const PString &  callIdentity = PString::Empty() 
)

Initiate the transfer of an existing call (connection) to a new remote party using H.450.2. This sends a Call Transfer Initiate Invoke message from the A-Party (transferring endpoint) to the B-Party (transferred endpoint).

Parameters
tokenExisting connection to be transferred
remotePartyRemote party to transfer the existing call to
callIdentityCall Identity of secondary call if present
virtual void H323EndPoint::TranslateTCPAddress ( PIPSocket::Address &  localAddr,
const PIPSocket::Address &  remoteAddr 
)
virtual

Provide TCP address translation hook

bool H323EndPoint::UseGatekeeper ( const PString &  address = PString::Empty(),
const PString &  identifier = PString::Empty(),
const PString &  localAddress = PString::Empty() 
)

Use and register with an explicit gatekeeper. This will call other functions according to the following table:

address    identifier   function
empty      empty        DiscoverGatekeeper()
non-empty  empty        SetGatekeeper()
empty      non-empty    LocateGatekeeper()
non-empty  non-empty    SetGatekeeperZone()

The localAddress field, if non-empty, indicates the interface on which to look for the gatekeeper. An empty string is equivalent to "ip$*:*" which is any interface or port.

If the endpoint is already registered with a gatekeeper that meets the same criteria then the gatekeeper is not changed, otherwise it is deleted (with unregistration) and new one created and registered to.

Note that a gatekeeper address of "*" is treated like an empty string resulting in gatekeeper discovery.

Parameters
addressAddress of gatekeeper to use.
identifierIdentifier of gatekeeper to use.
localAddressLocal interface to use.

Field Documentation

PBoolean H323EndPoint::autoCallForward
protected

Referenced by CanAutoCallForward().

unsigned H323EndPoint::callIntrusionProtectionLevel
protected
PTimeInterval H323EndPoint::callIntrusionT1
protected

Call Intrusion Timers

Referenced by GetCallIntrusionT1().

PTimeInterval H323EndPoint::callIntrusionT2
protected

Referenced by GetCallIntrusionT2().

PTimeInterval H323EndPoint::callIntrusionT3
protected

Referenced by GetCallIntrusionT3().

PTimeInterval H323EndPoint::callIntrusionT4
protected

Referenced by GetCallIntrusionT4().

PTimeInterval H323EndPoint::callIntrusionT5
protected

Referenced by GetCallIntrusionT5().

PTimeInterval H323EndPoint::callIntrusionT6
protected

Referenced by GetCallIntrusionT6().

PTimeInterval H323EndPoint::callTransferT1
protected

Referenced by GetCallTransferT1().

PTimeInterval H323EndPoint::callTransferT2
protected

Referenced by GetCallTransferT2().

PTimeInterval H323EndPoint::callTransferT3
protected

Referenced by GetCallTransferT3().

PTimeInterval H323EndPoint::callTransferT4
protected

Referenced by GetCallTransferT4().

PBoolean H323EndPoint::canDisplayAmountString
protected
PBoolean H323EndPoint::canEnforceDurationLimit
protected
PTimeInterval H323EndPoint::capabilityExchangeTimeout
protected
PBoolean H323EndPoint::clearCallOnRoundTripFail
protected
PBoolean H323EndPoint::disableFastStart
protected
PBoolean H323EndPoint::disableH245inSetup
protected
PBoolean H323EndPoint::disableH245Tunneling
protected
PTimeInterval H323EndPoint::endSessionTimeout
protected

Referenced by GetEndSessionTimeout().

PTimeInterval H323EndPoint::firstSignalPduTimeout
protected
unsigned H323EndPoint::gatekeeperRequestRetries
protected
PTimeInterval H323EndPoint::gatekeeperRequestTimeout
protected
PString H323EndPoint::gkAccessTokenOID
protected
PTimeInterval H323EndPoint::logicalChannelTimeout
protected
PStringToString H323EndPoint::m_aliasPasswords
protected
PString H323EndPoint::m_aliasPwdDefaultAddress
protected
PBoolean H323EndPoint::m_bH245Disabled
protected

Referenced by DisableH245(), and IsH245Disabled().

H323Capabilities H323EndPoint::m_capabilities
protected

Referenced by GetCapabilities().

CompatibilityEndpoints H323EndPoint::m_compatibility
protected
PSafeDictionary<PString, H323Connection> H323EndPoint::m_connectionsByCallId
protected
bool H323EndPoint::m_defaultH239Control
protected
bool H323EndPoint::m_disableH460
protected

Next available callIdentity for H450 Transfer operations via consultation.

Referenced by DisableH460(), and H460Disabled().

H460_FeatureSet* H323EndPoint::m_features
protected

Referenced by GetFeatures().

bool H323EndPoint::m_forceSymmetricTCS
protected
PINDEX H323EndPoint::m_gatekeeperAliasLimit
protected

Referenced by GetGatekeeperAliasLimit().

GatekeeperByAlias H323EndPoint::m_gatekeeperByAlias
protected
OpalTransportAddressArray H323EndPoint::m_gatekeeperInterfaces
protected
PString H323EndPoint::m_gatekeeperPassword
protected

Referenced by GetGatekeeperPassword().

bool H323EndPoint::m_gatekeeperRasRedirect
protected
GatekeeperList H323EndPoint::m_gatekeepers
protected

Referenced by GetGatekeepers().

bool H323EndPoint::m_gatekeeperSimulatePattern
protected
PTimeInterval H323EndPoint::m_gatekeeperStartDelay
protected
PString H323EndPoint::m_gatekeeperUsername
protected

Referenced by GetGatekeeperUsername().

AliasToGkMap H323EndPoint::m_localAliasNames
protected
AliasToGkMap H323EndPoint::m_localAliasPatterns
protected
PTime H323EndPoint::m_nextGatekeeperDiscovery
protected
atomic<unsigned> H323EndPoint::m_nextH450CallIdentity
mutableprotected
bool H323EndPoint::m_oneSignalAddressInRRQ
protected
std::set<OpalTransportPtr> H323EndPoint::m_reusableTransports
protected
H323CallIdentityDict H323EndPoint::m_secondaryConnectionsActive
protected
bool H323EndPoint::m_sendGRQ
protected

Referenced by GetSendGRQ(), and SetSendGRQ().

unsigned H323EndPoint::masterSlaveDeterminationRetries
protected
PTimeInterval H323EndPoint::masterSlaveDeterminationTimeout
protected
unsigned H323EndPoint::rasRequestRetries
protected

Referenced by GetRasRequestRetries().

PTimeInterval H323EndPoint::rasRequestTimeout
protected

Referenced by GetRasRequestTimeout().

PTimeInterval H323EndPoint::registrationTimeToLive
protected
PTimeInterval H323EndPoint::requestModeTimeout
protected
PTimeInterval H323EndPoint::roundTripDelayRate
protected

Referenced by GetRoundTripDelayRate().

PTimeInterval H323EndPoint::roundTripDelayTimeout
protected
PTimeInterval H323EndPoint::signallingChannelCallTimeout
protected
TerminalTypes H323EndPoint::terminalType
protected

Referenced by GetTerminalType(), and SetTerminalType().


The documentation for this class was generated from the following file: