OPAL  Version 3.14.3
h323t38.h
Go to the documentation of this file.
1 /*
2  * h323t38.h
3  *
4  * H.323 T.38 logical channel establishment
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  * Contributor(s): ______________________________________.
25  *
26  * $Revision: 29536 $
27  * $Author: rjongbloed $
28  * $Date: 2013-04-19 18:55:15 +1000 (Fri, 19 Apr 2013) $
29  */
30 
31 #ifndef OPAL_T38_H323T38_H
32 #define OPAL_T38_H323T38_H
33 
34 #ifdef P_USE_PRAGMA
35 #pragma interface
36 #endif
37 
38 #include <opal_config.h>
39 
40 #if OPAL_T38_CAPABILITY
41 
42 #include <h323/h323caps.h>
43 
44 
45 class H245_T38FaxProfile;
46 
47 
49 
52 class H323_T38Capability : public H323DataCapability
53 {
54  PCLASSINFO(H323_T38Capability, H323DataCapability);
55  public:
58  enum TransportMode {
59  e_UDP,
60  e_DualTCP,
61  e_SingleTCP,
62  NumTransportModes
63  };
64 
67  H323_T38Capability(
68  TransportMode mode = e_UDP
69  );
71 
77  Comparison Compare(const PObject & obj) const;
78 
81  virtual PObject * Clone() const;
83 
92  virtual unsigned GetSubType() const;
93 
96  virtual PString GetFormatName() const;
98 
103  virtual H323Channel * CreateChannel(
104  H323Connection & connection,
106  unsigned sessionID,
107  const H245_H2250LogicalChannelParameters * param
109  ) const;
111 
122  virtual PBoolean OnSendingPDU(
123  H245_DataApplicationCapability & pdu
124  ) const;
125 
134  virtual PBoolean OnSendingPDU(
135  H245_DataMode & pdu
136  ) const;
137 
144  virtual PBoolean OnSendingPDU(
145  H245_DataProtocolCapability & proto,
146  H245_T38FaxProfile & profile
147  ) const;
148 
156  virtual PBoolean OnReceivedPDU(
157  const H245_DataApplicationCapability & pdu
158  );
160 
161  TransportMode GetTransportMode() const { return mode; }
162 
163  protected:
164  TransportMode mode;
165 };
166 
167 
170 class H323_T38NonStandardCapability : public H323NonStandardDataCapability
171 {
172  PCLASSINFO(H323_T38NonStandardCapability, H323NonStandardDataCapability);
173  public:
178  H323_T38NonStandardCapability(
179  BYTE country = 181,
180  BYTE extension = 0,
181  WORD maufacturer = 18
182  );
184 
189  virtual PObject * Clone() const;
191 
196  virtual PString GetFormatName() const;
198 
203  virtual H323Channel * CreateChannel(
204  H323Connection & connection,
206  unsigned sessionID,
207  const H245_H2250LogicalChannelParameters * param
209  ) const;
211 };
212 
213 
214 #endif //OPAL_T38_CAPABILITY
215 
216 #endif // OPAL_T38_H323T38_H
217 
218