OPAL Version 3.10.4

- Main Page
- Related Pages
- Namespaces
- Data Structures
- Files

- File List
- Globals

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: 24178 $
30 * $Author: rjongbloed $
31 * $Date: 2010-04-05 19:10:56 -0500 (Mon, 05 Apr 2010) $
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/buildopts.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
50
51 class PASN_Sequence;
52 class PASN_Choice;
53
54 class H225_GatekeeperRequest;
55 class H225_GatekeeperConfirm;
56 class H225_GatekeeperReject;
57 class H225_RegistrationRequest;
58 class H225_RegistrationConfirm;
59 class H225_RegistrationReject;
60 class H225_UnregistrationRequest;
61 class H225_UnregistrationConfirm;
62 class H225_UnregistrationReject;
63 class H225_AdmissionRequest;
64 class H225_AdmissionConfirm;
65 class H225_AdmissionReject;
66 class H225_BandwidthRequest;
67 class H225_BandwidthConfirm;
68 class H225_BandwidthReject;
69 class H225_DisengageRequest;
70 class H225_DisengageConfirm;
71 class H225_DisengageReject;
72 class H225_LocationRequest;
73 class H225_LocationConfirm;
74 class H225_LocationReject;
75 class H225_InfoRequest;
76 class H225_InfoRequestResponse;
77 class H225_NonStandardMessage;
78 class H225_UnknownMessageResponse;
79 class H225_RequestInProgress;
80 class H225_ResourcesAvailableIndicate;
81 class H225_ResourcesAvailableConfirm;
82 class H225_InfoRequestAck;
83 class H225_InfoRequestNak;
84 class H225_ArrayOf_CryptoH323Token;
85 class H225_FeatureSet;
86
87 class H323EndPoint;
88 class H323Connection;
89 class H323RasPDU;
90
91
93
96 class H225_RAS : public H323Transactor
97 {
98 PCLASSINFO(H225_RAS, H323Transactor);
99 public:
102 enum {
103 DefaultRasMulticastPort = 1718,
104 DefaultRasUdpPort = 1719
105 };
106
109 H225_RAS(
110 H323EndPoint & endpoint,
111 H323Transport * transport
112 );
113
116 ~H225_RAS();
118
123 void PrintOn(
124 ostream & strm
125 ) const;
127
132 virtual H323TransactionPDU * CreateTransactionPDU() const;
133
136 virtual PBoolean HandleTransaction(
137 const PASN_Object & rawPDU
138 );
139
142 virtual void OnSendingPDU(
143 PASN_Object & rawPDU
144 );
146
149 virtual void OnSendGatekeeperRequest(H323RasPDU &, H225_GatekeeperRequest &);
150 virtual void OnSendGatekeeperConfirm(H323RasPDU &, H225_GatekeeperConfirm &);
151 virtual void OnSendGatekeeperReject(H323RasPDU &, H225_GatekeeperReject &);
152 virtual void OnSendGatekeeperRequest(H225_GatekeeperRequest &);
153 virtual void OnSendGatekeeperConfirm(H225_GatekeeperConfirm &);
154 virtual void OnSendGatekeeperReject(H225_GatekeeperReject &);
155 virtual PBoolean OnReceiveGatekeeperRequest(const H323RasPDU &, const H225_GatekeeperRequest &);
156 virtual PBoolean OnReceiveGatekeeperConfirm(const H323RasPDU &, const H225_GatekeeperConfirm &);
157 virtual PBoolean OnReceiveGatekeeperReject(const H323RasPDU &, const H225_GatekeeperReject &);
158 virtual PBoolean OnReceiveGatekeeperRequest(const H225_GatekeeperRequest &);
159 virtual PBoolean OnReceiveGatekeeperConfirm(const H225_GatekeeperConfirm &);
160 virtual PBoolean OnReceiveGatekeeperReject(const H225_GatekeeperReject &);
161
162 virtual void OnSendRegistrationRequest(H323RasPDU &, H225_RegistrationRequest &);
163 virtual void OnSendRegistrationConfirm(H323RasPDU &, H225_RegistrationConfirm &);
164 virtual void OnSendRegistrationReject(H323RasPDU &, H225_RegistrationReject &);
165 virtual void OnSendRegistrationRequest(H225_RegistrationRequest &);
166 virtual void OnSendRegistrationConfirm(H225_RegistrationConfirm &);
167 virtual void OnSendRegistrationReject(H225_RegistrationReject &);
168 virtual PBoolean OnReceiveRegistrationRequest(const H323RasPDU &, const H225_RegistrationRequest &);
169 virtual PBoolean OnReceiveRegistrationConfirm(const H323RasPDU &, const H225_RegistrationConfirm &);
170 virtual PBoolean OnReceiveRegistrationReject(const H323RasPDU &, const H225_RegistrationReject &);
171 virtual PBoolean OnReceiveRegistrationRequest(const H225_RegistrationRequest &);
172 virtual PBoolean OnReceiveRegistrationConfirm(const H225_RegistrationConfirm &);
173 virtual PBoolean OnReceiveRegistrationReject(const H225_RegistrationReject &);
174
175 virtual void OnSendUnregistrationRequest(H323RasPDU &, H225_UnregistrationRequest &);
176 virtual void OnSendUnregistrationConfirm(H323RasPDU &, H225_UnregistrationConfirm &);
177 virtual void OnSendUnregistrationReject(H323RasPDU &, H225_UnregistrationReject &);
178 virtual void OnSendUnregistrationRequest(H225_UnregistrationRequest &);
179 virtual void OnSendUnregistrationConfirm(H225_UnregistrationConfirm &);
180 virtual void OnSendUnregistrationReject(H225_UnregistrationReject &);
181 virtual PBoolean OnReceiveUnregistrationRequest(const H323RasPDU &, const H225_UnregistrationRequest &);
182 virtual PBoolean OnReceiveUnregistrationConfirm(const H323RasPDU &, const H225_UnregistrationConfirm &);
183 virtual PBoolean OnReceiveUnregistrationReject(const H323RasPDU &, const H225_UnregistrationReject &);
184 virtual PBoolean OnReceiveUnregistrationRequest(const H225_UnregistrationRequest &);
185 virtual PBoolean OnReceiveUnregistrationConfirm(const H225_UnregistrationConfirm &);
186 virtual PBoolean OnReceiveUnregistrationReject(const H225_UnregistrationReject &);
187
188 virtual void OnSendAdmissionRequest(H323RasPDU &, H225_AdmissionRequest &);
189 virtual void OnSendAdmissionConfirm(H323RasPDU &, H225_AdmissionConfirm &);
190 virtual void OnSendAdmissionReject(H323RasPDU &, H225_AdmissionReject &);
191 virtual void OnSendAdmissionRequest(H225_AdmissionRequest &);
192 virtual void OnSendAdmissionConfirm(H225_AdmissionConfirm &);
193 virtual void OnSendAdmissionReject(H225_AdmissionReject &);
194 virtual PBoolean OnReceiveAdmissionRequest(const H323RasPDU &, const H225_AdmissionRequest &);
195 virtual PBoolean OnReceiveAdmissionConfirm(const H323RasPDU &, const H225_AdmissionConfirm &);
196 virtual PBoolean OnReceiveAdmissionReject(const H323RasPDU &, const H225_AdmissionReject &);
197 virtual PBoolean OnReceiveAdmissionRequest(const H225_AdmissionRequest &);
198 virtual PBoolean OnReceiveAdmissionConfirm(const H225_AdmissionConfirm &);
199 virtual PBoolean OnReceiveAdmissionReject(const H225_AdmissionReject &);
200
201 virtual void OnSendBandwidthRequest(H323RasPDU &, H225_BandwidthRequest &);
202 virtual void OnSendBandwidthConfirm(H323RasPDU &, H225_BandwidthConfirm &);
203 virtual void OnSendBandwidthReject(H323RasPDU &, H225_BandwidthReject &);
204 virtual void OnSendBandwidthRequest(H225_BandwidthRequest &);
205 virtual void OnSendBandwidthConfirm(H225_BandwidthConfirm &);
206 virtual void OnSendBandwidthReject(H225_BandwidthReject &);
207 virtual PBoolean OnReceiveBandwidthRequest(const H323RasPDU &, const H225_BandwidthRequest &);
208 virtual PBoolean OnReceiveBandwidthConfirm(const H323RasPDU &, const H225_BandwidthConfirm &);
209 virtual PBoolean OnReceiveBandwidthReject(const H323RasPDU &, const H225_BandwidthReject &);
210 virtual PBoolean OnReceiveBandwidthRequest(const H225_BandwidthRequest &);
211 virtual PBoolean OnReceiveBandwidthConfirm(const H225_BandwidthConfirm &);
212 virtual PBoolean OnReceiveBandwidthReject(const H225_BandwidthReject &);
213
214 virtual void OnSendDisengageRequest(H323RasPDU &, H225_DisengageRequest &);
215 virtual void OnSendDisengageConfirm(H323RasPDU &, H225_DisengageConfirm &);
216 virtual void OnSendDisengageReject(H323RasPDU &, H225_DisengageReject &);
217 virtual void OnSendDisengageRequest(H225_DisengageRequest &);
218 virtual void OnSendDisengageConfirm(H225_DisengageConfirm &);
219 virtual void OnSendDisengageReject(H225_DisengageReject &);
220 virtual PBoolean OnReceiveDisengageRequest(const H323RasPDU &, const H225_DisengageRequest &);
221 virtual PBoolean OnReceiveDisengageConfirm(const H323RasPDU &, const H225_DisengageConfirm &);
222 virtual PBoolean OnReceiveDisengageReject(const H323RasPDU &, const H225_DisengageReject &);
223 virtual PBoolean OnReceiveDisengageRequest(const H225_DisengageRequest &);
224 virtual PBoolean OnReceiveDisengageConfirm(const H225_DisengageConfirm &);
225 virtual PBoolean OnReceiveDisengageReject(const H225_DisengageReject &);
226
227 virtual void OnSendLocationRequest(H323RasPDU &, H225_LocationRequest &);
228 virtual void OnSendLocationConfirm(H323RasPDU &, H225_LocationConfirm &);
229 virtual void OnSendLocationReject(H323RasPDU &, H225_LocationReject &);
230 virtual void OnSendLocationRequest(H225_LocationRequest &);
231 virtual void OnSendLocationConfirm(H225_LocationConfirm &);
232 virtual void OnSendLocationReject(H225_LocationReject &);
233 virtual PBoolean OnReceiveLocationRequest(const H323RasPDU &, const H225_LocationRequest &);
234 virtual PBoolean OnReceiveLocationConfirm(const H323RasPDU &, const H225_LocationConfirm &);
235 virtual PBoolean OnReceiveLocationReject(const H323RasPDU &, const H225_LocationReject &);
236 virtual PBoolean OnReceiveLocationRequest(const H225_LocationRequest &);
237 virtual PBoolean OnReceiveLocationConfirm(const H225_LocationConfirm &);
238 virtual PBoolean OnReceiveLocationReject(const H225_LocationReject &);
239
240 virtual void OnSendInfoRequest(H323RasPDU &, H225_InfoRequest &);
241 virtual void OnSendInfoRequestAck(H323RasPDU &, H225_InfoRequestAck &);
242 virtual void OnSendInfoRequestNak(H323RasPDU &, H225_InfoRequestNak &);
243 virtual void OnSendInfoRequestResponse(H323RasPDU &, H225_InfoRequestResponse &);
244 virtual void OnSendInfoRequest(H225_InfoRequest &);
245 virtual void OnSendInfoRequestAck(H225_InfoRequestAck &);
246 virtual void OnSendInfoRequestNak(H225_InfoRequestNak &);
247 virtual void OnSendInfoRequestResponse(H225_InfoRequestResponse &);
248 virtual PBoolean OnReceiveInfoRequest(const H323RasPDU &, const H225_InfoRequest &);
249 virtual PBoolean OnReceiveInfoRequestAck(const H323RasPDU &, const H225_InfoRequestAck &);
250 virtual PBoolean OnReceiveInfoRequestNak(const H323RasPDU &, const H225_InfoRequestNak &);
251 virtual PBoolean OnReceiveInfoRequestResponse(const H323RasPDU &, const H225_InfoRequestResponse &);
252 virtual PBoolean OnReceiveInfoRequest(const H225_InfoRequest &);
253 virtual PBoolean OnReceiveInfoRequestAck(const H225_InfoRequestAck &);
254 virtual PBoolean OnReceiveInfoRequestNak(const H225_InfoRequestNak &);
255 virtual PBoolean OnReceiveInfoRequestResponse(const H225_InfoRequestResponse &);
256
257 virtual void OnSendResourcesAvailableIndicate(H323RasPDU &, H225_ResourcesAvailableIndicate &);
258 virtual void OnSendResourcesAvailableConfirm(H323RasPDU &, H225_ResourcesAvailableConfirm &);
259 virtual void OnSendResourcesAvailableIndicate(H225_ResourcesAvailableIndicate &);
260 virtual void OnSendResourcesAvailableConfirm(H225_ResourcesAvailableConfirm &);
261 virtual PBoolean OnReceiveResourcesAvailableIndicate(const H323RasPDU &, const H225_ResourcesAvailableIndicate &);
262 virtual PBoolean OnReceiveResourcesAvailableConfirm(const H323RasPDU &, const H225_ResourcesAvailableConfirm &);
263 virtual PBoolean OnReceiveResourcesAvailableIndicate(const H225_ResourcesAvailableIndicate &);
264 virtual PBoolean OnReceiveResourcesAvailableConfirm(const H225_ResourcesAvailableConfirm &);
265
266 virtual void OnSendServiceControlIndication(H323RasPDU &, H225_ServiceControlIndication &);
267 virtual void OnSendServiceControlResponse(H323RasPDU &, H225_ServiceControlResponse &);
268 virtual void OnSendServiceControlIndication(H225_ServiceControlIndication &);
269 virtual void OnSendServiceControlResponse(H225_ServiceControlResponse &);
270 virtual PBoolean OnReceiveServiceControlIndication(const H323RasPDU &, const H225_ServiceControlIndication &);
271 virtual PBoolean OnReceiveServiceControlResponse(const H323RasPDU &, const H225_ServiceControlResponse &);
272 virtual PBoolean OnReceiveServiceControlIndication(const H225_ServiceControlIndication &);
273 virtual PBoolean OnReceiveServiceControlResponse(const H225_ServiceControlResponse &);
274
275 virtual void OnSendNonStandardMessage(H323RasPDU &, H225_NonStandardMessage &);
276 virtual void OnSendNonStandardMessage(H225_NonStandardMessage &);
277 virtual PBoolean OnReceiveNonStandardMessage(const H323RasPDU &, const H225_NonStandardMessage &);
278 virtual PBoolean OnReceiveNonStandardMessage(const H225_NonStandardMessage &);
279
280 virtual void OnSendUnknownMessageResponse(H323RasPDU &, H225_UnknownMessageResponse &);
281 virtual void OnSendUnknownMessageResponse(H225_UnknownMessageResponse &);
282 virtual PBoolean OnReceiveUnknownMessageResponse(const H323RasPDU &, const H225_UnknownMessageResponse &);
283 virtual PBoolean OnReceiveUnknownMessageResponse(const H225_UnknownMessageResponse &);
284
285 virtual void OnSendRequestInProgress(H323RasPDU &, H225_RequestInProgress &);
286 virtual void OnSendRequestInProgress(H225_RequestInProgress &);
287 virtual PBoolean OnReceiveRequestInProgress(const H323RasPDU &, const H225_RequestInProgress &);
288 virtual PBoolean OnReceiveRequestInProgress(const H225_RequestInProgress &);
289
290 virtual PBoolean OnSendFeatureSet(unsigned, H225_FeatureSet &) const { return false; }
291 virtual void OnReceiveFeatureSet(unsigned, const H225_FeatureSet &) const {}
292
293
296 virtual PBoolean OnReceiveUnknown(
297 const H323RasPDU & pdu
298 );
300
307 const PString & GetIdentifier() const { return gatekeeperIdentifier; }
308
313 void SetIdentifier(const PString & id) { gatekeeperIdentifier = id; }
315
316 protected:
317 // Option variables
318 PString gatekeeperIdentifier;
319 };
320
321
322 #endif // OPAL_H323
323
324 #endif // OPAL_H323_H225RAS_H
325
326