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
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
00315 PString gatekeeperIdentifier;
00316 };
00317
00318
00319 #endif // __OPAL_H225RAS_H
00320
00321