h225ras.h

Go to the documentation of this file.
00001 /*
00002  * h225ras.h
00003  *
00004  * H.225 RAS protocol handler
00005  *
00006  * Open H323 Library
00007  *
00008  * Copyright (c) 2001 Equivalence Pty. Ltd.
00009  *
00010  * The contents of this file are subject to the Mozilla Public License
00011  * Version 1.0 (the "License"); you may not use this file except in
00012  * compliance with the License. You may obtain a copy of the License at
00013  * http://www.mozilla.org/MPL/
00014  *
00015  * Software distributed under the License is distributed on an "AS IS"
00016  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
00017  * the License for the specific language governing rights and limitations
00018  * under the License.
00019  *
00020  * The Original Code is Open H323 Library.
00021  *
00022  * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
00023  *
00024  * Portions of this code were written with the assisance of funding from
00025  * iFace, Inc. http://www.iface.com
00026  *
00027  * Contributor(s): ______________________________________.
00028  *
00029  * $Log: h225ras.h,v $
00030  * Revision 2.9  2005/11/30 13:35:26  csoutheren
00031  * Changed tags for Doxygen
00032  *
00033  * Revision 2.8  2004/02/19 10:46:43  rjongbloed
00034  * Merged OpenH323 version 1.13.1 changes.
00035  *
00036  * Revision 2.7  2003/01/07 04:39:52  robertj
00037  * Updated to OpenH323 v1.11.2
00038  *
00039  * Revision 2.6  2002/11/10 11:33:16  robertj
00040  * Updated to OpenH323 v1.10.3
00041  *
00042  * Revision 2.5  2002/09/16 02:52:33  robertj
00043  * Added #define so can select if #pragma interface/implementation is used on
00044  *   platform basis (eg MacOS) rather than compiler, thanks Robert Monaghan.
00045  *
00046  * Revision 2.4  2002/09/04 06:01:46  robertj
00047  * Updated to OpenH323 v1.9.6
00048  *
00049  * Revision 2.3  2002/07/01 04:56:29  robertj
00050  * Updated to OpenH323 v1.9.1
00051  *
00052  * Revision 2.2  2001/10/05 00:22:13  robertj
00053  * Updated to PWLib 1.2.0 and OpenH323 1.7.0
00054  *
00055  * Revision 2.1  2001/08/13 05:10:39  robertj
00056  * Updates from OpenH323 v1.6.0 release.
00057  *
00058  * Revision 2.0  2001/07/27 15:48:24  robertj
00059  * Conversion of OpenH323 to Open Phone Abstraction Library (OPAL)
00060  *
00061  * Revision 1.35  2003/04/01 01:05:39  robertj
00062  * Split service control handlers from H.225 RAS header.
00063  *
00064  * Revision 1.34  2003/03/20 01:51:07  robertj
00065  * More abstraction of H.225 RAS and H.501 protocols transaction handling.
00066  *
00067  * Revision 1.33  2003/03/01 00:23:42  craigs
00068  * New PeerElement implementation
00069  *
00070  * Revision 1.32  2003/02/21 07:23:18  robertj
00071  * Fixed up some comments
00072  *
00073  * Revision 1.31  2003/02/21 05:28:39  craigs
00074  * Factored out code for user with peer elements
00075  *
00076  * Revision 1.30  2003/02/01 13:31:14  robertj
00077  * Changes to support CAT authentication in RAS.
00078  *
00079  * Revision 1.29  2002/11/28 04:41:44  robertj
00080  * Added support for RAS ServiceControlIndication command.
00081  *
00082  * Revision 1.28  2002/11/27 06:54:52  robertj
00083  * Added Service Control Session management as per Annex K/H.323 via RAS
00084  *   only at this stage.
00085  * Added H.248 ASN and very primitive infrastructure for linking into the
00086  *   Service Control Session management system.
00087  * Added basic infrastructure for Annex K/H.323 HTTP transport system.
00088  * Added Call Credit Service Control to display account balances.
00089  *
00090  * Revision 1.27  2002/11/21 22:26:09  robertj
00091  * Changed promiscuous mode to be three way. Fixes race condition in gkserver
00092  *   which can cause crashes or more PDUs to be sent to the wrong place.
00093  *
00094  * Revision 1.26  2002/11/21 07:21:46  robertj
00095  * Improvements to alternate gatekeeper client code, thanks Kevin Bouchard
00096  *
00097  * Revision 1.25  2002/11/11 07:20:08  robertj
00098  * Minor clean up of API for doing RAS requests suing authentication.
00099  *
00100  * Revision 1.24  2002/11/04 11:52:08  robertj
00101  * Fixed comment
00102  *
00103  * Revision 1.23  2002/10/17 02:09:01  robertj
00104  * Backed out previous change for including PDU tag, doesn't work!
00105  *
00106  * Revision 1.22  2002/10/16 03:40:12  robertj
00107  * Added PDU tag to cache look up key.
00108  *
00109  * Revision 1.21  2002/09/19 09:15:56  robertj
00110  * Fixed problem with making (and assuring with multi-threading) IRQ and DRQ
00111  *   requests are sent to the correct endpoint address, thanks Martijn Roest.
00112  *
00113  * Revision 1.20  2002/09/16 01:14:15  robertj
00114  * Added #define so can select if #pragma interface/implementation is used on
00115  *   platform basis (eg MacOS) rather than compiler, thanks Robert Monaghan.
00116  *
00117  * Revision 1.19  2002/09/03 05:37:17  robertj
00118  * Normalised the multi-include header prevention ifdef/define symbol.
00119  * Added RAS port constants to RAS clas name space.
00120  *
00121  * Revision 1.18  2002/08/12 06:29:55  robertj
00122  * Fixed problem with cached responses being aged before the RIP time which
00123  *   made retries by client appear as "new" requests when they were not.
00124  *
00125  * Revision 1.17  2002/08/12 05:38:20  robertj
00126  * Changes to the RAS subsystem to support ability to make requests to client
00127  *   from gkserver without causing bottlenecks and race conditions.
00128  *
00129  * Revision 1.16  2002/08/05 10:03:47  robertj
00130  * Cosmetic changes to normalise the usage of pragma interface/implementation.
00131  *
00132  * Revision 1.15  2002/08/05 05:17:37  robertj
00133  * Fairly major modifications to support different authentication credentials
00134  *   in ARQ to the logged in ones on RRQ. For both client and server.
00135  * Various other H.235 authentication bugs and anomalies fixed on the way.
00136  *
00137  * Revision 1.14  2002/07/29 11:36:08  robertj
00138  * Fixed race condition if RIP is followed very quickly by actual response.
00139  *
00140  * Revision 1.13  2002/06/26 03:47:45  robertj
00141  * Added support for alternate gatekeepers.
00142  *
00143  * Revision 1.12  2002/06/21 02:52:44  robertj
00144  * Fixed problem with double checking H.235 hashing, this causes failure as
00145  *   the authenticator thinks it is a replay attack.
00146  *
00147  * Revision 1.11  2002/06/12 03:49:56  robertj
00148  * Added PrintOn function for trace output of RAS channel.
00149  *
00150  * Revision 1.10  2002/05/03 09:18:45  robertj
00151  * Added automatic retransmission of RAS responses to retried requests.
00152  *
00153  * Revision 1.9  2001/10/09 08:04:59  robertj
00154  * Fixed unregistration so still unregisters if gk goes offline, thanks Chris Purvis
00155  *
00156  * Revision 1.8  2001/09/18 10:36:54  robertj
00157  * Allowed multiple overlapping requests in RAS channel.
00158  *
00159  * Revision 1.7  2001/09/12 03:12:36  robertj
00160  * Added ability to disable the checking of RAS responses against
00161  *   security authenticators.
00162  * Fixed bug in having multiple authentications if have a retry.
00163  *
00164  * Revision 1.6  2001/08/10 11:03:49  robertj
00165  * Major changes to H.235 support in RAS to support server.
00166  *
00167  * Revision 1.5  2001/08/06 07:44:52  robertj
00168  * Fixed problems with building without SSL
00169  *
00170  * Revision 1.4  2001/08/06 03:18:35  robertj
00171  * Fission of h323.h to h323ep.h & h323con.h, h323.h now just includes files.
00172  * Improved access to H.235 secure RAS functionality.
00173  * Changes to H.323 secure RAS contexts to help use with gk server.
00174  *
00175  * Revision 1.3  2001/06/25 01:06:40  robertj
00176  * Fixed resolution of RAS timeout so not rounded down to second.
00177  *
00178  * Revision 1.2  2001/06/22 00:21:10  robertj
00179  * Fixed bug in H.225 RAS protocol with 16 versus 32 bit sequence numbers.
00180  *
00181  * Revision 1.1  2001/06/18 06:23:47  robertj
00182  * Split raw H.225 RAS protocol out of gatekeeper client class.
00183  *
00184  */
00185 
00186 #ifndef __OPAL_H225RAS_H
00187 #define __OPAL_H225RAS_H
00188 
00189 #ifdef P_USE_PRAGMA
00190 #pragma interface
00191 #endif
00192 
00193 
00194 #include <h323/transaddr.h>
00195 #include <h323/h235auth.h>
00196 #include <h323/h323trans.h>
00197 #include <h323/svcctrl.h>
00198 
00199 
00200 class PASN_Sequence;
00201 class PASN_Choice;
00202 
00203 class H225_GatekeeperRequest;
00204 class H225_GatekeeperConfirm;
00205 class H225_GatekeeperReject;
00206 class H225_RegistrationRequest;
00207 class H225_RegistrationConfirm;
00208 class H225_RegistrationReject;
00209 class H225_UnregistrationRequest;
00210 class H225_UnregistrationConfirm;
00211 class H225_UnregistrationReject;
00212 class H225_AdmissionRequest;
00213 class H225_AdmissionConfirm;
00214 class H225_AdmissionReject;
00215 class H225_BandwidthRequest;
00216 class H225_BandwidthConfirm;
00217 class H225_BandwidthReject;
00218 class H225_DisengageRequest;
00219 class H225_DisengageConfirm;
00220 class H225_DisengageReject;
00221 class H225_LocationRequest;
00222 class H225_LocationConfirm;
00223 class H225_LocationReject;
00224 class H225_InfoRequest;
00225 class H225_InfoRequestResponse;
00226 class H225_NonStandardMessage;
00227 class H225_UnknownMessageResponse;
00228 class H225_RequestInProgress;
00229 class H225_ResourcesAvailableIndicate;
00230 class H225_ResourcesAvailableConfirm;
00231 class H225_InfoRequestAck;
00232 class H225_InfoRequestNak;
00233 class H225_ArrayOf_CryptoH323Token;
00234 
00235 class H323EndPoint;
00236 class H323Connection;
00237 class H323RasPDU;
00238 
00239 
00241 
00244 class H225_RAS : public H323Transactor
00245 {
00246   PCLASSINFO(H225_RAS, H323Transactor);
00247   public:
00250     enum {
00251       DefaultRasMulticastPort = 1718,
00252       DefaultRasUdpPort = 1719
00253     };
00254 
00257     H225_RAS(
00258       H323EndPoint & endpoint,  
00259       H323Transport * transport 
00260     );
00261 
00264     ~H225_RAS();
00266 
00271     void PrintOn(
00272       ostream & strm    
00273     ) const;
00275 
00280     virtual H323TransactionPDU * CreateTransactionPDU() const;
00281 
00284     virtual BOOL HandleTransaction(
00285       const PASN_Object & rawPDU
00286     );
00287 
00290     virtual void OnSendingPDU(
00291       PASN_Object & rawPDU
00292     );
00294 
00297     virtual void OnSendGatekeeperRequest(H323RasPDU &, H225_GatekeeperRequest &);
00298     virtual void OnSendGatekeeperConfirm(H323RasPDU &, H225_GatekeeperConfirm &);
00299     virtual void OnSendGatekeeperReject(H323RasPDU &, H225_GatekeeperReject &);
00300     virtual void OnSendGatekeeperRequest(H225_GatekeeperRequest &);
00301     virtual void OnSendGatekeeperConfirm(H225_GatekeeperConfirm &);
00302     virtual void OnSendGatekeeperReject(H225_GatekeeperReject &);
00303     virtual BOOL OnReceiveGatekeeperRequest(const H323RasPDU &, const H225_GatekeeperRequest &);
00304     virtual BOOL OnReceiveGatekeeperConfirm(const H323RasPDU &, const H225_GatekeeperConfirm &);
00305     virtual BOOL OnReceiveGatekeeperReject(const H323RasPDU &, const H225_GatekeeperReject &);
00306     virtual BOOL OnReceiveGatekeeperRequest(const H225_GatekeeperRequest &);
00307     virtual BOOL OnReceiveGatekeeperConfirm(const H225_GatekeeperConfirm &);
00308     virtual BOOL OnReceiveGatekeeperReject(const H225_GatekeeperReject &);
00309 
00310     virtual void OnSendRegistrationRequest(H323RasPDU &, H225_RegistrationRequest &);
00311     virtual void OnSendRegistrationConfirm(H323RasPDU &, H225_RegistrationConfirm &);
00312     virtual void OnSendRegistrationReject(H323RasPDU &, H225_RegistrationReject &);
00313     virtual void OnSendRegistrationRequest(H225_RegistrationRequest &);
00314     virtual void OnSendRegistrationConfirm(H225_RegistrationConfirm &);
00315     virtual void OnSendRegistrationReject(H225_RegistrationReject &);
00316     virtual BOOL OnReceiveRegistrationRequest(const H323RasPDU &, const H225_RegistrationRequest &);
00317     virtual BOOL OnReceiveRegistrationConfirm(const H323RasPDU &, const H225_RegistrationConfirm &);
00318     virtual BOOL OnReceiveRegistrationReject(const H323RasPDU &, const H225_RegistrationReject &);
00319     virtual BOOL OnReceiveRegistrationRequest(const H225_RegistrationRequest &);
00320     virtual BOOL OnReceiveRegistrationConfirm(const H225_RegistrationConfirm &);
00321     virtual BOOL OnReceiveRegistrationReject(const H225_RegistrationReject &);
00322 
00323     virtual void OnSendUnregistrationRequest(H323RasPDU &, H225_UnregistrationRequest &);
00324     virtual void OnSendUnregistrationConfirm(H323RasPDU &, H225_UnregistrationConfirm &);
00325     virtual void OnSendUnregistrationReject(H323RasPDU &, H225_UnregistrationReject &);
00326     virtual void OnSendUnregistrationRequest(H225_UnregistrationRequest &);
00327     virtual void OnSendUnregistrationConfirm(H225_UnregistrationConfirm &);
00328     virtual void OnSendUnregistrationReject(H225_UnregistrationReject &);
00329     virtual BOOL OnReceiveUnregistrationRequest(const H323RasPDU &, const H225_UnregistrationRequest &);
00330     virtual BOOL OnReceiveUnregistrationConfirm(const H323RasPDU &, const H225_UnregistrationConfirm &);
00331     virtual BOOL OnReceiveUnregistrationReject(const H323RasPDU &, const H225_UnregistrationReject &);
00332     virtual BOOL OnReceiveUnregistrationRequest(const H225_UnregistrationRequest &);
00333     virtual BOOL OnReceiveUnregistrationConfirm(const H225_UnregistrationConfirm &);
00334     virtual BOOL OnReceiveUnregistrationReject(const H225_UnregistrationReject &);
00335 
00336     virtual void OnSendAdmissionRequest(H323RasPDU &, H225_AdmissionRequest &);
00337     virtual void OnSendAdmissionConfirm(H323RasPDU &, H225_AdmissionConfirm &);
00338     virtual void OnSendAdmissionReject(H323RasPDU &, H225_AdmissionReject &);
00339     virtual void OnSendAdmissionRequest(H225_AdmissionRequest &);
00340     virtual void OnSendAdmissionConfirm(H225_AdmissionConfirm &);
00341     virtual void OnSendAdmissionReject(H225_AdmissionReject &);
00342     virtual BOOL OnReceiveAdmissionRequest(const H323RasPDU &, const H225_AdmissionRequest &);
00343     virtual BOOL OnReceiveAdmissionConfirm(const H323RasPDU &, const H225_AdmissionConfirm &);
00344     virtual BOOL OnReceiveAdmissionReject(const H323RasPDU &, const H225_AdmissionReject &);
00345     virtual BOOL OnReceiveAdmissionRequest(const H225_AdmissionRequest &);
00346     virtual BOOL OnReceiveAdmissionConfirm(const H225_AdmissionConfirm &);
00347     virtual BOOL OnReceiveAdmissionReject(const H225_AdmissionReject &);
00348 
00349     virtual void OnSendBandwidthRequest(H323RasPDU &, H225_BandwidthRequest &);
00350     virtual void OnSendBandwidthConfirm(H323RasPDU &, H225_BandwidthConfirm &);
00351     virtual void OnSendBandwidthReject(H323RasPDU &, H225_BandwidthReject &);
00352     virtual void OnSendBandwidthRequest(H225_BandwidthRequest &);
00353     virtual void OnSendBandwidthConfirm(H225_BandwidthConfirm &);
00354     virtual void OnSendBandwidthReject(H225_BandwidthReject &);
00355     virtual BOOL OnReceiveBandwidthRequest(const H323RasPDU &, const H225_BandwidthRequest &);
00356     virtual BOOL OnReceiveBandwidthConfirm(const H323RasPDU &, const H225_BandwidthConfirm &);
00357     virtual BOOL OnReceiveBandwidthReject(const H323RasPDU &, const H225_BandwidthReject &);
00358     virtual BOOL OnReceiveBandwidthRequest(const H225_BandwidthRequest &);
00359     virtual BOOL OnReceiveBandwidthConfirm(const H225_BandwidthConfirm &);
00360     virtual BOOL OnReceiveBandwidthReject(const H225_BandwidthReject &);
00361 
00362     virtual void OnSendDisengageRequest(H323RasPDU &, H225_DisengageRequest &);
00363     virtual void OnSendDisengageConfirm(H323RasPDU &, H225_DisengageConfirm &);
00364     virtual void OnSendDisengageReject(H323RasPDU &, H225_DisengageReject &);
00365     virtual void OnSendDisengageRequest(H225_DisengageRequest &);
00366     virtual void OnSendDisengageConfirm(H225_DisengageConfirm &);
00367     virtual void OnSendDisengageReject(H225_DisengageReject &);
00368     virtual BOOL OnReceiveDisengageRequest(const H323RasPDU &, const H225_DisengageRequest &);
00369     virtual BOOL OnReceiveDisengageConfirm(const H323RasPDU &, const H225_DisengageConfirm &);
00370     virtual BOOL OnReceiveDisengageReject(const H323RasPDU &, const H225_DisengageReject &);
00371     virtual BOOL OnReceiveDisengageRequest(const H225_DisengageRequest &);
00372     virtual BOOL OnReceiveDisengageConfirm(const H225_DisengageConfirm &);
00373     virtual BOOL OnReceiveDisengageReject(const H225_DisengageReject &);
00374 
00375     virtual void OnSendLocationRequest(H323RasPDU &, H225_LocationRequest &);
00376     virtual void OnSendLocationConfirm(H323RasPDU &, H225_LocationConfirm &);
00377     virtual void OnSendLocationReject(H323RasPDU &, H225_LocationReject &);
00378     virtual void OnSendLocationRequest(H225_LocationRequest &);
00379     virtual void OnSendLocationConfirm(H225_LocationConfirm &);
00380     virtual void OnSendLocationReject(H225_LocationReject &);
00381     virtual BOOL OnReceiveLocationRequest(const H323RasPDU &, const H225_LocationRequest &);
00382     virtual BOOL OnReceiveLocationConfirm(const H323RasPDU &, const H225_LocationConfirm &);
00383     virtual BOOL OnReceiveLocationReject(const H323RasPDU &, const H225_LocationReject &);
00384     virtual BOOL OnReceiveLocationRequest(const H225_LocationRequest &);
00385     virtual BOOL OnReceiveLocationConfirm(const H225_LocationConfirm &);
00386     virtual BOOL OnReceiveLocationReject(const H225_LocationReject &);
00387 
00388     virtual void OnSendInfoRequest(H323RasPDU &, H225_InfoRequest &);
00389     virtual void OnSendInfoRequestAck(H323RasPDU &, H225_InfoRequestAck &);
00390     virtual void OnSendInfoRequestNak(H323RasPDU &, H225_InfoRequestNak &);
00391     virtual void OnSendInfoRequestResponse(H323RasPDU &, H225_InfoRequestResponse &);
00392     virtual void OnSendInfoRequest(H225_InfoRequest &);
00393     virtual void OnSendInfoRequestAck(H225_InfoRequestAck &);
00394     virtual void OnSendInfoRequestNak(H225_InfoRequestNak &);
00395     virtual void OnSendInfoRequestResponse(H225_InfoRequestResponse &);
00396     virtual BOOL OnReceiveInfoRequest(const H323RasPDU &, const H225_InfoRequest &);
00397     virtual BOOL OnReceiveInfoRequestAck(const H323RasPDU &, const H225_InfoRequestAck &);
00398     virtual BOOL OnReceiveInfoRequestNak(const H323RasPDU &, const H225_InfoRequestNak &);
00399     virtual BOOL OnReceiveInfoRequestResponse(const H323RasPDU &, const H225_InfoRequestResponse &);
00400     virtual BOOL OnReceiveInfoRequest(const H225_InfoRequest &);
00401     virtual BOOL OnReceiveInfoRequestAck(const H225_InfoRequestAck &);
00402     virtual BOOL OnReceiveInfoRequestNak(const H225_InfoRequestNak &);
00403     virtual BOOL OnReceiveInfoRequestResponse(const H225_InfoRequestResponse &);
00404 
00405     virtual void OnSendResourcesAvailableIndicate(H323RasPDU &, H225_ResourcesAvailableIndicate &);
00406     virtual void OnSendResourcesAvailableConfirm(H323RasPDU &, H225_ResourcesAvailableConfirm &);
00407     virtual void OnSendResourcesAvailableIndicate(H225_ResourcesAvailableIndicate &);
00408     virtual void OnSendResourcesAvailableConfirm(H225_ResourcesAvailableConfirm &);
00409     virtual BOOL OnReceiveResourcesAvailableIndicate(const H323RasPDU &, const H225_ResourcesAvailableIndicate &);
00410     virtual BOOL OnReceiveResourcesAvailableConfirm(const H323RasPDU &, const H225_ResourcesAvailableConfirm &);
00411     virtual BOOL OnReceiveResourcesAvailableIndicate(const H225_ResourcesAvailableIndicate &);
00412     virtual BOOL OnReceiveResourcesAvailableConfirm(const H225_ResourcesAvailableConfirm &);
00413 
00414     virtual void OnSendServiceControlIndication(H323RasPDU &, H225_ServiceControlIndication &);
00415     virtual void OnSendServiceControlResponse(H323RasPDU &, H225_ServiceControlResponse &);
00416     virtual void OnSendServiceControlIndication(H225_ServiceControlIndication &);
00417     virtual void OnSendServiceControlResponse(H225_ServiceControlResponse &);
00418     virtual BOOL OnReceiveServiceControlIndication(const H323RasPDU &, const H225_ServiceControlIndication &);
00419     virtual BOOL OnReceiveServiceControlResponse(const H323RasPDU &, const H225_ServiceControlResponse &);
00420     virtual BOOL OnReceiveServiceControlIndication(const H225_ServiceControlIndication &);
00421     virtual BOOL OnReceiveServiceControlResponse(const H225_ServiceControlResponse &);
00422 
00423     virtual void OnSendNonStandardMessage(H323RasPDU &, H225_NonStandardMessage &);
00424     virtual void OnSendNonStandardMessage(H225_NonStandardMessage &);
00425     virtual BOOL OnReceiveNonStandardMessage(const H323RasPDU &, const H225_NonStandardMessage &);
00426     virtual BOOL OnReceiveNonStandardMessage(const H225_NonStandardMessage &);
00427 
00428     virtual void OnSendUnknownMessageResponse(H323RasPDU &, H225_UnknownMessageResponse &);
00429     virtual void OnSendUnknownMessageResponse(H225_UnknownMessageResponse &);
00430     virtual BOOL OnReceiveUnknownMessageResponse(const H323RasPDU &, const H225_UnknownMessageResponse &);
00431     virtual BOOL OnReceiveUnknownMessageResponse(const H225_UnknownMessageResponse &);
00432 
00433     virtual void OnSendRequestInProgress(H323RasPDU &, H225_RequestInProgress &);
00434     virtual void OnSendRequestInProgress(H225_RequestInProgress &);
00435     virtual BOOL OnReceiveRequestInProgress(const H323RasPDU &, const H225_RequestInProgress &);
00436     virtual BOOL OnReceiveRequestInProgress(const H225_RequestInProgress &);
00437 
00438 
00441     virtual BOOL OnReceiveUnknown(
00442       const H323RasPDU & pdu  
00443     );
00445 
00452     const PString & GetIdentifier() const { return gatekeeperIdentifier; }
00453 
00458     void SetIdentifier(const PString & id) { gatekeeperIdentifier = id; }
00460 
00461   protected:
00462     // Option variables
00463     PString gatekeeperIdentifier;
00464 };
00465 
00466 
00467 #endif // __OPAL_H225RAS_H
00468 
00469 

Generated on Mon Sep 25 16:19:43 2006 for OPAL by  doxygen 1.4.7