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  * $Revision: 21004 $
00030  * $Author: rjongbloed $
00031  * $Date: 2008-09-16 07:08:56 +0000 (Tue, 16 Sep 2008) $
00032  */
00033 
00034 #ifndef __OPAL_H225RAS_H
00035 #define __OPAL_H225RAS_H
00036 
00037 #ifdef P_USE_PRAGMA
00038 #pragma interface
00039 #endif
00040 
00041 #include <opal/buildopts.h>
00042 
00043 #include <h323/transaddr.h>
00044 #include <h323/h235auth.h>
00045 #include <h323/h323trans.h>
00046 #include <h323/svcctrl.h>
00047 
00048 
00049 class PASN_Sequence;
00050 class PASN_Choice;
00051 
00052 class H225_GatekeeperRequest;
00053 class H225_GatekeeperConfirm;
00054 class H225_GatekeeperReject;
00055 class H225_RegistrationRequest;
00056 class H225_RegistrationConfirm;
00057 class H225_RegistrationReject;
00058 class H225_UnregistrationRequest;
00059 class H225_UnregistrationConfirm;
00060 class H225_UnregistrationReject;
00061 class H225_AdmissionRequest;
00062 class H225_AdmissionConfirm;
00063 class H225_AdmissionReject;
00064 class H225_BandwidthRequest;
00065 class H225_BandwidthConfirm;
00066 class H225_BandwidthReject;
00067 class H225_DisengageRequest;
00068 class H225_DisengageConfirm;
00069 class H225_DisengageReject;
00070 class H225_LocationRequest;
00071 class H225_LocationConfirm;
00072 class H225_LocationReject;
00073 class H225_InfoRequest;
00074 class H225_InfoRequestResponse;
00075 class H225_NonStandardMessage;
00076 class H225_UnknownMessageResponse;
00077 class H225_RequestInProgress;
00078 class H225_ResourcesAvailableIndicate;
00079 class H225_ResourcesAvailableConfirm;
00080 class H225_InfoRequestAck;
00081 class H225_InfoRequestNak;
00082 class H225_ArrayOf_CryptoH323Token;
00083 class H225_FeatureSet;
00084 
00085 class H323EndPoint;
00086 class H323Connection;
00087 class H323RasPDU;
00088 
00089 
00091 
00094 class H225_RAS : public H323Transactor
00095 {
00096   PCLASSINFO(H225_RAS, H323Transactor);
00097   public:
00100     enum {
00101       DefaultRasMulticastPort = 1718,
00102       DefaultRasUdpPort = 1719
00103     };
00104 
00107     H225_RAS(
00108       H323EndPoint & endpoint,  
00109       H323Transport * transport 
00110     );
00111 
00114     ~H225_RAS();
00116 
00121     void PrintOn(
00122       ostream & strm    
00123     ) const;
00125 
00130     virtual H323TransactionPDU * CreateTransactionPDU() const;
00131 
00134     virtual PBoolean HandleTransaction(
00135       const PASN_Object & rawPDU
00136     );
00137 
00140     virtual void OnSendingPDU(
00141       PASN_Object & rawPDU
00142     );
00144 
00147     virtual void OnSendGatekeeperRequest(H323RasPDU &, H225_GatekeeperRequest &);
00148     virtual void OnSendGatekeeperConfirm(H323RasPDU &, H225_GatekeeperConfirm &);
00149     virtual void OnSendGatekeeperReject(H323RasPDU &, H225_GatekeeperReject &);
00150     virtual void OnSendGatekeeperRequest(H225_GatekeeperRequest &);
00151     virtual void OnSendGatekeeperConfirm(H225_GatekeeperConfirm &);
00152     virtual void OnSendGatekeeperReject(H225_GatekeeperReject &);
00153     virtual PBoolean OnReceiveGatekeeperRequest(const H323RasPDU &, const H225_GatekeeperRequest &);
00154     virtual PBoolean OnReceiveGatekeeperConfirm(const H323RasPDU &, const H225_GatekeeperConfirm &);
00155     virtual PBoolean OnReceiveGatekeeperReject(const H323RasPDU &, const H225_GatekeeperReject &);
00156     virtual PBoolean OnReceiveGatekeeperRequest(const H225_GatekeeperRequest &);
00157     virtual PBoolean OnReceiveGatekeeperConfirm(const H225_GatekeeperConfirm &);
00158     virtual PBoolean OnReceiveGatekeeperReject(const H225_GatekeeperReject &);
00159 
00160     virtual void OnSendRegistrationRequest(H323RasPDU &, H225_RegistrationRequest &);
00161     virtual void OnSendRegistrationConfirm(H323RasPDU &, H225_RegistrationConfirm &);
00162     virtual void OnSendRegistrationReject(H323RasPDU &, H225_RegistrationReject &);
00163     virtual void OnSendRegistrationRequest(H225_RegistrationRequest &);
00164     virtual void OnSendRegistrationConfirm(H225_RegistrationConfirm &);
00165     virtual void OnSendRegistrationReject(H225_RegistrationReject &);
00166     virtual PBoolean OnReceiveRegistrationRequest(const H323RasPDU &, const H225_RegistrationRequest &);
00167     virtual PBoolean OnReceiveRegistrationConfirm(const H323RasPDU &, const H225_RegistrationConfirm &);
00168     virtual PBoolean OnReceiveRegistrationReject(const H323RasPDU &, const H225_RegistrationReject &);
00169     virtual PBoolean OnReceiveRegistrationRequest(const H225_RegistrationRequest &);
00170     virtual PBoolean OnReceiveRegistrationConfirm(const H225_RegistrationConfirm &);
00171     virtual PBoolean OnReceiveRegistrationReject(const H225_RegistrationReject &);
00172 
00173     virtual void OnSendUnregistrationRequest(H323RasPDU &, H225_UnregistrationRequest &);
00174     virtual void OnSendUnregistrationConfirm(H323RasPDU &, H225_UnregistrationConfirm &);
00175     virtual void OnSendUnregistrationReject(H323RasPDU &, H225_UnregistrationReject &);
00176     virtual void OnSendUnregistrationRequest(H225_UnregistrationRequest &);
00177     virtual void OnSendUnregistrationConfirm(H225_UnregistrationConfirm &);
00178     virtual void OnSendUnregistrationReject(H225_UnregistrationReject &);
00179     virtual PBoolean OnReceiveUnregistrationRequest(const H323RasPDU &, const H225_UnregistrationRequest &);
00180     virtual PBoolean OnReceiveUnregistrationConfirm(const H323RasPDU &, const H225_UnregistrationConfirm &);
00181     virtual PBoolean OnReceiveUnregistrationReject(const H323RasPDU &, const H225_UnregistrationReject &);
00182     virtual PBoolean OnReceiveUnregistrationRequest(const H225_UnregistrationRequest &);
00183     virtual PBoolean OnReceiveUnregistrationConfirm(const H225_UnregistrationConfirm &);
00184     virtual PBoolean OnReceiveUnregistrationReject(const H225_UnregistrationReject &);
00185 
00186     virtual void OnSendAdmissionRequest(H323RasPDU &, H225_AdmissionRequest &);
00187     virtual void OnSendAdmissionConfirm(H323RasPDU &, H225_AdmissionConfirm &);
00188     virtual void OnSendAdmissionReject(H323RasPDU &, H225_AdmissionReject &);
00189     virtual void OnSendAdmissionRequest(H225_AdmissionRequest &);
00190     virtual void OnSendAdmissionConfirm(H225_AdmissionConfirm &);
00191     virtual void OnSendAdmissionReject(H225_AdmissionReject &);
00192     virtual PBoolean OnReceiveAdmissionRequest(const H323RasPDU &, const H225_AdmissionRequest &);
00193     virtual PBoolean OnReceiveAdmissionConfirm(const H323RasPDU &, const H225_AdmissionConfirm &);
00194     virtual PBoolean OnReceiveAdmissionReject(const H323RasPDU &, const H225_AdmissionReject &);
00195     virtual PBoolean OnReceiveAdmissionRequest(const H225_AdmissionRequest &);
00196     virtual PBoolean OnReceiveAdmissionConfirm(const H225_AdmissionConfirm &);
00197     virtual PBoolean OnReceiveAdmissionReject(const H225_AdmissionReject &);
00198 
00199     virtual void OnSendBandwidthRequest(H323RasPDU &, H225_BandwidthRequest &);
00200     virtual void OnSendBandwidthConfirm(H323RasPDU &, H225_BandwidthConfirm &);
00201     virtual void OnSendBandwidthReject(H323RasPDU &, H225_BandwidthReject &);
00202     virtual void OnSendBandwidthRequest(H225_BandwidthRequest &);
00203     virtual void OnSendBandwidthConfirm(H225_BandwidthConfirm &);
00204     virtual void OnSendBandwidthReject(H225_BandwidthReject &);
00205     virtual PBoolean OnReceiveBandwidthRequest(const H323RasPDU &, const H225_BandwidthRequest &);
00206     virtual PBoolean OnReceiveBandwidthConfirm(const H323RasPDU &, const H225_BandwidthConfirm &);
00207     virtual PBoolean OnReceiveBandwidthReject(const H323RasPDU &, const H225_BandwidthReject &);
00208     virtual PBoolean OnReceiveBandwidthRequest(const H225_BandwidthRequest &);
00209     virtual PBoolean OnReceiveBandwidthConfirm(const H225_BandwidthConfirm &);
00210     virtual PBoolean OnReceiveBandwidthReject(const H225_BandwidthReject &);
00211 
00212     virtual void OnSendDisengageRequest(H323RasPDU &, H225_DisengageRequest &);
00213     virtual void OnSendDisengageConfirm(H323RasPDU &, H225_DisengageConfirm &);
00214     virtual void OnSendDisengageReject(H323RasPDU &, H225_DisengageReject &);
00215     virtual void OnSendDisengageRequest(H225_DisengageRequest &);
00216     virtual void OnSendDisengageConfirm(H225_DisengageConfirm &);
00217     virtual void OnSendDisengageReject(H225_DisengageReject &);
00218     virtual PBoolean OnReceiveDisengageRequest(const H323RasPDU &, const H225_DisengageRequest &);
00219     virtual PBoolean OnReceiveDisengageConfirm(const H323RasPDU &, const H225_DisengageConfirm &);
00220     virtual PBoolean OnReceiveDisengageReject(const H323RasPDU &, const H225_DisengageReject &);
00221     virtual PBoolean OnReceiveDisengageRequest(const H225_DisengageRequest &);
00222     virtual PBoolean OnReceiveDisengageConfirm(const H225_DisengageConfirm &);
00223     virtual PBoolean OnReceiveDisengageReject(const H225_DisengageReject &);
00224 
00225     virtual void OnSendLocationRequest(H323RasPDU &, H225_LocationRequest &);
00226     virtual void OnSendLocationConfirm(H323RasPDU &, H225_LocationConfirm &);
00227     virtual void OnSendLocationReject(H323RasPDU &, H225_LocationReject &);
00228     virtual void OnSendLocationRequest(H225_LocationRequest &);
00229     virtual void OnSendLocationConfirm(H225_LocationConfirm &);
00230     virtual void OnSendLocationReject(H225_LocationReject &);
00231     virtual PBoolean OnReceiveLocationRequest(const H323RasPDU &, const H225_LocationRequest &);
00232     virtual PBoolean OnReceiveLocationConfirm(const H323RasPDU &, const H225_LocationConfirm &);
00233     virtual PBoolean OnReceiveLocationReject(const H323RasPDU &, const H225_LocationReject &);
00234     virtual PBoolean OnReceiveLocationRequest(const H225_LocationRequest &);
00235     virtual PBoolean OnReceiveLocationConfirm(const H225_LocationConfirm &);
00236     virtual PBoolean OnReceiveLocationReject(const H225_LocationReject &);
00237 
00238     virtual void OnSendInfoRequest(H323RasPDU &, H225_InfoRequest &);
00239     virtual void OnSendInfoRequestAck(H323RasPDU &, H225_InfoRequestAck &);
00240     virtual void OnSendInfoRequestNak(H323RasPDU &, H225_InfoRequestNak &);
00241     virtual void OnSendInfoRequestResponse(H323RasPDU &, H225_InfoRequestResponse &);
00242     virtual void OnSendInfoRequest(H225_InfoRequest &);
00243     virtual void OnSendInfoRequestAck(H225_InfoRequestAck &);
00244     virtual void OnSendInfoRequestNak(H225_InfoRequestNak &);
00245     virtual void OnSendInfoRequestResponse(H225_InfoRequestResponse &);
00246     virtual PBoolean OnReceiveInfoRequest(const H323RasPDU &, const H225_InfoRequest &);
00247     virtual PBoolean OnReceiveInfoRequestAck(const H323RasPDU &, const H225_InfoRequestAck &);
00248     virtual PBoolean OnReceiveInfoRequestNak(const H323RasPDU &, const H225_InfoRequestNak &);
00249     virtual PBoolean OnReceiveInfoRequestResponse(const H323RasPDU &, const H225_InfoRequestResponse &);
00250     virtual PBoolean OnReceiveInfoRequest(const H225_InfoRequest &);
00251     virtual PBoolean OnReceiveInfoRequestAck(const H225_InfoRequestAck &);
00252     virtual PBoolean OnReceiveInfoRequestNak(const H225_InfoRequestNak &);
00253     virtual PBoolean OnReceiveInfoRequestResponse(const H225_InfoRequestResponse &);
00254 
00255     virtual void OnSendResourcesAvailableIndicate(H323RasPDU &, H225_ResourcesAvailableIndicate &);
00256     virtual void OnSendResourcesAvailableConfirm(H323RasPDU &, H225_ResourcesAvailableConfirm &);
00257     virtual void OnSendResourcesAvailableIndicate(H225_ResourcesAvailableIndicate &);
00258     virtual void OnSendResourcesAvailableConfirm(H225_ResourcesAvailableConfirm &);
00259     virtual PBoolean OnReceiveResourcesAvailableIndicate(const H323RasPDU &, const H225_ResourcesAvailableIndicate &);
00260     virtual PBoolean OnReceiveResourcesAvailableConfirm(const H323RasPDU &, const H225_ResourcesAvailableConfirm &);
00261     virtual PBoolean OnReceiveResourcesAvailableIndicate(const H225_ResourcesAvailableIndicate &);
00262     virtual PBoolean OnReceiveResourcesAvailableConfirm(const H225_ResourcesAvailableConfirm &);
00263 
00264     virtual void OnSendServiceControlIndication(H323RasPDU &, H225_ServiceControlIndication &);
00265     virtual void OnSendServiceControlResponse(H323RasPDU &, H225_ServiceControlResponse &);
00266     virtual void OnSendServiceControlIndication(H225_ServiceControlIndication &);
00267     virtual void OnSendServiceControlResponse(H225_ServiceControlResponse &);
00268     virtual PBoolean OnReceiveServiceControlIndication(const H323RasPDU &, const H225_ServiceControlIndication &);
00269     virtual PBoolean OnReceiveServiceControlResponse(const H323RasPDU &, const H225_ServiceControlResponse &);
00270     virtual PBoolean OnReceiveServiceControlIndication(const H225_ServiceControlIndication &);
00271     virtual PBoolean OnReceiveServiceControlResponse(const H225_ServiceControlResponse &);
00272 
00273     virtual void OnSendNonStandardMessage(H323RasPDU &, H225_NonStandardMessage &);
00274     virtual void OnSendNonStandardMessage(H225_NonStandardMessage &);
00275     virtual PBoolean OnReceiveNonStandardMessage(const H323RasPDU &, const H225_NonStandardMessage &);
00276     virtual PBoolean OnReceiveNonStandardMessage(const H225_NonStandardMessage &);
00277 
00278     virtual void OnSendUnknownMessageResponse(H323RasPDU &, H225_UnknownMessageResponse &);
00279     virtual void OnSendUnknownMessageResponse(H225_UnknownMessageResponse &);
00280     virtual PBoolean OnReceiveUnknownMessageResponse(const H323RasPDU &, const H225_UnknownMessageResponse &);
00281     virtual PBoolean OnReceiveUnknownMessageResponse(const H225_UnknownMessageResponse &);
00282 
00283     virtual void OnSendRequestInProgress(H323RasPDU &, H225_RequestInProgress &);
00284     virtual void OnSendRequestInProgress(H225_RequestInProgress &);
00285     virtual PBoolean OnReceiveRequestInProgress(const H323RasPDU &, const H225_RequestInProgress &);
00286     virtual PBoolean OnReceiveRequestInProgress(const H225_RequestInProgress &);
00287         
00288         virtual PBoolean OnSendFeatureSet(unsigned, H225_FeatureSet &) const { return PFalse; }
00289         virtual void OnReceiveFeatureSet(unsigned, const H225_FeatureSet &) const {}
00290 
00291 
00294     virtual PBoolean OnReceiveUnknown(
00295       const H323RasPDU & pdu  
00296     );
00298 
00305     const PString & GetIdentifier() const { return gatekeeperIdentifier; }
00306 
00311     void SetIdentifier(const PString & id) { gatekeeperIdentifier = id; }
00313 
00314   protected:
00315     // Option variables
00316     PString gatekeeperIdentifier;
00317 };
00318 
00319 
00320 #endif // __OPAL_H225RAS_H
00321 
00322 

Generated on Mon Sep 22 12:24:29 2008 for OPAL by  doxygen 1.5.1