00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
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
00316 PString gatekeeperIdentifier;
00317 };
00318
00319
00320 #endif // __OPAL_H225RAS_H
00321
00322