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

Generated on Fri Mar 7 06:33:17 2008 for OPAL by  doxygen 1.5.1