# h323t38.h

Go to the documentation of this file.

    00001 /*
    00002  * h323t38.h
    00003  *
    00004  * H.323 T.38 logical channel establishment
    00005  *
    00006  * Open H323 Library
    00007  *
    00008  * Copyright (c) 2001 Equivalence Pty. Ltd.
    00009  *
    00010  * The contents of this file are subject to the Mozilla Public License
    00011  * Version 1.0 (the "License"); you may not use this file except in
    00012  * compliance with the License. You may obtain a copy of the License at
    00013  * http://www.mozilla.org/MPL/
    00014  *
    00015  * Software distributed under the License is distributed on an "AS IS"
    00016  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
    00017  * the License for the specific language governing rights and limitations
    00018  * under the License.
    00019  *
    00020  * The Original Code is Open H323 Library.
    00021  *
    00022  * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
    00023  *
    00024  * Contributor(s): ______________________________________.
    00025  *
    00026  * $Revision: 22645 $
    00027  * $Author: rjongbloed $
    00028  * $Date: 2009-05-18 23:02:17 -0500 (Mon, 18 May 2009) $
    00029  */
    00030
    00031 #ifndef OPAL_T38_H323T38_H
    00032 #define OPAL_T38_H323T38_H
    00033
    00034 #ifdef P_USE_PRAGMA
    00035 #pragma interface
    00036 #endif
    00037
    00038 #include <opal/buildopts.h>
    00039
    00040 #if OPAL_T38_CAPABILITY
    00041
    00042 #include <h323/h323caps.h>
    00043
    00044
    00045 class H245_T38FaxProfile;
    00046
    00047
    00049
    00052 class H323_T38Capability : public H323DataCapability
    00053 {
    00054     PCLASSINFO(H323_T38Capability, H323DataCapability);
    00055   public:
    00058     enum TransportMode {
    00059       e_UDP,
    00060       e_DualTCP,
    00061       e_SingleTCP,
    00062       NumTransportModes
    00063     };
    00064
    00067     H323_T38Capability(
    00068       TransportMode mode = e_UDP
    00069     );
    00071
    00077     Comparison Compare(const PObject & obj) const;
    00078
    00081     virtual PObject * Clone() const;
    00083
    00092     virtual unsigned GetSubType() const;
    00093
    00096     virtual PString GetFormatName() const;
    00098
    00103     virtual H323Channel * CreateChannel(
    00104       H323Connection & connection,
    00105       H323Channel::Directions dir,
    00106       unsigned sessionID,
    00107       const H245_H2250LogicalChannelParameters * param
    00109     ) const;
    00111
    00122     virtual PBoolean OnSendingPDU(
    00123       H245_DataApplicationCapability & pdu
    00124     ) const;
    00125
    00134     virtual PBoolean OnSendingPDU(
    00135       H245_DataMode & pdu
    00136     ) const;
    00137
    00144     virtual PBoolean OnSendingPDU(
    00145       H245_DataProtocolCapability & proto,
    00146       H245_T38FaxProfile & profile
    00147     ) const;
    00148
    00156     virtual PBoolean OnReceivedPDU(
    00157       const H245_DataApplicationCapability & pdu
    00158     );
    00160
    00161     TransportMode GetTransportMode() const { return mode; }
    00162
    00163   protected:
    00164     TransportMode mode;
    00165 };
    00166
    00167
    00170 class H323_T38NonStandardCapability : public H323NonStandardDataCapability
    00171 {
    00172     PCLASSINFO(H323_T38NonStandardCapability, H323NonStandardDataCapability);
    00173   public:
    00178     H323_T38NonStandardCapability(
    00179       BYTE country = 181,
    00180       BYTE extension = 0,
    00181       WORD maufacturer = 18
    00182     );
    00184
    00189     virtual PObject * Clone() const;
    00191
    00196     virtual PString GetFormatName() const;
    00198
    00203     virtual H323Channel * CreateChannel(
    00204       H323Connection & connection,
    00205       H323Channel::Directions dir,
    00206       unsigned sessionID,
    00207       const H245_H2250LogicalChannelParameters * param
    00209     ) const;
    00211 };
    00212
    00213
    00214 #endif //OPAL_T38_CAPABILITY
    00215
    00216 #endif // OPAL_T38_H323T38_H
    00217
    00218