D:/Storage/CVS_Head/h323plus/include/h225ras.h

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

Generated on Thu Oct 25 13:42:09 2007 for h323plus by  doxygen 1.5.2