OPAL  Version 3.12.9
h460_std18.h
Go to the documentation of this file.
1 /* H460_std18.h
2  *
3  * h323plus library
4  *
5  * Copyright (c) 2008 ISVO (Asia) Pte. Ltd.
6  *
7  * The contents of this file are subject to the Mozilla Public License
8  * Version 1.1 (the "License"); you may not use this file except in
9  * compliance with the License. You may obtain a copy of the License at
10  * http://www.mozilla.org/MPL/
11  *
12  * Alternatively, the contents of this file may be used under the terms
13  * of the General Public License (the "GNU License"), in which case the
14  * provisions of GNU License are applicable instead of those
15  * above. If you wish to allow use of your version of this file only
16  * under the terms of the GNU License and not to allow others to use
17  * your version of this file under the MPL, indicate your decision by
18  * deleting the provisions above and replace them with the notice and
19  * other provisions required by the GNU License. If you do not delete
20  * the provisions above, a recipient may use your version of this file
21  * under either the MPL or the GNU License."
22  *
23  * Software distributed under the License is distributed on an "AS IS"
24  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
25  * the License for the specific language governing rights and limitations
26  * under the License.
27  *
28  *
29  * The Initial Developer of the Original Code is ISVO (Asia) Pte. Ltd.
30  *
31  * Portions of this code were written with the assisance of funding from
32  * triple-IT. http://www.triple-it.nl.
33  *
34  * Contributor(s): ______________________________________.
35  *
36  * $Revision: 26465 $
37  * $Author: rjongbloed $
38  * $Date: 2011-09-24 13:00:15 +1000 (Sat, 24 Sep 2011) $
39  */
40 
41 #ifndef H_H460_FeatureStd18
42 #define H_H460_FeatureStd18
43 
44 #include <h460/h4601.h>
45 
46 // Must call the following
47 #include <ptlib/plugin.h>
48 
49 #if _MSC_VER
50 #pragma once
51 #endif
52 
54 
55 class MyH323EndPoint;
56 class MyH323Connection;
57 class H46018Handler;
58 
60 {
62 
63  public:
65  virtual ~H460_FeatureStd18();
66 
67  // Universal Declarations Every H460 Feature should have the following
68  virtual void AttachEndPoint(H323EndPoint * _ep);
69 
70  static PStringArray GetFeatureName() { return PStringArray("Std18"); };
71  static PStringArray GetFeatureFriendlyName() { return PStringArray("NatTraversal-H.460.18"); };
72  static int GetPurpose() { return FeatureRas; };
73  static PStringArray GetIdentifier() { return PStringArray("18"); };
74 
75  virtual PBoolean CommonFeature() { return isEnabled; }
76 
78  // H.460.18 Messages
79  virtual PBoolean OnSendGatekeeperRequest(H225_FeatureDescriptor & pdu);
80  virtual void OnReceiveGatekeeperConfirm(const H225_FeatureDescriptor & pdu);
81 
82  virtual PBoolean OnSendRegistrationRequest(H225_FeatureDescriptor & pdu);
83  virtual void OnReceiveRegistrationConfirm(const H225_FeatureDescriptor & pdu);
84 
85  virtual void OnReceiveServiceControlIndication(const H225_FeatureDescriptor & pdu);
86 
87  private:
88  H323EndPoint * EP;
89 
90  H46018Handler * handler;
91  PBoolean isEnabled;
92 };
93 
94 
95 // Need to declare for Factory Loader
96 #ifndef _WIN32_WCE
98 #endif
99 
100 
102 
103 class MyH323EndPoint;
104 class MyH323Connection;
105 
107 {
109 
110  public:
112  virtual ~H460_FeatureStd19();
113 
114  // Universal Declarations Every H460 Feature should have the following
115  virtual void AttachEndPoint(H323EndPoint * _ep);
116  virtual void AttachConnection(H323Connection * _con);
117 
118  static PStringArray GetFeatureName() { return PStringArray("Std19"); };
119  static PStringArray GetFeatureFriendlyName() { return PStringArray("NatTraversal-H.460.19"); };
120  static int GetPurpose() { return FeatureSignal; };
121  static PStringArray GetIdentifier() { return PStringArray("19"); };
122 
123  virtual PBoolean CommonFeature() { return remoteSupport; }
124 
126  // H.460.19 Messages
127  virtual PBoolean OnSendSetup_UUIE(H225_FeatureDescriptor & pdu);
128  virtual void OnReceiveSetup_UUIE(const H225_FeatureDescriptor & pdu);
129 
130  virtual PBoolean OnSendCallProceeding_UUIE(H225_FeatureDescriptor & pdu);
131  virtual void OnReceiveCallProceeding_UUIE(const H225_FeatureDescriptor & pdu);
132 
133  virtual PBoolean OnSendFacility_UUIE(H225_FeatureDescriptor & pdu);
134  //virtual void OnReceiveFacility_UUIE(const H225_FeatureDescriptor & pdu) {};
135 
136  virtual PBoolean OnSendAlerting_UUIE(H225_FeatureDescriptor & pdu);
137  virtual void OnReceiveAlerting_UUIE(const H225_FeatureDescriptor & pdu);
138 
139  virtual PBoolean OnSendCallConnect_UUIE(H225_FeatureDescriptor & pdu);
140  virtual void OnReceiveCallConnect_UUIE(const H225_FeatureDescriptor & pdu);
141 
143  // H.460.24 Override
144  void SetAvailable(bool avail);
145 
146  private:
147  H323EndPoint * EP;
148  H323Connection * CON;
149 
150  PBoolean isEnabled;
151  PBoolean isAvailable;
152  PBoolean remoteSupport;
153 };
154 
155 
156 // Need to declare for Factory Loader
157 #ifndef _WIN32_WCE
159 #endif
160 
161 
162 #endif // H_H460_FeatureStd18