OPAL  Version 3.14.3
H323RegisteredEndPoint Class Reference

#include <gkserver.h>

Inherits PSafeObject.

Collaboration diagram for H323RegisteredEndPoint:

Public Member Functions

Construction
 H323RegisteredEndPoint (H323GatekeeperServer &server, const PString &id)
 
Overrides from PObject
Comparison Compare (const PObject &obj) const
 
void PrintOn (ostream &strm) const
 
Call Operations
virtual void AddCall (H323GatekeeperCall *call)
 
virtual PBoolean RemoveCall (H323GatekeeperCall *call)
 
PINDEX GetCallCount () const
 
H323GatekeeperCallGetCall (PINDEX idx)
 
Protocol Operations
virtual
H323GatekeeperRequest::Response 
OnRegistration (H323GatekeeperRRQ &request)
 
virtual
H323GatekeeperRequest::Response 
OnFullRegistration (H323GatekeeperRRQ &request)
 
virtual
H323GatekeeperRequest::Response 
OnSecureRegistration (H323GatekeeperRRQ &request)
 
virtual
H323GatekeeperRequest::Response 
OnUnregistration (H323GatekeeperURQ &request)
 
virtual PBoolean Unregister (int reason=-1)
 
virtual
H323GatekeeperRequest::Response 
OnInfoResponse (H323GatekeeperIRR &request)
 
virtual PBoolean OnTimeToLive ()
 
virtual PString GetCallCreditAmount () const
 
virtual PBoolean GetCallCreditMode () const
 
virtual PBoolean SendServiceControlSession (const H323ServiceControlSession &session)
 
virtual PBoolean AddServiceControlSession (const H323ServiceControlSession &session, H225_ArrayOf_ServiceControlSession &serviceControl)
 
Access functions
virtual PBoolean SetPassword (const PString &password, const PString &username=PString::Empty())
 
const PString & GetIdentifier () const
 
const OpalGloballyUniqueIDGetDescriptorID () const
 
H323GatekeeperServerGetGatekeeper () const
 
const H323TransportAddressArrayGetRASAddresses () const
 
PINDEX GetRASAddressCount () const
 
H323TransportAddress GetRASAddress (PINDEX idx) const
 
const H323TransportAddressArrayGetSignalAddresses () const
 
PINDEX GetSignalAddressCount () const
 
H323TransportAddress GetSignalAddress (PINDEX idx) const
 
const PStringArray & GetAliases () const
 
bool ContainsAlias (const PString &alias)
 
PINDEX GetAliasCount () const
 
PString GetAlias (PINDEX idx) const
 
void RemoveAlias (const PString &alias)
 
virtual const H235Authenticators & GetAuthenticators () const
 
PINDEX GetPrefixCount () const
 
PString GetPrefix (PINDEX idx) const
 
PCaselessString GetApplicationInfo () const
 
const OpalProductInfoGetProductInfo () const
 
unsigned GetProtocolVersion () const
 
bool IsBehindNAT () const
 
bool CanDisplayAmountString () const
 
bool CanEnforceDurationLimit () const
 
bool CanReceiveRIP () const
 
bool GetH225Version () const
 
const PTime & GetCreationTime () const
 
H.501 access functions
virtual PBoolean OnSendDescriptorForEndpoint (H225_ArrayOf_AliasAddress &aliases, H225_EndpointType &terminalType, H225_ArrayOf_AliasAddress &transportAddresses)
 

Protected Attributes

H323GatekeeperServerm_gatekeeper
 
H323GatekeeperListenerm_rasChannel
 
PString m_identifier
 
OpalGloballyUniqueID m_descriptorID
 
H323TransportAddressArray m_rasAddresses
 
H323TransportAddressArray m_signalAddresses
 
PStringArray m_aliases
 
PStringArray m_voicePrefixes
 
OpalProductInfo m_productInfo
 
unsigned m_protocolVersion
 
bool m_isBehindNAT
 
bool m_canDisplayAmountString
 
bool m_canEnforceDurationLimit
 
unsigned m_h225Version
 
unsigned m_timeToLive
 
H235Authenticators m_authenticators
 
PTime m_creationTime
 
PTime m_lastRegistration
 
PTime m_lastInfoResponse
 
PSortedList< H323GatekeeperCallm_activeCalls
 
