H323Gatekeeper Class Reference

#include <gkclient.h>

Inheritance diagram for H323Gatekeeper:

H225_RAS H323Transactor List of all members.

Member variable access

enum  RegistrationFailReasons {
  RegistrationSuccessful, UnregisteredLocally, UnregisteredByGatekeeper, GatekeeperLostRegistration,
  InvalidListener, DuplicateAlias, SecurityDenied, TransportError,
  NumRegistrationFailReasons, RegistrationRejectReasonMask = 0x8000
}
BOOL IsDiscoveryComplete () const
BOOL IsRegistered () const
RegistrationFailReasons GetRegistrationFailReason () const
PString GetName () const
const PString & GetEndpointIdentifier () const
void SetPassword (const PString &password, const PString &username=PString())
H323TransportAddress GetGatekeeperRouteAddress () const

Public Member Functions

Overrides from H225_RAS
BOOL OnReceiveGatekeeperConfirm (const H225_GatekeeperConfirm &gcf)
BOOL OnReceiveGatekeeperReject (const H225_GatekeeperReject &grj)
BOOL OnReceiveRegistrationConfirm (const H225_RegistrationConfirm &rcf)
BOOL OnReceiveRegistrationReject (const H225_RegistrationReject &rrj)
BOOL OnReceiveUnregistrationRequest (const H225_UnregistrationRequest &urq)
BOOL OnReceiveUnregistrationConfirm (const H225_UnregistrationConfirm &ucf)
BOOL OnReceiveUnregistrationReject (const H225_UnregistrationReject &urj)
BOOL OnReceiveAdmissionConfirm (const H225_AdmissionConfirm &acf)
BOOL OnReceiveAdmissionReject (const H225_AdmissionReject &arj)
BOOL OnReceiveDisengageRequest (const H225_DisengageRequest &drq)
BOOL OnReceiveBandwidthConfirm (const H225_BandwidthConfirm &bcf)
BOOL OnReceiveBandwidthRequest (const H225_BandwidthRequest &brq)
BOOL OnReceiveInfoRequest (const H225_InfoRequest &irq)
BOOL OnReceiveServiceControlIndication (const H225_ServiceControlIndication &)
void OnSendGatekeeperRequest (H225_GatekeeperRequest &grq)
void OnSendAdmissionRequest (H225_AdmissionRequest &arq)
BOOL OnSendFeatureSet (unsigned, H225_FeatureSet &features) const
void OnReceiveFeatureSet (unsigned, const H225_FeatureSet &features) const
Protocol operations
BOOL DiscoverAny ()
BOOL DiscoverByName (const PString &identifier)
BOOL DiscoverByAddress (const H323TransportAddress &address)
BOOL DiscoverByNameAndAddress (const PString &identifier, const H323TransportAddress &address)
BOOL RegistrationRequest (BOOL autoReregister=TRUE)
BOOL UnregistrationRequest (int reason)
BOOL LocationRequest (const PString &alias, H323TransportAddress &address)
BOOL LocationRequest (const PStringList &aliases, H323TransportAddress &address)
BOOL AdmissionRequest (H323Connection &connection, AdmissionResponse &response, BOOL ignorePreGrantedARQ=FALSE)
BOOL DisengageRequest (const H323Connection &connection, unsigned reason)
BOOL BandwidthRequest (H323Connection &connection, unsigned requestedBandwidth)
void InfoRequestResponse ()
void InfoRequestResponse (const H323Connection &connection)
void InfoRequestResponse (const H323Connection &connection, const H225_H323_UU_PDU &pdu, BOOL sent)
virtual void OnServiceControlSessions (const H225_ArrayOf_ServiceControlSession &serviceControl, H323Connection *connection)

Protected Types

enum  { RequireARQ, PregrantARQ, PreGkRoutedARQ }

Protected Member Functions

BOOL StartDiscovery (const H323TransportAddress &address)
BOOL DiscoverGatekeeper (H323RasPDU &request, const H323TransportAddress &address)
unsigned SetupGatekeeperRequest (H323RasPDU &request)
void Connect (const H323TransportAddress &address, const PString &gatekeeperIdentifier)
 PDECLARE_NOTIFIER (PThread, H323Gatekeeper, MonitorMain)
 PDECLARE_NOTIFIER (PTimer, H323Gatekeeper, TickleMonitor)
