h323rtp.h

Go to the documentation of this file.
00001 /*
00002  * h323rtp.h
00003  *
00004  * H.323 RTP protocol handler
00005  *
00006  * Open H323 Library
00007  *
00008  * Copyright (c) 1998-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  * Portions of this code were written with the assisance of funding from
00025  * Vovida Networks, Inc. http://www.vovida.com.
00026  *
00027  * Contributor(s): ______________________________________.
00028  *
00029  * $Revision: 28351 $
00030  * $Author: rjongbloed $
00031  * $Date: 2012-09-13 19:58:35 -0500 (Thu, 13 Sep 2012) $
00032  */
00033 
00034 #ifndef OPAL_H323_H323RTP_H
00035 #define OPAL_H323_H323RTP_H
00036 
00037 #ifdef P_USE_PRAGMA
00038 #pragma interface
00039 #endif
00040 
00041 #include <opal/buildopts.h>
00042 
00043 #if OPAL_H323
00044 
00045 #include <h323/channels.h>
00046 #include <rtp/rtp_session.h>
00047 
00048 
00049 class H225_RTPSession;
00050 
00051 class H245_TransportAddress;
00052 class H245_H2250LogicalChannelParameters;
00053 class H245_H2250LogicalChannelAckParameters;
00054 class H245_ArrayOf_GenericInformation;
00055 
00056 class H323Connection;
00057 class H323_RTPChannel;
00058 
00059 class H245_TransportCapability;
00060 
00061 
00063 
00066 class H323_RTPChannel : public H323_RealTimeChannel
00067 {
00068     PCLASSINFO(H323_RTPChannel, H323_RealTimeChannel);
00069   public:
00074     H323_RTPChannel(
00075       H323Connection & connection,        
00076       const H323Capability & capability,  
00077       Directions direction,               
00078       OpalMediaSession & session          
00079     );
00080 
00082     ~H323_RTPChannel();
00084 
00091     virtual unsigned GetSessionID() const;
00092 
00099     virtual bool SetSessionID(
00100       unsigned sessionID   
00101     );
00102 
00109     virtual PBoolean GetMediaTransportAddress(
00110       OpalTransportAddress & data,        
00111       OpalTransportAddress & control      
00112     ) const;
00114 
00119     virtual PBoolean OnSendingPDU(
00120       H245_H2250LogicalChannelParameters & param  
00121     ) const;
00122 
00125     virtual PBoolean OnSendingAltPDU(
00126       H245_ArrayOf_GenericInformation & alternate  
00127     ) const;
00128 
00132     virtual void OnSendOpenAck(
00133       H245_H2250LogicalChannelAckParameters & param 
00134     ) const;
00135 
00142     virtual PBoolean OnReceivedPDU(
00143       const H245_H2250LogicalChannelParameters & param, 
00144       unsigned & errorCode                              
00145     );
00146 
00153     virtual PBoolean OnReceivedAckPDU(
00154       const H245_H2250LogicalChannelAckParameters & param 
00155     );
00156 
00159     virtual PBoolean OnReceivedAckAltPDU(
00160       const H245_ArrayOf_GenericInformation & alternate  
00161     );
00163 
00172     virtual void OnSendRasInfo(
00173       H225_RTPSession & info  
00174     );
00176 
00177 #if 0 // NOTE QOS? 
00178 
00182     virtual PBoolean WriteTransportCapPDU(
00183        H245_TransportCapability & cap,      
00184        const H323_RTPChannel & channel    
00185        ) const;
00186 
00189     virtual void ReadTransportCapPDU(
00190     const H245_TransportCapability & cap,    
00191     H323_RTPChannel & channel        
00192         );
00194 #endif
00195   
00196   protected:
00197     virtual bool ExtractTransport(
00198       const H245_TransportAddress & pdu,
00199       bool isDataPort,
00200       unsigned & errorCode
00201     );
00202 
00203   protected:
00204     OpalMediaSession & m_session;
00205 };
00206 
00207 
00208 #endif // OPAL_H323
00209 
00210 #endif // OPAL_H323_H323RTP_H
00211 
00212 

Generated on 21 Jun 2013 for OPAL by  doxygen 1.4.7