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

Generated on Mon Sep 15 11:48:50 2008 for OPAL by  doxygen 1.5.1