POrdinalDictionary< PString > m_serviceControlSessions
 

Detailed Description

This class describes endpoints that are registered with a gatekeeper server. Note that a registered endpoint has no realationship in this software to a H323EndPoint class. This is purely a description of endpoints that are registered with the gatekeeper.

Constructor & Destructor Documentation

H323RegisteredEndPoint::H323RegisteredEndPoint ( H323GatekeeperServer server,
const PString &  id 
)

Create a new endpoint registration record.

Parameters
serverGatekeeper server data
idIdentifier

Member Function Documentation

virtual void H323RegisteredEndPoint::AddCall ( H323GatekeeperCall call)
virtual

Add a call to the endpoints list of active calls. This is largely an internal routine, it is not expected the user would need to deal with this function.

virtual PBoolean H323RegisteredEndPoint::AddServiceControlSession ( const H323ServiceControlSession session,
H225_ArrayOf_ServiceControlSession &  serviceControl 
)
virtual

Set the service control session for the PDU. This is an internal function.

bool H323RegisteredEndPoint::CanDisplayAmountString ( ) const
inline

Get the flag indicating the endpoint can display credit amounts.

References m_canDisplayAmountString.

bool H323RegisteredEndPoint::CanEnforceDurationLimit ( ) const
inline

Get the flag indicating the endpoint can enforce a duration limit.

References m_canEnforceDurationLimit.

bool H323RegisteredEndPoint::CanReceiveRIP ( ) const

Get the flag indicating the endpoint can handle RIPs (H225v1 endpoints cannot)

Comparison H323RegisteredEndPoint::Compare ( const PObject &  obj) const

Compare two objects.

Parameters
objOther object
bool H323RegisteredEndPoint::ContainsAlias ( const PString &  alias)
inline

Determine if alias is an alias that this endpoint may be identified by.

References m_aliases.

PString H323RegisteredEndPoint::GetAlias ( PINDEX  idx) const
inline

Get an alias that this endpoint may be identified by.

References m_aliases.

PINDEX H323RegisteredEndPoint::GetAliasCount ( ) const
inline

Get the number of aliases this endpoint may be identified by.

References m_aliases.

const PStringArray& H323RegisteredEndPoint::GetAliases ( ) const
inline

Get the aliases this endpoint may be identified by.

References m_aliases.

PCaselessString H323RegisteredEndPoint::GetApplicationInfo ( ) const
inline

Get application info (name/version etc) for endpoint.

References OpalProductInfo::AsString(), and m_productInfo.

virtual const H235Authenticators& H323RegisteredEndPoint::GetAuthenticators ( ) const
inlinevirtual

Get the security context for this RAS connection.

References m_authenticators.

H323GatekeeperCall& H323RegisteredEndPoint::GetCall ( PINDEX  idx)
inline

Get the details of teh active call on this endpoint.

References m_activeCalls.

PINDEX H323RegisteredEndPoint::GetCallCount ( ) const
inline

Get the count of active calls on this endpoint.

References m_activeCalls.

virtual PString H323RegisteredEndPoint::GetCallCreditAmount ( ) const
virtual

Get the current call credit for this endpoint. This function is only called if the client indicates that it can use the information provided. If a server wishes to enable this feature by returning a non-empty string, it must be consistent in that usage. That is the H323GatekeeperCall::GetCallCreditAmount() for this endpoint must also return non-empty value.

The return value is a UTF-8 string for amount, including currency.

The default behaviour returns an empty string disabling the function.

virtual PBoolean H323RegisteredEndPoint::GetCallCreditMode ( ) const
virtual

Get the call credit billing mode for this endpoint. This function is only called if the client indicates that it can use the information provided.

The default behaviour return true indicating that calls will debit the account.

const PTime& H323RegisteredEndPoint::GetCreationTime ( ) const
inline

Get the creation time for endpoint.

References m_creationTime.

const OpalGloballyUniqueID& H323RegisteredEndPoint::GetDescriptorID ( ) const
inline

Get the Peer Element descriptor ID assigned to the endpoint.

References m_descriptorID.

H323GatekeeperServer& H323RegisteredEndPoint::GetGatekeeper ( ) const
inline

Get the gatekeeper server data object that owns this endpoint.

References m_gatekeeper.

