This class implements a basic gatekeeper server functionality.
![]() | Construction |
![]() | Protocol Handler Operations |
![]() | EndPoint Operations |
![]() | Call Operations |
![]() | Routing operations |
![]() | Policy operations |
![]() | Access functions |
This class implements a basic gatekeeper server functionality. An instance of this class contains all of the state information and operations for a gatekeeper. Multiple gatekeeper listeners may be using thsi class to link individual UDP (or other protocol) packets from various sources (interfaces etc) into a single instance.There is typically only one instance of this class, though it is not limited to that. An application would also quite likely descend from this class and override call back functions to implement more complex policy.
However, a user may override this function to create objects that are
user defined descendants of H323GatekeeperListener so the user can
maintain extra information on a interface by interface basis.
BOOL AddListener( H323Transport * transport )
BOOL AddListener( H323GatekeeperListener * listener )
virtual H323GatekeeperListener* CreateListener( H323Transport * transport )
BOOL RemoveListener( H323GatekeeperListener * listener )
If returns TRUE then a RCF is sent otherwise an RRJ is sent.
The user woiuld not usually use this function as it is used internally
by the server when new registration requests (RRQ) are received. Note that a registered endpoint has no realationship in this software
to a H323EndPoint class.
However, a user may override this function to create objects that are
user defined descendants of H323RegisteredEndPoint so the user can
maintain extra information on a endpoint by endpoint basis.
The default behaviour simply returns the string representation of the
member variable nextIdentifier. There could be a problem in this
implementation after 4,294,967,296 have been registered.
virtual BOOL OnUnregistration( H323RegisteredEndPoint * ep, const H225_UnregistrationRequest & urq, H225_UnregistrationConfirm & ucf, H225_UnregistrationReject & urj )
virtual void AddEndPoint( H323RegisteredEndPoint * ep )
virtual void RemoveEndPoint( H323RegisteredEndPoint * ep, BOOL autoDelete = TRUE, BOOL lock = TRUE )
virtual void RemoveAlias( const PString & alias, BOOL autoDelete = TRUE )
virtual H323RegisteredEndPoint* CreateRegisteredEndPoint( const H225_RegistrationRequest & rrq )
virtual PString CreateEndPointIdentifier()
virtual H323RegisteredEndPoint* FindEndPointByIdentifier( const PString & identifier )
virtual H323RegisteredEndPoint* FindEndPointBySignalAddresses( const H225_ArrayOf_TransportAddress & addresses )
virtual H323RegisteredEndPoint* FindEndPointBySignalAddress( const H323TransportAddress & address )
virtual H323RegisteredEndPoint* FindEndPointByAliasAddress( const H225_AliasAddress & alias )
virtual H323RegisteredEndPoint* FindEndPointByAliasString( const PString & alias )
H323RegisteredEndPoint* FirstEndPoint()
H323RegisteredEndPoint* NextEndPoint()
void AbortEnumeration()
void AgeEndPoints()
The user woiuld not usually use this function as it is used internally
by the server when new registration requests (RRQ) are received.
However, a user may override this function to create objects that are
user defined descendants of H323GatekeeperCall so the user can
maintain extra information on a call by call basis.
virtual BOOL OnDisengage( H323RegisteredEndPoint & ep, const H225_DisengageRequest & drq, H225_DisengageConfirm & dcf, H225_DisengageReject & drj )
virtual BOOL OnBandwidth( H323RegisteredEndPoint & ep, const H225_BandwidthRequest & brq, H225_BandwidthConfirm & bcf, H225_BandwidthReject & brj )
virtual void AddCall( H323GatekeeperCall * call )
virtual void RemoveCall( H323GatekeeperCall * call )
virtual H323GatekeeperCall* CreateCall( H323RegisteredEndPoint & endpoint, const OpalGloballyUniqueID & callIdentifier )
virtual H323GatekeeperCall* FindCall( const OpalGloballyUniqueID & callIdentifier )
It is expected that a user would override this function to implement application specified look up algorithms.
It is expected that a user would override this function to implement
application specified look up algorithms. The default behaviour checks the isGatekeeperRouted and if TRUE simply
returns the gatekeepers associated endpoints (not registered endpoint,
but real H323EndPoint) listening address. If isGatekeeperRouted is FALSE then it looks up the registered
endpoints by alias and uses the saved signal address in the database. If the alias is not registered then the address parameter is not
changed and the function returns TRUE if it is a valid address, FALSE
if it was empty.
virtual BOOL TranslateAliasAddressToSignalAddress( const H225_AliasAddress & alias, H323TransportAddress & address )
It is expected that a user would override this function to implement application specified security policy algorithms.
The default behaviour simply returns TRUE.
It is expected that a user would override this function to implement
application specified security policy algorithms. The default behaviour checks the canOnlyAnswerRegisteredEP or
canOnlyCallRegisteredEP meber variables depending on if it is an
incoming call and if that is TRUE only allows the call to proceed
if the alias is also registered with the gatekeeper.
It is expected that a user would override this function to implement
application specified security policy algorithms. The default behaviour checks the canOnlyAnswerRegisteredEP or
canOnlyCallRegisteredEP meber variables depending on if it is an
incoming call and if that is TRUE only allows the call to proceed
if the alias is also registered with the gatekeeper.
virtual BOOL CheckAliasAddressPolicy( const H323RegisteredEndPoint & ep, const H225_AdmissionRequest & arq, const H225_AliasAddress & alias )
virtual BOOL CheckAliasStringPolicy( const H323RegisteredEndPoint & ep, const H225_AdmissionRequest & arq, const PString & alias )
virtual BOOL GetUsersPassword( const PString & alias, PString & password ) const
virtual unsigned AllocateBandwidth( unsigned newBandwidth, unsigned oldBandwidth = 0 )
void SetGatekeeperIdentifier( const PString & id, BOOL adjustListeners = TRUE )
unsigned GetAvailableBandwidth() const
void SetAvailableBandwidth(unsigned bps100)
unsigned GetTimeToLive() const
void SetTimeToLive(unsigned seconds)
Alphabetic index HTML hierarchy of classes or Java