void RegistrationTimeToLive ()
void SetInfoRequestRate (const PTimeInterval &rate)
void ClearInfoRequestRate ()
H225_InfoRequestResponseBuildInfoRequestResponse (H323RasPDU &response, unsigned seqNum)
BOOL SendUnsolicitedIRR (H225_InfoRequestResponse &irr, H323RasPDU &response)
void SetAlternates (const H225_ArrayOf_AlternateGK &alts, BOOL permanent)
virtual BOOL MakeRequest (Request &request)
BOOL MakeRequestWithReregister (Request &request, unsigned unregisteredTag)

Protected Attributes

BOOL discoveryComplete
PString endpointIdentifier
RegistrationFailReasons registrationFailReason
PSortedList< AlternateInfoalternates
BOOL alternatePermanent
PSemaphore requestMutex
H235Authenticators authenticators
enum H323Gatekeeper:: { ... }  pregrantMakeCall
enum H323Gatekeeper:: { ... }  pregrantAnswerCall
H323TransportAddress gkRouteAddress
BOOL autoReregister
BOOL reregisterNow
PTimer timeToLive
BOOL requiresDiscovery
PTimer infoRequestRate
BOOL willRespondToIRR
PThread * monitor
BOOL monitorStop
PSyncPoint monitorTickle
PDictionary< POrdinalKey,
H323ServiceControlSession
serviceControlSessions

Classes

struct  AdmissionResponse
class  AlternateInfo

Detailed Description

This class embodies the H.225.0 RAS protocol to gatekeepers.


Member Enumeration Documentation

enum H323Gatekeeper::RegistrationFailReasons

Enumerator:
RegistrationSuccessful 
UnregisteredLocally 
UnregisteredByGatekeeper 
GatekeeperLostRegistration 
InvalidListener 
DuplicateAlias 
SecurityDenied 
TransportError 
NumRegistrationFailReasons 
RegistrationRejectReasonMask 

anonymous enum [protected]

Enumerator:
RequireARQ 
PregrantARQ 
PreGkRoutedARQ 


Constructor & Destructor Documentation

H323Gatekeeper::H323Gatekeeper ( H323EndPoint endpoint,
H323Transport transport 
)

Create a new gatekeeper.

Parameters:
endpoint  Endpoint gatekeeper is associated with.
transport  Transport over which gatekeepers communicates.

H323Gatekeeper::~H323Gatekeeper (  ) 

Destroy gatekeeper.

H323Gatekeeper::H323Gatekeeper ( H323EndPoint endpoint,
H323Transport transport 
)

Create a new gatekeeper.

Parameters:
endpoint  Endpoint gatekeeper is associated with.
transport  Transport over which gatekeepers communicates.

H323Gatekeeper::~H323Gatekeeper (  ) 

Destroy gatekeeper.


Member Function Documentation

BOOL H323Gatekeeper::OnReceiveGatekeeperConfirm ( const H225_GatekeeperConfirm gcf  )  [virtual]

Reimplemented from H225_RAS.

BOOL H323Gatekeeper::OnReceiveGatekeeperReject ( const H225_GatekeeperReject grj  )  [virtual]

Reimplemented from H225_RAS.

BOOL H323Gatekeeper::OnReceiveRegistrationConfirm ( const H225_RegistrationConfirm rcf  )  [virtual]

Reimplemented from H225_RAS.

BOOL H323Gatekeeper::OnReceiveRegistrationReject ( const H225_RegistrationReject rrj  )  [virtual]

Reimplemented from H225_RAS.

BOOL H323Gatekeeper::OnReceiveUnregistrationRequest ( const H225_UnregistrationRequest urq  )  [virtual]

Reimplemented from H225_RAS.

BOOL H323Gatekeeper::OnReceiveUnregistrationConfirm ( const H225_UnregistrationConfirm ucf  )  [virtual]

Reimplemented from H225_RAS.

BOOL H323Gatekeeper::OnReceiveUnregistrationReject ( const H225_UnregistrationReject urj  )  [virtual]

Reimplemented from H225_RAS.

BOOL H323Gatekeeper::OnReceiveAdmissionConfirm ( const H225_AdmissionConfirm acf  )  [virtual]

Reimplemented from H225_RAS.

BOOL H323Gatekeeper::OnReceiveAdmissionReject ( const H225_AdmissionReject arj  )  [virtual]

Reimplemented from H225_RAS.

BOOL H323Gatekeeper::OnReceiveDisengageRequest ( const H225_DisengageRequest drq  )  [virtual]

Reimplemented from H225_RAS.

BOOL H323Gatekeeper::OnReceiveBandwidthConfirm ( const H225_BandwidthConfirm bcf  )  [virtual]

Reimplemented from H225_RAS.

