OPAL  Version 3.14.3
h225ras.h
Go to the documentation of this file.
1 /*
2  * h225ras.h
3  *
4  * H.225 RAS protocol handler
5  *
6  * Open H323 Library
7  *
8  * Copyright (c) 2001 Equivalence Pty. Ltd.
9  *
10  * The contents of this file are subject to the Mozilla Public License
11  * Version 1.0 (the "License"); you may not use this file except in
12  * compliance with the License. You may obtain a copy of the License at
13  * http://www.mozilla.org/MPL/
14  *
15  * Software distributed under the License is distributed on an "AS IS"
16  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
17  * the License for the specific language governing rights and limitations
18  * under the License.
19  *
20  * The Original Code is Open H323 Library.
21  *
22  * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
23  *
24  * Portions of this code were written with the assisance of funding from
25  * iFace, Inc. http://www.iface.com
26  *
27  * Contributor(s): ______________________________________.
28  *
29  * $Revision: 30816 $
30  * $Author: rjongbloed $
31  * $Date: 2013-11-01 18:11:10 +1100 (Fri, 01 Nov 2013) $
32  */
33 
34 #ifndef OPAL_H323_H225RAS_H
35 #define OPAL_H323_H225RAS_H
36 
37 #ifdef P_USE_PRAGMA
38 #pragma interface
39 #endif
40 
41 #include <opal_config.h>
42 
43 #if OPAL_H323
44 
45 #include <h323/transaddr.h>
46 #include <h323/h235auth.h>
47 #include <h323/h323trans.h>
48 #include <h323/svcctrl.h>
49 #include <h460/h460.h>
50 
51 
52 class PASN_Sequence;
53 class PASN_Choice;
54 
55 class H225_GatekeeperRequest;
56 class H225_GatekeeperConfirm;
57 class H225_GatekeeperReject;
58 class H225_RegistrationRequest;
59 class H225_RegistrationConfirm;
60 class H225_RegistrationReject;
61 class H225_UnregistrationRequest;
62 class H225_UnregistrationConfirm;
63 class H225_UnregistrationReject;
64 class H225_AdmissionRequest;
65 class H225_AdmissionConfirm;
66 class H225_AdmissionReject;
67 class H225_BandwidthRequest;
68 class H225_BandwidthConfirm;
69 class H225_BandwidthReject;
70 class H225_DisengageRequest;
71 class H225_DisengageConfirm;
72 class H225_DisengageReject;
73 class H225_LocationRequest;
74 class H225_LocationConfirm;
75 class H225_LocationReject;
76 class H225_InfoRequest;
77 class H225_InfoRequestResponse;
78 class H225_NonStandardMessage;
79 class H225_UnknownMessageResponse;
80 class H225_RequestInProgress;
81 class H225_ResourcesAvailableIndicate;
82 class H225_ResourcesAvailableConfirm;
83 class H225_InfoRequestAck;
84 class H225_InfoRequestNak;
85 class H225_ArrayOf_CryptoH323Token;
86 class H225_FeatureSet;
87 
88 class H323EndPoint;
89 class H323Connection;
90 class H323RasPDU;
91 
92 
94 
97 class H225_RAS : public H323Transactor
98 {
99  PCLASSINFO(H225_RAS, H323Transactor);
100  public:
103  enum {
106  };
107 
110  H225_RAS(
113  );
114 
117  ~H225_RAS();
119 
124  void PrintOn(
125  ostream & strm
126  ) const;
128 
133  virtual H323TransactionPDU * CreateTransactionPDU() const;
134 
137  virtual PBoolean HandleTransaction(
138  const PASN_Object & rawPDU
139  );
140 
143  virtual void OnSendingPDU(
144  PASN_Object & rawPDU
145  );
147 
150  virtual void OnSendGatekeeperRequest(H323RasPDU &, H225_GatekeeperRequest &);
151  virtual void OnSendGatekeeperConfirm(H323RasPDU &, H225_GatekeeperConfirm &);
152  virtual void OnSendGatekeeperReject(H323RasPDU &, H225_GatekeeperReject &);
153  virtual void OnSendGatekeeperRequest(H225_GatekeeperRequest &);
154  virtual void OnSendGatekeeperConfirm(H225_GatekeeperConfirm &);
155  virtual void OnSendGatekeeperReject(H225_GatekeeperReject &);
156  virtual PBoolean OnReceiveGatekeeperRequest(const H323RasPDU &, const H225_GatekeeperRequest &);
157  virtual PBoolean OnReceiveGatekeeperConfirm(const H323RasPDU &, const H225_GatekeeperConfirm &);
158  virtual PBoolean OnReceiveGatekeeperReject(const H323RasPDU &, const H225_GatekeeperReject &);
159  virtual PBoolean OnReceiveGatekeeperRequest(const H225_GatekeeperRequest &);
160  virtual PBoolean OnReceiveGatekeeperConfirm(const H225_GatekeeperConfirm &);
161  virtual PBoolean OnReceiveGatekeeperReject(const H225_GatekeeperReject &);
162 
163  virtual void OnSendRegistrationRequest(H323RasPDU &, H225_RegistrationRequest &);
164  virtual void OnSendRegistrationConfirm(H323RasPDU &, H225_RegistrationConfirm &);
165  virtual void OnSendRegistrationReject(H323RasPDU &, H225_RegistrationReject &);
166  virtual void OnSendRegistrationRequest(H225_RegistrationRequest &);
167  virtual void OnSendRegistrationConfirm(H225_RegistrationConfirm &);
168  virtual void OnSendRegistrationReject(H225_RegistrationReject &);
169  virtual PBoolean OnReceiveRegistrationRequest(const H323RasPDU &, const H225_RegistrationRequest &);
170  virtual PBoolean OnReceiveRegistrationConfirm(const H323RasPDU &, const H225_RegistrationConfirm &);
171  virtual PBoolean OnReceiveRegistrationReject(const H323RasPDU &, const H225_RegistrationReject &);
172  virtual PBoolean OnReceiveRegistrationRequest(const H225_RegistrationRequest &);
173  virtual PBoolean OnReceiveRegistrationConfirm(const H225_RegistrationConfirm &);
174  virtual PBoolean OnReceiveRegistrationReject(const H225_RegistrationReject &);
175 
176  virtual void OnSendUnregistrationRequest(H323RasPDU &, H225_UnregistrationRequest &);
177  virtual void OnSendUnregistrationConfirm(H323RasPDU &, H225_UnregistrationConfirm &);
178  virtual void OnSendUnregistrationReject(H323RasPDU &, H225_UnregistrationReject &);
179  virtual void OnSendUnregistrationRequest(H225_UnregistrationRequest &);
180  virtual void OnSendUnregistrationConfirm(H225_UnregistrationConfirm &);
181  virtual void OnSendUnregistrationReject(H225_UnregistrationReject &);
182  virtual PBoolean OnReceiveUnregistrationRequest(const H323RasPDU &, const H225_UnregistrationRequest &);
183  virtual PBoolean OnReceiveUnregistrationConfirm(const H323RasPDU &, const H225_UnregistrationConfirm &);
184  virtual PBoolean OnReceiveUnregistrationReject(const H323RasPDU &, const H225_UnregistrationReject &);
185  virtual PBoolean OnReceiveUnregistrationRequest(const H225_UnregistrationRequest &);
186  virtual PBoolean OnReceiveUnregistrationConfirm(const H225_UnregistrationConfirm &);
187  virtual PBoolean OnReceiveUnregistrationReject(const H225_UnregistrationReject &);
188 
189  virtual void OnSendAdmissionRequest(H323RasPDU &, H225_AdmissionRequest &);
190  virtual void OnSendAdmissionConfirm(H323RasPDU &, H225_AdmissionConfirm &);
191  virtual void OnSendAdmissionReject(H323RasPDU &, H225_AdmissionReject &);
192  virtual void OnSendAdmissionRequest(H225_AdmissionRequest &);
193  virtual void OnSendAdmissionConfirm(H225_AdmissionConfirm &);
194  virtual void OnSendAdmissionReject(H225_AdmissionReject &);
195  virtual PBoolean OnReceiveAdmissionRequest(const H323RasPDU &, const H225_AdmissionRequest &);
196  virtual PBoolean OnReceiveAdmissionConfirm(const H323RasPDU &, const H225_AdmissionConfirm &);
197  virtual PBoolean OnReceiveAdmissionReject(const H323RasPDU &, const H225_AdmissionReject &);
198  virtual PBoolean OnReceiveAdmissionRequest(const H225_AdmissionRequest &);
199  virtual PBoolean OnReceiveAdmissionConfirm(const H225_AdmissionConfirm &);
200  virtual PBoolean OnReceiveAdmissionReject(const H225_AdmissionReject &);
201 
202  virtual void OnSendBandwidthRequest(H323RasPDU &, H225_BandwidthRequest &);
203  virtual void OnSendBandwidthConfirm(H323RasPDU &, H225_BandwidthConfirm &);
204  virtual void OnSendBandwidthReject(H323RasPDU &, H225_BandwidthReject &);
205  virtual void OnSendBandwidthRequest(H225_BandwidthRequest &);
206  virtual void OnSendBandwidthConfirm(H225_BandwidthConfirm &);
207  virtual void OnSendBandwidthReject(H225_BandwidthReject &);
208  virtual PBoolean OnReceiveBandwidthRequest(const H323RasPDU &, const H225_BandwidthRequest &);
209  virtual PBoolean OnReceiveBandwidthConfirm(const H323RasPDU &, const H225_BandwidthConfirm &);
210  virtual PBoolean OnReceiveBandwidthReject(const H323RasPDU &, const H225_BandwidthReject &);
211  virtual PBoolean OnReceiveBandwidthRequest(const H225_BandwidthRequest &);
212  virtual PBoolean OnReceiveBandwidthConfirm(const H225_BandwidthConfirm &);
213  virtual PBoolean OnReceiveBandwidthReject(const H225_BandwidthReject &);
214 
215  virtual void OnSendDisengageRequest(H323RasPDU &, H225_DisengageRequest &);
216  virtual void OnSendDisengageConfirm(H323RasPDU &, H225_DisengageConfirm &);
217  virtual void OnSendDisengageReject(H323RasPDU &, H225_DisengageReject &);
218  virtual void OnSendDisengageRequest(H225_DisengageRequest &);
219  virtual void OnSendDisengageConfirm(H225_DisengageConfirm &);
220  virtual void OnSendDisengageReject(H225_DisengageReject &);
221  virtual PBoolean OnReceiveDisengageRequest(const H323RasPDU &, const H225_DisengageRequest &);
222  virtual PBoolean OnReceiveDisengageConfirm(const H323RasPDU &, const H225_DisengageConfirm &);
223  virtual PBoolean OnReceiveDisengageReject(const H323RasPDU &, const H225_DisengageReject &);
224  virtual PBoolean OnReceiveDisengageRequest(const H225_DisengageRequest &);
225  virtual PBoolean OnReceiveDisengageConfirm(const H225_DisengageConfirm &);
226  virtual PBoolean OnReceiveDisengageReject(const H225_DisengageReject &);
227 
228  virtual void OnSendLocationRequest(H323RasPDU &, H225_LocationRequest &);
229  virtual void OnSendLocationConfirm(H323RasPDU &, H225_LocationConfirm &);
230  virtual void OnSendLocationReject(H323RasPDU &, H225_LocationReject &);
231  virtual void OnSendLocationRequest(H225_LocationRequest &);
232  virtual void OnSendLocationConfirm(H225_LocationConfirm &);
233  virtual void OnSendLocationReject(H225_LocationReject &);
234  virtual PBoolean OnReceiveLocationRequest(const H323RasPDU &, const H225_LocationRequest &);
235  virtual PBoolean OnReceiveLocationConfirm(const H323RasPDU &, const H225_LocationConfirm &);
236  virtual PBoolean OnReceiveLocationReject(const H323RasPDU &, const H225_LocationReject &);
237  virtual PBoolean OnReceiveLocationRequest(const H225_LocationRequest &);
238  virtual PBoolean OnReceiveLocationConfirm(const H225_LocationConfirm &);
239  virtual PBoolean OnReceiveLocationReject(const H225_LocationReject &);
240 
241  virtual void OnSendInfoRequest(H323RasPDU &, H225_InfoRequest &);
242  virtual void OnSendInfoRequestAck(H323RasPDU &, H225_InfoRequestAck &);
243  virtual void OnSendInfoRequestNak(H323RasPDU &, H225_InfoRequestNak &);
244  virtual void OnSendInfoRequestResponse(H323RasPDU &, H225_InfoRequestResponse &);
245  virtual void OnSendInfoRequest(H225_InfoRequest &);
246  virtual void OnSendInfoRequestAck(H225_InfoRequestAck &);
247  virtual void OnSendInfoRequestNak(H225_InfoRequestNak &);
248  virtual void OnSendInfoRequestResponse(H225_InfoRequestResponse &);
249  virtual PBoolean OnReceiveInfoRequest(const H323RasPDU &, const H225_InfoRequest &);
250  virtual PBoolean OnReceiveInfoRequestAck(const H323RasPDU &, const H225_InfoRequestAck &);
251  virtual PBoolean OnReceiveInfoRequestNak(const H323RasPDU &, const H225_InfoRequestNak &);
252  virtual PBoolean OnReceiveInfoRequestResponse(const H323RasPDU &, const H225_InfoRequestResponse &);
253  virtual PBoolean OnReceiveInfoRequest(const H225_InfoRequest &);
254  virtual PBoolean OnReceiveInfoRequestAck(const H225_InfoRequestAck &);
255  virtual PBoolean OnReceiveInfoRequestNak(const H225_InfoRequestNak &);
256  virtual PBoolean OnReceiveInfoRequestResponse(const H225_InfoRequestResponse &);
257 
258  virtual void OnSendResourcesAvailableIndicate(H323RasPDU &, H225_ResourcesAvailableIndicate &);
259  virtual void OnSendResourcesAvailableConfirm(H323RasPDU &, H225_ResourcesAvailableConfirm &);
260  virtual void OnSendResourcesAvailableIndicate(H225_ResourcesAvailableIndicate &);
261  virtual void OnSendResourcesAvailableConfirm(H225_ResourcesAvailableConfirm &);
262  virtual PBoolean OnReceiveResourcesAvailableIndicate(const H323RasPDU &, const H225_ResourcesAvailableIndicate &);
263  virtual PBoolean OnReceiveResourcesAvailableConfirm(const H323RasPDU &, const H225_ResourcesAvailableConfirm &);
264  virtual PBoolean OnReceiveResourcesAvailableIndicate(const H225_ResourcesAvailableIndicate &);
265  virtual PBoolean OnReceiveResourcesAvailableConfirm(const H225_ResourcesAvailableConfirm &);
266 
267  virtual void OnSendServiceControlIndication(H323RasPDU &, H225_ServiceControlIndication &);
268  virtual void OnSendServiceControlResponse(H323RasPDU &, H225_ServiceControlResponse &);
269  virtual void OnSendServiceControlIndication(H225_ServiceControlIndication &);
270  virtual void OnSendServiceControlResponse(H225_ServiceControlResponse &);
271  virtual PBoolean OnReceiveServiceControlIndication(const H323RasPDU &, const H225_ServiceControlIndication &);
272  virtual PBoolean OnReceiveServiceControlResponse(const H323RasPDU &, const H225_ServiceControlResponse &);
273  virtual PBoolean OnReceiveServiceControlIndication(const H225_ServiceControlIndication &);
274  virtual PBoolean OnReceiveServiceControlResponse(const H225_ServiceControlResponse &);
275 
276  virtual void OnSendNonStandardMessage(H323RasPDU &, H225_NonStandardMessage &);
277  virtual void OnSendNonStandardMessage(H225_NonStandardMessage &);
278  virtual PBoolean OnReceiveNonStandardMessage(const H323RasPDU &, const H225_NonStandardMessage &);
279  virtual PBoolean OnReceiveNonStandardMessage(const H225_NonStandardMessage &);
280 
281  virtual void OnSendUnknownMessageResponse(H323RasPDU &, H225_UnknownMessageResponse &);
282  virtual void OnSendUnknownMessageResponse(H225_UnknownMessageResponse &);
283  virtual PBoolean OnReceiveUnknownMessageResponse(const H323RasPDU &, const H225_UnknownMessageResponse &);
284  virtual PBoolean OnReceiveUnknownMessageResponse(const H225_UnknownMessageResponse &);
285 
286  virtual void OnSendRequestInProgress(H323RasPDU &, H225_RequestInProgress &);
287  virtual void OnSendRequestInProgress(H225_RequestInProgress &);
288  virtual PBoolean OnReceiveRequestInProgress(const H323RasPDU &, const H225_RequestInProgress &);
289  virtual PBoolean OnReceiveRequestInProgress(const H225_RequestInProgress &);
290 
291 #if OPAL_H460
292  virtual PBoolean OnSendFeatureSet(H460_MessageType, H225_FeatureSet &) const { return false; }
293  virtual void OnReceiveFeatureSet(H460_MessageType, const H225_FeatureSet &) const {}
294 #endif
295 
296  virtual void DisableFeatureSet() const {}
297 
298 
301  virtual PBoolean OnReceiveUnknown(
302  const H323RasPDU & pdu
303  );
305 
312  const PString & GetIdentifier() const { return gatekeeperIdentifier; }
313 
318  void SetIdentifier(const PString & id) { gatekeeperIdentifier = id; }
320 
321  protected:
322  // Option variables
324 };
325 
326 
327 #endif // OPAL_H323
328 
329 #endif // OPAL_H323_H225RAS_H
330 
331