00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef __OPAL_H323T120_H
00032 #define __OPAL_H323T120_H
00033
00034 #ifdef P_USE_PRAGMA
00035 #pragma interface
00036 #endif
00037
00038
00039 #include <h323/h323caps.h>
00040
00041
00042 class OpalT120Protocol;
00043
00044
00046
00049 class H323_T120Capability : public H323DataCapability
00050 {
00051 PCLASSINFO(H323_T120Capability, H323DataCapability);
00052 public:
00057 H323_T120Capability();
00059
00064 virtual PObject * Clone() const;
00066
00075 virtual unsigned GetSubType() const;
00076
00079 virtual PString GetFormatName() const;
00081
00086 virtual H323Channel * CreateChannel(
00087 H323Connection & connection,
00088 H323Channel::Directions dir,
00089 unsigned sessionID,
00090 const H245_H2250LogicalChannelParameters * param
00092 ) const;
00094
00105 virtual PBoolean OnSendingPDU(
00106 H245_DataApplicationCapability & pdu
00107 ) const;
00108
00117 virtual PBoolean OnSendingPDU(
00118 H245_DataMode & pdu
00119 ) const;
00120
00127 virtual PBoolean OnSendingPDU(
00128 H245_DataProtocolCapability & pdu
00129 ) const;
00130
00138 virtual PBoolean OnReceivedPDU(
00139 const H245_DataApplicationCapability & pdu
00140 );
00142
00148 PBoolean GetDynamicPortCapability() const { return dynamicPortCapability; }
00149
00153 void SetDynamicPortCapability(PBoolean dynamic) { dynamicPortCapability = dynamic; }
00155
00156 protected:
00157 PBoolean dynamicPortCapability;
00158 };
00159
00160
00163 class H323_T120Channel : public H323DataChannel
00164 {
00165 PCLASSINFO(H323_T120Channel, H323DataChannel);
00166 public:
00171 H323_T120Channel(
00172 H323Connection & connection,
00173 const H323Capability & capability,
00174 Directions direction,
00175 unsigned sessionID
00176 );
00178
00188 virtual void Receive();
00189
00198 virtual void Transmit();
00199
00202 virtual PBoolean OnSendingPDU(
00203 H245_OpenLogicalChannel & openPDU
00204 ) const;
00205
00209 virtual void OnSendOpenAck(
00210 const H245_OpenLogicalChannel & open,
00211 H245_OpenLogicalChannelAck & ack
00212 ) const;
00213
00221 virtual PBoolean OnReceivedPDU(
00222 const H245_OpenLogicalChannel & pdu,
00223 unsigned & errorCode
00224 );
00225
00233 virtual PBoolean OnReceivedAckPDU(
00234 const H245_OpenLogicalChannelAck & pdu
00235 );
00237
00238 virtual void HandleChannel();
00239
00240 protected:
00241 OpalT120Protocol * t120handler;
00242 };
00243
00244
00245 #endif // __OPAL_H323T120_H
00246
00247