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: 22640 $
00027  * $Author: rjongbloed $
00028  * $Date: 2009-05-19 03:19:20 +0000 (Tue, 19 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 

Generated on Mon Feb 1 00:25:43 2010 for OPAL by  doxygen 1.5.1