bool H323RegisteredEndPoint::GetH225Version ( ) const
inline

Get the H225 version reported in the RRQ

References m_h225Version.

const PString& H323RegisteredEndPoint::GetIdentifier ( ) const
inline

Get the endpoint identifier assigned to the endpoint.

References m_identifier.

PString H323RegisteredEndPoint::GetPrefix ( PINDEX  idx) const
inline

Get a prefix that this endpoint can accept.

References m_voicePrefixes.

PINDEX H323RegisteredEndPoint::GetPrefixCount ( ) const
inline

Get the number of prefixes this endpoint can accept.

References m_voicePrefixes.

const OpalProductInfo& H323RegisteredEndPoint::GetProductInfo ( ) const
inline

Get application info (name/version etc) for endpoint.

References m_productInfo.

unsigned H323RegisteredEndPoint::GetProtocolVersion ( ) const
inline

Get the protocol version the endpoint registered with.

References m_protocolVersion.

H323TransportAddress H323RegisteredEndPoint::GetRASAddress ( PINDEX  idx) const
inline

Get an address that can be used to contact this endpoint via the RAS protocol.

References m_rasAddresses.

PINDEX H323RegisteredEndPoint::GetRASAddressCount ( ) const
inline

Get the number of addresses that can be used to contact this endpoint via the RAS protocol.

References m_rasAddresses.

const H323TransportAddressArray& H323RegisteredEndPoint::GetRASAddresses ( ) const
inline

Get the addresses that can be used to contact this endpoint via the RAS protocol.

References m_rasAddresses.

H323TransportAddress H323RegisteredEndPoint::GetSignalAddress ( PINDEX  idx) const
inline

Get an address that can be used to contact this endpoint via the H.225/Q.931 protocol, ie normal calls.

References m_signalAddresses.

PINDEX H323RegisteredEndPoint::GetSignalAddressCount ( ) const
inline

Get the number of addresses that can be used to contact this endpoint via the H.225/Q.931 protocol, ie normal calls.

References m_signalAddresses.

const H323TransportAddressArray& H323RegisteredEndPoint::GetSignalAddresses ( ) const
inline

Get the addresses that can be used to contact this endpoint via the H.225/Q.931 protocol, ie normal calls.

References m_signalAddresses.

bool H323RegisteredEndPoint::IsBehindNAT ( ) const
inline

Return if gatekeeper thinks the endpoint is behind a firewall.

References m_isBehindNAT.

virtual H323GatekeeperRequest::Response H323RegisteredEndPoint::OnFullRegistration ( H323GatekeeperRRQ request)
virtual

Call back on receiving a RAS full registration for this endpoint. This is not called if the keepAlive flag is set indicating a lightweight RRQ has been received.

The default behaviour extract information from the RRQ and sets internal variables to that data.

If returns true then a RCF is sent otherwise an RRJ is sent.

virtual H323GatekeeperRequest::Response H323RegisteredEndPoint::OnInfoResponse ( H323GatekeeperIRR request)
virtual

Handle an info request response IRR PDU. The default behaviour finds each call current for endpoint and calls the function of the same name in the H323GatekeeperCall instance.

virtual H323GatekeeperRequest::Response H323RegisteredEndPoint::OnRegistration ( H323GatekeeperRRQ request)
virtual

Call back on receiving a RAS registration for this endpoint. The default behaviour extract information from the RRQ and sets internal variables to that data.

If returns true then a RCF is sent otherwise an RRJ is sent.

virtual H323GatekeeperRequest::Response H323RegisteredEndPoint::OnSecureRegistration ( H323GatekeeperRRQ request)
virtual

Call back to set security on RAS full registration for this endpoint. This is called from OnFullRegistration().

The default behaviour extract information from the RRQ and sets internal variables to that data.

If returns true then a RCF is sent otherwise an RRJ is sent.

virtual PBoolean H323RegisteredEndPoint::OnSendDescriptorForEndpoint ( H225_ArrayOf_AliasAddress &  aliases,
H225_EndpointType &  terminalType,
H225_ArrayOf_AliasAddress &  transportAddresses 
)
virtual

Function called when gatekeeper sends a descriptor for this endpoint. This allows the gatekeeper to alter the descriptor information before it is sent.