BOOL H323Gatekeeper::OnReceiveBandwidthRequest ( const H225_BandwidthRequest brq  )  [virtual]

Reimplemented from H225_RAS.

BOOL H323Gatekeeper::OnReceiveInfoRequest ( const H225_InfoRequest irq  )  [virtual]

Reimplemented from H225_RAS.

BOOL H323Gatekeeper::OnReceiveServiceControlIndication ( const H225_ServiceControlIndication  )  [virtual]

Reimplemented from H225_RAS.

void H323Gatekeeper::OnSendGatekeeperRequest ( H225_GatekeeperRequest grq  )  [virtual]

Reimplemented from H225_RAS.

void H323Gatekeeper::OnSendAdmissionRequest ( H225_AdmissionRequest arq  )  [virtual]

Reimplemented from H225_RAS.

BOOL H323Gatekeeper::OnSendFeatureSet ( unsigned  ,
H225_FeatureSet features 
) const [virtual]

Reimplemented from H225_RAS.

void H323Gatekeeper::OnReceiveFeatureSet ( unsigned  ,
const H225_FeatureSet features 
) const [virtual]

Reimplemented from H225_RAS.

BOOL H323Gatekeeper::DiscoverAny (  ) 

Discover a gatekeeper on the local network.

BOOL H323Gatekeeper::DiscoverByName ( const PString &  identifier  ) 

Discover a gatekeeper on the local network. If the identifier string is empty then the first gatekeeper to respond to a broadcast is used.

Parameters:
identifier  Gatekeeper identifier to find

BOOL H323Gatekeeper::DiscoverByAddress ( const H323TransportAddress address  ) 

Discover a gatekeeper on the local network. If the address string is empty then the first gatekeeper to respond to a broadcast is used.

Parameters:
address  Address of gatekeeper.

BOOL H323Gatekeeper::DiscoverByNameAndAddress ( const PString &  identifier,
const H323TransportAddress address 
)

Discover a gatekeeper on the local network. Combination of DiscoverByName() and DiscoverByAddress().

BOOL H323Gatekeeper::RegistrationRequest ( BOOL  autoReregister = TRUE  ) 

Register with gatekeeper.

Parameters:
autoReregister  Automatic register on unregister

BOOL H323Gatekeeper::UnregistrationRequest ( int  reason  ) 

Unregister with gatekeeper.

Parameters:
reason  Reason for unregistration

BOOL H323Gatekeeper::LocationRequest ( const PString &  alias,
H323TransportAddress address 
)

Location request to gatekeeper.

Parameters:
alias  Alias name we wish to find.
address  Resultant transport address.

BOOL H323Gatekeeper::LocationRequest ( const PStringList &  aliases,
H323TransportAddress address 
)

Location request to gatekeeper.

Parameters:
aliases  Alias names we wish to find.
address  Resultant transport address.

BOOL H323Gatekeeper::AdmissionRequest ( H323Connection connection,
AdmissionResponse response,
BOOL  ignorePreGrantedARQ = FALSE 
)

Admission request to gatekeeper.

Parameters:
connection  Connection we wish to change.
response  Response parameters to ARQ
ignorePreGrantedARQ  Flag to force ARQ to be sent

BOOL H323Gatekeeper::DisengageRequest ( const H323Connection connection,
unsigned  reason 
)

Disengage request to gatekeeper.

Parameters:
connection  Connection we wish admitted.
reason  Reason code for disengage

BOOL H323Gatekeeper::BandwidthRequest ( H323Connection connection,
unsigned  requestedBandwidth 
)

Bandwidth request to gatekeeper.

Parameters:
connection  Connection we wish to change.
requestedBandwidth  New bandwidth wanted in 0.1kbps

void H323Gatekeeper::InfoRequestResponse (  ) 

Send an unsolicited info response to the gatekeeper.

void H323Gatekeeper::InfoRequestResponse ( const H323Connection connection  ) 

Send an unsolicited info response to the gatekeeper.

Parameters:
connection  Connection to send info about

void H323Gatekeeper::InfoRequestResponse ( const H323Connection connection,
const H225_H323_UU_PDU pdu,
BOOL  sent 
)

Send an unsolicited info response to the gatekeeper.

Parameters:
connection  Connection to send info about
pdu  PDU that was sent or received
sent  Flag for PDU was sent or received

virtual void H323Gatekeeper::OnServiceControlSessions ( const H225_ArrayOf_ServiceControlSession serviceControl,
H323Connection connection 
) [virtual]

Handle incoming service control session information.

