OPAL  Version 3.18.8
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 
27 #ifndef OPAL_T38_H323T38_H
28 #define OPAL_T38_H323T38_H
29 
30 #ifdef P_USE_PRAGMA
31 #pragma interface
32 #endif
33 
34 #include <opal_config.h>
35 
36 #if OPAL_T38_CAPABILITY
37 
38 #include <h323/h323caps.h>
39 
40 
41 class H245_T38FaxProfile;
42 
43 
45 
48 class H323_T38Capability : public H323DataCapability
49 {
50  PCLASSINFO(H323_T38Capability, H323DataCapability);
51  public:
54  enum TransportMode {
55  e_UDP,
56  e_DualTCP,
57  e_SingleTCP,
58  NumTransportModes
59  };
60 
63  H323_T38Capability(
64  TransportMode mode = e_UDP
65  );
67 
73  Comparison Compare(const PObject & obj) const;
74 
77  virtual PObject * Clone() const;
79 
88  virtual unsigned GetSubType() const;
89 
92  virtual PString GetFormatName() const;
94 
99  virtual H323Channel * CreateChannel(
100  H323Connection & connection,
102  unsigned sessionID,
103  const H245_H2250LogicalChannelParameters * param
105  ) const;
107 
118  virtual PBoolean OnSendingPDU(
119  H245_DataApplicationCapability & pdu
120  ) const;
121 
130  virtual PBoolean OnSendingPDU(
131  H245_DataMode & pdu
132  ) const;
133 
140  virtual PBoolean OnSendingPDU(
141  H245_DataProtocolCapability & proto,
142  H245_T38FaxProfile & profile
143  ) const;
144 
152  virtual PBoolean OnReceivedPDU(
153  const H245_DataApplicationCapability & pdu
154  );
156 
157  TransportMode GetTransportMode() const { return mode; }
158 
159  protected:
160  TransportMode mode;
161 };
162 
163 
166 class H323_T38NonStandardCapability : public H323NonStandardDataCapability
167 {
168  PCLASSINFO(H323_T38NonStandardCapability, H323NonStandardDataCapability);
169  public:
174  H323_T38NonStandardCapability(
175  BYTE country = 181,
176  BYTE extension = 0,
177  WORD maufacturer = 18
178  );
180 
185  virtual PObject * Clone() const;
187 
192  virtual PString GetFormatName() const;
194 
199  virtual H323Channel * CreateChannel(
200  H323Connection & connection,
202  unsigned sessionID,
203  const H245_H2250LogicalChannelParameters * param
205  ) const;
207 };
208 
209 
210 #endif //OPAL_T38_CAPABILITY
211 
212 #endif // OPAL_T38_H323T38_H
213 
214 
Directions
Definition: channels.h:125
virtual PString GetFormatName() const =0
Definition: channels.h:95
Definition: h323caps.h:1846
Definition: h323con.h:137
virtual unsigned GetSubType() const =0
virtual PBoolean OnSendingPDU(H245_Capability &pdu) const
Definition: h323caps.h:1998
Comparison Compare(const PObject &obj) const
virtual H323Channel * CreateChannel(H323Connection &connection, H323Channel::Directions dir, unsigned sessionID, const H245_H2250LogicalChannelParameters *param) const
virtual PBoolean OnReceivedPDU(const H245_Capability &pdu)