If returns false then the desriptor is not sent

Parameters
aliasesaliases for the enndpoint
terminalTypeterminal type
transportAddressestransport addresses
virtual PBoolean H323RegisteredEndPoint::OnTimeToLive ( )
virtual

Function called to do time to live check of the call. Monitor the state of the endpoint and make sure everything is OK.

A return value of false indicates the endpoint has expired and is to be unregistered and removed.

Default behaviour checks the time since the last received RRQ and if it has been too long does an IRQ to see if the endpoint is still there and running. If the IRQ fails, false is returned.

virtual H323GatekeeperRequest::Response H323RegisteredEndPoint::OnUnregistration ( H323GatekeeperURQ request)
virtual

Call back on receiving a RAS unregistration for this endpoint. The default behaviour clears all calls owned by this endpoint.

void H323RegisteredEndPoint::PrintOn ( ostream &  strm) const

Print the name of the gatekeeper.

Parameters
strmStream to print to.
void H323RegisteredEndPoint::RemoveAlias ( const PString &  alias)

Remove an alias that this endpoint may be identified by. If this was the last alias, then endpoint will be deleted soon after by a cleanup thread. As this function is in the endpoint itself it is not possible for this function to delete the endpoint immediately

virtual PBoolean H323RegisteredEndPoint::RemoveCall ( H323GatekeeperCall call)
virtual

Remove a call from the endpoints list of active calls. This is largely an internal routine, it is not expected the user would need to deal with this function.

virtual PBoolean H323RegisteredEndPoint::SendServiceControlSession ( const H323ServiceControlSession session)
virtual

Send the service control session for the PDU. This will send an SCI pdu to the endpoint with the control service session information provided.

virtual PBoolean H323RegisteredEndPoint::SetPassword ( const PString &  password,
const PString &  username = PString::Empty() 
)
virtual

Set password for user activating H.235 security.

virtual PBoolean H323RegisteredEndPoint::Unregister ( int  reason = -1)
virtual

Force unregistration of the endpoint. This sendsa URQ to the endpoint(s) to close the call down.

Parameters
reasonReason for unregistration

Field Documentation

PSortedList<H323GatekeeperCall> H323RegisteredEndPoint::m_activeCalls
protected

Referenced by GetCall(), and GetCallCount().

PStringArray H323RegisteredEndPoint::m_aliases
protected
H235Authenticators H323RegisteredEndPoint::m_authenticators
protected

Referenced by GetAuthenticators().

bool H323RegisteredEndPoint::m_canDisplayAmountString
protected

Referenced by CanDisplayAmountString().

bool H323RegisteredEndPoint::m_canEnforceDurationLimit
protected

Referenced by CanEnforceDurationLimit().

PTime H323RegisteredEndPoint::m_creationTime
protected

Referenced by GetCreationTime().

OpalGloballyUniqueID H323RegisteredEndPoint::m_descriptorID
protected

Referenced by GetDescriptorID().

H323GatekeeperServer& H323RegisteredEndPoint::m_gatekeeper
protected

Referenced by GetGatekeeper().

unsigned H323RegisteredEndPoint::m_h225Version
protected

Referenced by GetH225Version().

PString H323RegisteredEndPoint::m_identifier
protected

Referenced by GetIdentifier().

bool H323RegisteredEndPoint::m_isBehindNAT
protected

Referenced by IsBehindNAT().

PTime H323RegisteredEndPoint::m_lastInfoResponse
protected
PTime H323RegisteredEndPoint::m_lastRegistration
protected
OpalProductInfo H323RegisteredEndPoint::m_productInfo
protected
unsigned H323RegisteredEndPoint::m_protocolVersion
protected

Referenced by GetProtocolVersion().

H323TransportAddressArray H323RegisteredEndPoint::m_rasAddresses
protected
H323GatekeeperListener* H323RegisteredEndPoint::m_rasChannel
protected
POrdinalDictionary<PString> H323RegisteredEndPoint::m_serviceControlSessions
protected
H323TransportAddressArray H323RegisteredEndPoint::m_signalAddresses
protected
unsigned H323RegisteredEndPoint::m_timeToLive
protected
PStringArray H323RegisteredEndPoint::m_voicePrefixes
protected

Referenced by GetPrefix(), and GetPrefixCount().


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