BOOL H323Gatekeeper::IsDiscoveryComplete (  )  const [inline]

Determine if the endpoint has discovered the gatekeeper.

BOOL H323Gatekeeper::IsRegistered (  )  const [inline]

Determine if the endpoint is registered with the gatekeeper.

RegistrationFailReasons H323Gatekeeper::GetRegistrationFailReason (  )  const [inline]

Get the registration fail reason.

PString H323Gatekeeper::GetName (  )  const

Get the gatekeeper name. The gets the name of the gatekeeper. It will be of the form id where id is the gatekeeperIdentifier and address is the transport address used. If the gatekeeperIdentifier is empty the '@' is not included and only the transport is shown. The transport is minimised also, with the type removed if IP is used and the :port removed if the default port is used.

const PString& H323Gatekeeper::GetEndpointIdentifier (  )  const [inline]

Get the endpoint identifier

void H323Gatekeeper::SetPassword ( const PString &  password,
const PString &  username = PString() 
)

Set the H.235 password in the gatekeeper. If no username is present then it will default to the endpoint local user name (ie first alias).

Parameters:
password  New password
username  Username for password

H323TransportAddress H323Gatekeeper::GetGatekeeperRouteAddress (  )  const [inline]

BOOL H323Gatekeeper::StartDiscovery ( const H323TransportAddress address  )  [protected]

BOOL H323Gatekeeper::DiscoverGatekeeper ( H323RasPDU request,
const H323TransportAddress address 
) [protected]

unsigned H323Gatekeeper::SetupGatekeeperRequest ( H323RasPDU request  )  [protected]

void H323Gatekeeper::Connect ( const H323TransportAddress address,
const PString &  gatekeeperIdentifier 
) [protected]

H323Gatekeeper::PDECLARE_NOTIFIER ( PThread  ,
H323Gatekeeper  ,
MonitorMain   
) [protected]

H323Gatekeeper::PDECLARE_NOTIFIER ( PTimer  ,
H323Gatekeeper  ,
TickleMonitor   
) [protected]

void H323Gatekeeper::RegistrationTimeToLive (  )  [protected]

void H323Gatekeeper::SetInfoRequestRate ( const PTimeInterval &  rate  )  [protected]

void H323Gatekeeper::ClearInfoRequestRate (  )  [protected]

H225_InfoRequestResponse& H323Gatekeeper::BuildInfoRequestResponse ( H323RasPDU response,
unsigned  seqNum 
) [protected]

BOOL H323Gatekeeper::SendUnsolicitedIRR ( H225_InfoRequestResponse irr,
H323RasPDU response 
) [protected]

void H323Gatekeeper::SetAlternates ( const H225_ArrayOf_AlternateGK alts,
BOOL  permanent 
) [protected]

virtual BOOL H323Gatekeeper::MakeRequest ( Request &  request  )  [protected, virtual]

BOOL H323Gatekeeper::MakeRequestWithReregister ( Request &  request,
unsigned  unregisteredTag 
) [protected]


Member Data Documentation

BOOL H323Gatekeeper::discoveryComplete [protected]

PString H323Gatekeeper::endpointIdentifier [protected]

RegistrationFailReasons H323Gatekeeper::registrationFailReason [protected]

PSortedList<AlternateInfo> H323Gatekeeper::alternates [protected]

BOOL H323Gatekeeper::alternatePermanent [protected]

PSemaphore H323Gatekeeper::requestMutex [protected]

H235Authenticators H323Gatekeeper::authenticators [protected]

enum { ... } H323Gatekeeper::pregrantMakeCall [protected]

enum { ... } H323Gatekeeper::pregrantAnswerCall [protected]

H323TransportAddress H323Gatekeeper::gkRouteAddress [protected]

BOOL H323Gatekeeper::autoReregister [protected]

BOOL H323Gatekeeper::reregisterNow [protected]

PTimer H323Gatekeeper::timeToLive [protected]

BOOL H323Gatekeeper::requiresDiscovery [protected]

PTimer H323Gatekeeper::infoRequestRate [protected]

BOOL H323Gatekeeper::willRespondToIRR [protected]

PThread* H323Gatekeeper::monitor [protected]

BOOL H323Gatekeeper::monitorStop [protected]

PSyncPoint H323Gatekeeper::monitorTickle [protected]

PDictionary<POrdinalKey, H323ServiceControlSession> H323Gatekeeper::serviceControlSessions [protected]


The documentation for this class was generated from the following file:
Generated on Fri Mar 7 06:33:58 2008 for OPAL by  doxygen 1.5.1